Servlet生命周期

版权声明:本文为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>

** servlet1**
** servlet.servlet1**
** 0**
** **

元素标记容器是否在启动的时候加载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对象的创建工作将是在请求到达的时候再会创建,然后进行初始等相关操作。如图所示:
在这里插入图片描述

Servlet生命周期总览

在这里插入图片描述

posted @ 2022-10-29 20:29  shigp1  阅读(149)  评论(0编辑  收藏  举报