Servlet入门介绍
什么是Servlet?
Servlet是两个单词,server applet,指的就是运行在服务端的小程序。Servlet就是一个接口,定义了Java类被浏览器访问到的规则(也就是被Tomcat识别到的规则)
快速入门:
1、创建一个JavaEE的项目
2、定义一个类,实现Servlet接口
3、实现接口中的抽象方法
4、配置Servlet
配置过程如下:
<!--配置Servlet-->
<servlet>
<servlet-name>demo</servlet-name>
<servlet-class>top.imagpie.web.servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo</servlet-name>
<url-pattern>/demo</url-pattern>
</servlet-mapping>
Servlet的执行过程

1、当服务器接收到客户端浏览器的请求后,会解析url请求路径,获取访问Servlet的资源路径
2、查找web.xml文件,是否有对应的<url-pattern>标签体重的内容
3、如果有的话,则会找到对应的<servlet-class>这个标签当中的全类名
4、tomcat会将字节码文件加载到内存当中,并且创建该类的对象,同时调用他的方法
Servlet中的方法
1、public void init(ServletConfig servletConfig)方法
初始化方法,在Servlet被创建的时候执行并且只会执行一次。
2、public void service(ServletRequest servletRequest, ServletResponse servletResponse)方法
提供服务的方法,每一次Servlet被访问的时候,都会执行,只要被访问就会执行
3、public void destroy()方法
销毁方法,在服务器正常关闭的时候执行该方法,只会执行一次。
4、public ServletConfig getServletConfig()方法
获取SerletConfig对象,该对象用于Servlet的配置
5、public String getServletInfo()方法
获取Servlet的一些信息,版本,作者等
Servlet中的生命周期
1、被创建
执行init方法,只会执行一次
Servlet什么时候被创建?
我们可以指定Servlet对象被创建的时候,通过<load-on-startup> </load-on-startup>标签进行指定
① 当标签当中为负数的时候<load-on-startup>-1</load-on-startup>,Servlet对象在第一次被访问的时候创建(可以为任意负数)
② 当标签当中为正数的时候<load-on-startup>5</load-on-startup>,Servlet对象在服务器被启动的时候创建(可以为任意整数)
Servlet的init方法,只执行一次,说明一个Servlet在内存重只存在一个对象,Servlet是单例的
多个用户同时访问时,可能存在线程安全问题,
解决:尽量不要在Servlet重定义成员变量。即使定义了成员变量,也不要对其修改值
2、提供服务
执行service方法,执行多次
每次访问Servlet时,Service方法都会被调用一次
3、被销毁
执行destroy方法,只会执行一次
Servlet只有正常被销毁时,Servlet才会执行destroy方法
在Servlet被销毁前执行
Servlet3.0
支持注解配置,可以不适用web.xml
步骤:
1、创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml
2、定义一个类,实现Servlet接口
3、复写方法
4、在类上使用@WebServlet注解,进行配置
WebServlet的源码为

有两种方法可以进行配置括号重写的是资源路径:
① 
② 
因为当我们只写一个值的时候默认是velue,这样十分的方便
这里我们再解释一下urlpartten属性的作用和用法
用于Servlet的访问路径
用法:
① 可以一个Servlet定义多个访问路径`@WebServlet({"/d", “/dd”, “/ddd”})
② /xxx
③ /xxx/xxx:多层目录,目录结构
④ *.do:星号代表任意名称,含义就是任意名称以.do结尾的就可以访问
IDEA与tomcat的相关配置
1、IDEA会为每一个tomcat部署的项目单独建立一份配置文件,该文件位于的位置从控制台查看

得知
2、工作空间和tomcat部署的web项目
① tomcat真正访问的是tomcat部署的web项目,tomcat部署的web项目对应着工作空间当中的项目的web目录下的所有资源
② WEB-INF目录下的资源不能被浏览器直接访问。
③ 调式需要使用debug调试

浙公网安备 33010602011771号