Servlet的生命周期

初始化阶段:
(1)Servlet容器加载Servlet类,把他的.class文件数据读入到内存中。
(2)Servlet容器创建了ServletConfig对象。ServletConfig对象包含了特定的Servlet的初始化配置信息,如Servlet初始参数。
此外,Servlet容器还会使得ServletConfig对象与当前Web应用的ServletContext对象关联。
(3)Servlet容器创建了Servlet对象。
(4)Servlet容器调用Servlet对象的init(ServletConfig config)方法。 在Servlet接口的GenericServlet实现类的init(ServletConfig config)方法中,会建立Servlet对象与ServletConfig对象的关联关系。

什么时候会进入初始化阶段?
(1)当前Web应用处于运行时阶段,特定的Servlet被客户端首次请求访问。
(2)如果web.xml文件中为一个Servlet设置了元素,那么当Servlet容器启动Servlet所属的Web应用时,就会初始化这个Servlet。
(3)当Web应用被重新启动时,Web应用中的所有Servlet都会在特定的时刻被重新初始化。

运行时阶段:
这个是Servlet的生命周期中最重要的阶段。在这个阶段。Servlet可以随时响应客户端的请求。当Servlet容器接收到要求访问特定Servlet的客户端请求时,Servlet容器会创建针对这个请求的ServletRequest和ServletResponse对象,然后调用相应的service()方法。service方法从ServletRequest对象中获得客户端请求信息并处理该请求,再通过ServletResoponse对象生成响应结果。注意:当Servlet容器把Servlet生成的响应结果发送给了客户,Servlet容器就会销毁ServletRequest对象和ServletResponse对象。

销毁阶段:
当Web应用被终止时。Servlet容器会先调用Web应用中所有Servlet对象的destroy()方法,然后再销毁这些Servlet对象。此外,容器还会销毁与Servlet对象关联的ServletConfig对象。

原文地址:https://www.cnblogs.com/-mjs/p/11254212.html