Servlet入门介绍第三章——Servlet的生命周期
2016-10-10 19:42
489 查看
之前简单提过Servlet的生命周期,现在详细介绍下。
Servlet 的生命周期可以分为三个阶段:
(1)、初始化阶段(init方法)
(2)、响应客户请求阶段(service方法)
(3)、终止阶段(destroy方法)
首先,Servlet的运行时阶段
(一)、在下列时刻Servlet容器装载Servlet:
(1)Servlet容器启动时自动装载某些Servlet,Load-on-startup设置时值小的优先初始化
(2)在Servlet容器启动后,客户首次向Servlet 发出请求
(3)Servlet的类文件被更新后,重新装载Servlet
(二)、Servlet被装载后,Servlet容器创建一个Servlet 实例并且调 用Servlet 的init()方法进行初始化。在Servlet的整个生命周期中,init方法只会被调用一次。
其次,Servlet的运行时阶段
(一)、对于到达Servlet容器的客户请求,Servlet容器创建特定于这个请求的ServletRequest对象和ServletResponse对象,然后调用Servlet的service()方法。service方法从ServletRequest对象获得客户请求信息、处理该请求,并通过ServletResponse对象向客户返回响应结果。
(二)、当Servlet容器把响应结果发送给了客户,Servlet容器就会销毁ServletRequest和ServletResponse对象。
最后,Servlet的终止阶段
当Web应用被终止,或Servlet容器终止运行,或Servlet容器重新装载Servlet的新实例时,Servlet容器会先调用Servlet的destroy方法。在destroy方法中,可以释放Servlet所占用的资源。
接下来做个测试Servlet生命周期的LifeServlet,具体代码如下:
配置信息:
测试结果:
在Tomcat 安装目录下的conf目录下的server.xml中添加
将Servlet16_10_3改为自己相应的项目名即可。添加完后只需随意在LifeServlet中变动下,然后保存,即可重新加载Servlet。
还有其他方法测试生命周期这边不多介绍。
Servlet 的生命周期可以分为三个阶段:
(1)、初始化阶段(init方法)
(2)、响应客户请求阶段(service方法)
(3)、终止阶段(destroy方法)
首先,Servlet的运行时阶段
(一)、在下列时刻Servlet容器装载Servlet:
(1)Servlet容器启动时自动装载某些Servlet,Load-on-startup设置时值小的优先初始化
(2)在Servlet容器启动后,客户首次向Servlet 发出请求
(3)Servlet的类文件被更新后,重新装载Servlet
(二)、Servlet被装载后,Servlet容器创建一个Servlet 实例并且调 用Servlet 的init()方法进行初始化。在Servlet的整个生命周期中,init方法只会被调用一次。
其次,Servlet的运行时阶段
(一)、对于到达Servlet容器的客户请求,Servlet容器创建特定于这个请求的ServletRequest对象和ServletResponse对象,然后调用Servlet的service()方法。service方法从ServletRequest对象获得客户请求信息、处理该请求,并通过ServletResponse对象向客户返回响应结果。
(二)、当Servlet容器把响应结果发送给了客户,Servlet容器就会销毁ServletRequest和ServletResponse对象。
最后,Servlet的终止阶段
当Web应用被终止,或Servlet容器终止运行,或Servlet容器重新装载Servlet的新实例时,Servlet容器会先调用Servlet的destroy方法。在destroy方法中,可以释放Servlet所占用的资源。
接下来做个测试Servlet生命周期的LifeServlet,具体代码如下:
package com.java.web.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LifeServlet extends HttpServlet{ private static final long serialVersionUID = -2389496689326872536L; private int initCount; private int serviceCount; private int destroyCount; private String name; @Override public void init(ServletConfig config) throws ServletException { initCount++; name = config.getServletName(); System.out.println(name + "初始化次数" + initCount); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8"); resp.setContentType("text/html"); serviceCount++; PrintWriter writer = resp.getWriter(); writer.write(name + "初始化次数:" + initCount + "<br>"); System.out.println(name +"响应次数:" + serviceCount); writer.write(name + "响应次数:" + serviceCount + "<br>"); writer.write(name + "销毁次数:" + destroyCount + "<br>"); writer.flush(); writer.close(); } @Override public void destroy() { destroyCount++; System.out.println(name + "销毁次数" + destroyCount); } }
配置信息:
<servlet> <servlet-name>LifeServlet</servlet-name> <servlet-class>com.java.web.servlet.LifeServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>LifeServlet</servlet-name> <url-pattern>/LifeServlet</url-pattern> </servlet-mapping>
测试结果:
在Tomcat 安装目录下的conf目录下的server.xml中添加
将Servlet16_10_3改为自己相应的项目名即可。添加完后只需随意在LifeServlet中变动下,然后保存,即可重新加载Servlet。
还有其他方法测试生命周期这边不多介绍。
相关文章推荐
- Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
- Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
- Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
- Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
- Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
- Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
- Servlet入门介绍第五章——Servlet中的Session、Cookie
- 第10天(就业班) servlet的映射路径、生命周期、自动加载+init方法+线程并发安全、servletconfig对象+servletcontext对象入门、servletcontext对象的使
- Servlet之生命周期【入门版(初学者必看)】
- Hibernate入门(3)- 持久对象的生命周期介绍
- HTTP协议 Servlet入门 Servlet工作原理和生命周期 Servlet细节 ServletConfig对象
- Tomcat 3.0版本的一些说明 以及 servlet 生命周期的简单介绍
- Servlet入门介绍第四章——Servlet中的请求转发、包含、重定向
- J2EE实训第三章之Servlet极速入门
- Servlet第六篇【Session介绍、API、生命周期、应用】
- Servlet 介绍 执行流程 生命周期 启动项配置
- JavaWeb之Servlet(一)Servlet入门、API(生命周期)、ServletContext对象
- 4.servlet开始了————servlet介绍及入门
- Servlet第三章知识点总结——Servlet生命周期
- javaweb学习总结二十一(servlet开发入门、servlet生命周期以及调用过程)