servlet的生命周期就是从servlet出现到销毁的全过程。主要分为以下几个阶段:加载类—>实例化(为对象分配空间)—>初始化(为对象的属性赋值)—>请求处理(服务阶段)—>销毁 服务器启动时或者第一次请求该servlet时,就会初始化一个Servlet对象,也就是会执行初始化方法init(ServletConfig conf),该servlet对象去处理所有客户端请求,service(ServletRequest req,ServletResponse res)方法中执行,最后服务器关闭时,才会销毁这个servlet对象,执行destroy()方法。其中加载阶段无法观察,但是初始化、服务、销毁阶段是可以观察到的。 一、初始化阶段 调用init()方法 一般在下列场景Servlet容器会装载Servlet: 1)、Servlet容器启动时自动装载某些Servlet时,实现它只需要在web.XML文件中的之间添加如下代码:1 2)、Servlet容器启动后,客户首次向Servlet发送请求时 3)、Servlet类文件被更新后,重新装载Servlet时 Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在一个Servlet的整个生命周期内,init()方法只会被调用一次。 二、响应客户请求阶段 调用service()方法 一般对于用户到达Servlet的请求,Servlet容器会创建一个特定于这个请求的ServletRequest对象与ServletResponse对象,并调用Servlet的service方法。service方法会从ServletRequest对象获得客户请求信息,之后处理这个请求,并通过ServletResponse对象向客户返回响应信息。 三、终止阶段 调用destroy()方法 通常来说,当一个WEB应用被终止,或一个Servlet容器终止运行,或一个Servlet容器重新装载Servlet新实例时,Servlet容器会优先调用Servlet中的destroy()方法,这个destroy()方法能够释放掉Servlet所占用的资源。