Servlet的生命周期,分为三个阶段:
- 初始化
- 响应请求
- 终止
初始化
在初始化阶段中,Servlet被容器的自定义Classloader加载,然后执行init方法。init方法在Servlet的整个生命周期中只执行一次。
Servlet并不是在Web容器启动的时候就全部加载到内存中去,而是采用懒加载模式,在下面几种情况下才会进行加载:
- Servlet配置了<loadon-startup>*</loadon-startup>。Web容器启动会按照startup的顺序加载servlet
- 客户端首次向该Servlet发送请求的时候
- Servlet类文件发生了改变,重新被装载
响应请求
在响应客户端请求阶段,Servlet的service()方法被Web容器调用,用来处理HTTP请求。service()方法的主要作用是将标准的HTTP请求,根据请求类型的不同,分发到doGet、doPost、doPut等方法中去执行。所以我们在编写自己的Servlet的时候,不需要覆写service()方法,而是根据需要覆写doGet,doPost,doPut等方法。