您的位置:首页 > 其它

Servlet的生命周期

2017-09-26 20:34 323 查看
Servlet技术
1、Servlet是能够接收请求并向客户端相应的Java类;
2、开发Servlet的步骤:
(1)创建类并继承Servlet类,重写doGet()或doPost()方法;
(2)配置URL与Servlet的映射,可通过web.xml配置,也可通过注解配置。(URL映射是指用户通过浏览器输入URL向服务器发出请求时,将请求映射到Servlet类)
**注:在web.xml配置URL与Servlet的映射
<servlet>
<servlet-name>HelloWord</servlet-name>
<servlet-class>cn.itlaobing.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWord</servlet-name>
<url-pattern>/HelloWord</url-pattern>
</servlet-mapping>
执行顺序:1、<servlet-mapping>中的<url-pattern>找到<servlet-mapping>中的<servlet-name>
          2、通过<servlet-mapping>中的<servlet-name>找到<servlet>中的<servlet-name>
          3、再通过<servlet>中的<servlet-name>找到<servlet>中的<servlet-class>
两个<servlet-name>必须一致。
3、Servlet生命周期:
(1)当请求到达web容器时,容器通过web.xml寻找到对应的servlet,如果该servlet被实例化了,则调用service方法,然后调用doGet()或者doPost()方法
(2)如果该servlet没有被实例化,则先对其进行实例化,然后调用init方法进行初始化。
(3)然后调用service方法再调用doGet()或者doPost()方法
(4)向客户端进行响应,当容器重启或者关闭是调用servlet的destroy()方法进行销毁。
4、请求与响应的过程
(1)由客户端浏览器发出一个get或者post请求
(2)服务器收到请求后创建request和response
(3)读取web.xml寻找url对应的servlet(容器会在内存中寻找是否有servlet的实例,如果有就调用service方法然后调用doGet()或者doPost(),如果没有就先创建一个实例然后调用init()方法进行初始化)
(4)创建一个线程调用HttpServlet对象的service方法决定是调用doGet()还是doPost()方法
(5)处理完请求以后向客户端响应数据,并销毁线程以及request和response
5、启动时初始化:(在web.xml中的Servlet标签中配置<load-on-startup>)
(1)代表容器启动时是否加载改Servlet;
(2)值必须是一个整数;
(3)当值大于等于零时,值越小优先级越高(0的优先级最高);
     当值小于零时,在调用的时候进行初始化;
     不指定时在调用时加载;
6、配置初始化时要加载的参数(在<load-on-startup>之前)
<init-param>
<param-name>username</param-name>
<param-value>name</param-value>
</init-param>
在Servlet的init方法中获取初始化参数
config.getInitParameter(“name”)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: