Servlet的生命周期
一点教程网 人气:1
原文链接:http://www.yiidian.com/servlet/servlet-lifecycle.html
Web容器(如:Tomcat)维护Servlet实例的生命周期。让我们看一下servlet的生命周期:
* Servlet类加载。
* Servlet实例创建。
* init方法被调用。
* service方法被调用。
* 调用destroy方法。
![file](https://img2020.cnblogs.com/other/1516040/202003/1516040-20200307234633479-1967991967.png)
如上图所示,Servlet处于三种状态:New新建,Ready就绪和End结束。如果创建了Servlet实例,则Servlet处于新状态。调用init()方法后,Servlet进入就绪状态。在就绪状态下,Servlet执行所有任务。当Web容器调用destroy()方法时,它将转换为结束状态。
### 1)加载Servlet类
类加载器负责加载Servlet类。当Web容器收到对Servlet的第一个请求时,将加载Servlet类。
### 2)创建Servlet实例
Web容器在加载Servlet类之后创建Servlet的实例。Servlet实例在Servlet生命周期中仅创建一次。
### 3)init方法被调用
Web容器在创建Servlet实例后仅调用一次init方法。init方法用于初始化servlet。它是javax.servlet.Servlet接口的生命周期方法。init方法的语法如下:
```java
public void init(ServletConfig config) throws ServletException
```
### 4)service被调用
每当接收到对Servlet的请求时,Web容器都会调用服务方法。如果未初始化servlet,则它遵循上述的前三个步骤,然后调用service方法。如果servlet被初始化,它将调用service方法。注意,Servlet仅初始化一次。Servlet接口的服务方法的语法如下:
```java
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException
```
### 5)调用destroy方法
Web容器在从服务中删除Servlet实例之前调用destroy方法。它使Servlet有机会清理任何资源,例如内存,线程等。Servlet接口的destroy方法的语法如下:
```java
public void destroy()
```
![file](https://img2020.cnblogs.com/other/1516040/202003/1516040-20200307234633792-839048733.png)
> 欢迎关注我的公众号::一点教程。获得独家整理的学习资源和日常干货推送。
> 如果您对我的系列教程感兴趣,也可以关注我的网站:[yiidian.com](http://www.yiidian.com)
加载全部内容