Servlet分析(2)
来源:互联网 发布:nba常规赛mvp数据 编辑:程序博客网 时间:2024/05/09 12:08
四、servlet的生命周期
(1)生命周期的含义:
(2)生命周期可以分成四个阶段:
b,什么时候实例化:
第一种情况: 容器在收到请求之后。
初始化是在实例化之后立即进行的,并且只进行一次。
b, init(ServletConfig config)方法:
init(ServletConfig config)
service(ServletRequest req,ServletResponse res)
c, HttpServlet抽象类
继承了GenericServlet,主要实现了service方法。
会依据请求方式分别调用doGet,doPost方法(HttpServlet抽象类的doGet,doPost方法只是抛出了一个异常,需要子类去override)。
d, ServletConfig接口
//获得servlet的初始化参数。
String getInitParameter(String paraName);
(1)生命周期的含义:
servlet容器如何创建servlet对象、如何初始化、如何调用servlet对象的方法完成请求处理以及如何销毁servlet对象的整个过程。
<span style="font-size:12px;">public interface Servlet { public void init(ServletConfig config) throws ServletException; public ServletConfig getServletConfig(); public void service(ServletRequest req, ServletResponse res)throws ServletException, IOException; public String getServletInfo(); public void destroy();}</span>
(2)生命周期可以分成四个阶段:
1)实例化:
b,什么时候实例化:
第一种情况: 容器在收到请求之后。
第二种情况: 容器在启动之后,会预先创建好一些servlet对象。要求这些servlet配置load-on-startup参数。
2)初始化
初始化是在实例化之后立即进行的,并且只进行一次。
b, init(ServletConfig config)方法:
容器会事先创建好一个符合ServletConfig接口的对象,该对象提供了一个getInitParameter方法来获得servlet的初始化参数(在web.xml文件当中,使用init-param配置的参数)。
ServletConfig接口的对象的作用:Servlet容器通过它向Servlet传递配置信息,这也是为什么它有getInitParameter方法的原因
一般只需要override init()方法。因为init(ServletConfig config)方法里面调用了init()方法
例:
<servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>HelloWorld</servlet-name> <servlet-class>org.servlet.HelloWorld</servlet-class> <init-param> <param-name>name</param-name> <param-value>fei</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/servlet/HelloWorld</url-pattern> </servlet-mapping>
System.out.println(this.getServletConfig().getInitParameter("name"));
3)就绪/调用
a,含义:容器收到请求之后,会调用servlet对象的service方法来处理请求。处理客户端的请求
通过Request获取客户请求,Response来设置响应信息
4)销毁
b,destroy方法一般不需要去override。
容器检测一个Servlet对象应该从服务中移除的时候调用此方法,
(3)跟生命周期相关的几个接口与类
init(ServletConfig config)
service(ServletRequest req,ServletResponse res)
destroy()
b, GenericServlet抽象类
实现了Servlet接口,主要实现了init,destroy方法。c, HttpServlet抽象类
继承了GenericServlet,主要实现了service方法。
会依据请求方式分别调用doGet,doPost方法(HttpServlet抽象类的doGet,doPost方法只是抛出了一个异常,需要子类去override)。
d, ServletConfig接口
//获得servlet的初始化参数。
String getInitParameter(String paraName);
0 0
- Servlet分析(2)
- Servlet分析(1)
- Servlet分析(4)ServletContext
- Servlet 分析
- Servlet处理流程分析-Servlet学习之旅(二)
- Servlet分析(3) servletRequest与 servletResponse
- Servlet分析(5)请求转发
- struts 2 的运作流程介绍及分析(使用纯servlet模拟)
- servlet线程安全问题分析
- Servlet过滤器原理分析
- servlet多线程分析
- Servlet细节分析
- servlet线程安全问题分析
- Servlet源码分析
- servlet 原理分析
- JSP Servlet性能分析
- Servlet 运行过程分析
- servlet源码分析--转
- write的奥秘-linux系统调用如何实现?
- PAT 1066. Root of AVL Tree
- canvas中清除path的方案
- poj1836 Alignment
- centos6.4安装QQ
- Servlet分析(2)
- nginx源码分析--链表结构体ngx_list_t
- HDU3485 && CSU1363:Count 101
- 公司请你来做什么?
- L1 L2 LASSO问题
- 简明 Vim 练级攻略
- 深入Objective-C的动态特性(基于runtime实现)
- iOS开发——网络基础、iOS常用http请求、URL编码
- win7在虚拟机下装mac系统