版权声明:本文为CSDN博主「进击的三炮」的原创文章,遵循CC 4.0 BY-SA版权协议
原文链接:https://blog.csdn.net/m0_50744075/article/details/126146104
Servlet生命周期
Servlet的生命周期是由Servlet的容器来控制的
Servlet的三个周期
(1)初始化阶段
(2)运行阶段
(3)销毁阶段
在Servlet生命周期地各个阶段中,可以调用三个方法:
Servlet的生命周期概述
Servlet生命周期始于将它装入Web服务器的内存时;并在终止或重新装入Servlet时结束
Servlet的生命周期主要分为以下几个阶段:
1、装载Servlet:这项操作一般是动态执行的。有些服务器提供了响应的管理功能,可以在启动的时候就装载Servlet并能够初始化特定的Servlet。
2、创建一个Servlet实例。
3、调用Servlet的init()方法。
4、一个客户端的请求到达服务器。
5、创建一个请求对象。
6、创建一个响应对象。
7、激活Servlet的Service()方法,并传递请求和响应对象。
8、Service()方法获得关于请求对象的信息、处理请求、访问其它资源、获得需要的信息。
9、Service()方法使用响应对象的方法,将响应传回服务器,最终到达客户端。
10、对于更多的客户端请求,服务器创建新的请求和响应对象,仍然激活此Servlet的Service()方法,将两个对象作为参数传递给它。
11、当服务器不再需要Servlet或当服务器关闭时,服务器将会调用Servlet的destroy()方法来销毁Servlet。
Servlet初始化情况
当web应用处于运行阶段时,特定的servlet被客户端首次请求访问
web.xml中:
<servlet>
**
**
**
** **
元素标记容器是否在启动的时候加载servlet
当值大于等于0时,表示容器在启动时就加载servlet;当其为负数或无值时,表示容器在该servlet被选择才加载
正数的值越小,启动servlet的优先值越高
当web应用被重新启动时,web应用中的所有servlet会在特定的时间被重新初始化
Servlet运行阶段
在这个阶段sevlet可以随时响应客户端的请求。
当servlet容器接到访问特定的servlet请求时,servlet容器会创建针对与这个请求的servletRequest和servletResponse对象,然后调用service()方法,并把这两个对象当做参数传递给service()方法。
Service()方法通过servletRequest对象获得请求信息,并处理该请求,再通过servletResponse对象生成响应结果。
不管是post还是get方法提交,都会在service中处理,然后,由service来交由相应的doPost或doGet方法处理,如果你重写了service方法,就不会再处理doPost或doGet了,如果重写sevice()方法,可以自己转向doPost()或doGet()方法
当servlet容器把servlet生成的响应结果发送给客户后,servlet容器会销毁servletRequest和sevletResponse对象。
Servlet销毁阶段
当Web应用被终止时,servlet容器会先调用web应用中所有的servlet对象的destroy()方法,然后再销毁servlet对象。此外容器还会销毁与servlet对象关联的servletConfig对象。
在destroy()方法的实现中,可以释放servlet所占用的资源。如关闭文件输入输出流,关闭与数据库的连接。
Servlet服务流程
如果配置文件中没有设置 ,那么Servlet对象的创建工作将是在请求到达的时候再会创建,然后进行初始等相关操作。如图所示: