Servlet生命周期详解

Servlet的生命周期是由servlet的容器来控制的。分为3个阶段:初始化阶段、运行阶段、销毁阶段。

初始化阶段:


初始化阶段步骤:

servlet容易创建servletConfig对象。servletConfig对象包含了servlet的初始化配置信息。此时servlet容器还会使得servletConfig对象在当前的Web应用的servletContext对象关联。

servlet容器创建servlet对象。

servlet容器容易用servlet对象的init(ServletConfig config)方法。

通过初始化步骤,创建了servlet对象和servletConfig对象,并且servlet对象与servletConfig对象关联,而servletConfig对象又与当前对象的servletContext对象关联。 当servlet容器完成servlet后,servlet对象只要通过getServletContext()方法就能得到web应用的servletContext对象。

注:Servlet初始化的情况:
(1)当Web应用处于运行阶段时,特定的servlet被客户端首次请求访问。
(2)在web.xml文件中为servlet设置了<load-on-startup>元素

<servlet>
<servlet-name>servlet1</servlet>
<servlet-class>servlet.servlet1</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>

说明:
在servlet的配置当中,<load-on-startup>5</load-on-startup> 的含义是:

标记容器是否在启动的时候就加载这个servlet。

当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;

当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。

正数的值越小,启动该servlet的优先级越高。

(3)当web应用被重新启动时,web应用中所有servlet会在特定的时间被重新初始化。

运行阶段

在这个阶段servlet可以随时响应客户端的请求。当servlet容器接到访问特定的servlet请求时,servlet容器会创建针对与这个请求 的serveltRequest和Response对象,然后调用service()方法,并把这两个对象当作参数传递给service()方法。 Service()方法通过servletRequest对象获得请求信息,并处理该请求,在通过servletResponse对象生成响应结果。

【不管是POST还是GET方法提交,都会在service中处理,然后service来交由相应的doGet或doPost方法处理,如果您重写了 service方法,就不会在处理doGet或doPost了,如果重写了service()方法,可以自己转向doPost()或doGet()方法】

注:当servlet容器把servlet生成的响应结果发送给客户后,servlet容器会销毁servletRequest和servletResponse对象。

销毁阶段
当Web应用被终时,servlet容器会先调用web应用中所有的servlet对象的destroy()方法,然后在销毁servlet对象。此外容器还会销毁与servlet对象关联的servletConfig对象
在destroy()方法的实现中,可以释放servlet所占用的资源。如关闭文件输入输出流,关闭和数据库的连接。

注:servlet的生命周期中,servlet的初始化和销毁只会发生一次,因此init()和destroy()方法只能被servlet容器调用一次,而service()方法取决与servlet被客户端访问的次数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值