servlet的生命周期可以大致分为四个阶段
1.加载和实例化阶段
当servlet容器启动或客户都向服务器发送请求时,servlet容器会在内存中检查是否存在servlet实例,如果存在,则直接调用该servlet实例处理请求。如果不存在,则创建一个servlet实例出来,servlet容器只会创建一个servlet实例出来(单例模式)。
2.初始化阶段
当servlet被实例之后,servlet容器调用servlet的init()方法,对servlet的信息进行初始化(一些准备工作或资源预加载工作),在Servlet生命周期中init()方法只会被调用一次。
3.相应客户端请求阶段
servlet被初始化后,Servlet处于能响应请求的就绪状态。当接收到客户端请求时,调用service()的方法处理客户端请求,调用一次HttpServlet的service()方法会根据不同的请求 转调不同的doXxx()方法。(每请求一次就会调用一次service()方法)。
4.销毁阶段
当servlet没人去访问,或者服务器关闭时,Servlet容器会调用Servlet的destory方法。在destroy()方法调用之后,容器会释放这个Servlet实例,该实例随后会被Java的垃圾收集器所回收。如果再次需要这个Servlet处理请求,Servlet容器会创建一个新的Servlet实例