![c23861da524eec81ece656aa2d0c3892.png](https://img-blog.csdnimg.cn/img_convert/c23861da524eec81ece656aa2d0c3892.png)
Servlet生命周期
Servlet容器是用来装载Servlet对象的一种容器,是负责管理Servlet的一类组件.
注意:
Servlet容器根据Servlet类的位置加载Servlet类,加载成功后,由容器创建Servlet实例
(1).加载和实例化.Servlet容器负责加载和实例化Servlet,当客户端发送一个请求时,Servlet容器会查找内存中是否存在该Servlet实例,如果不存在,就创建一个Servlet实例:如果存在,就直接从内存中读取出该实例来响应请求.
(2)初始化.在Servlet容器完成Servlet实例化后,Servlet容器将调用Servlet的init()方法进行初始化.初始化的目的是让Servlet对象在处理客户端请求前完成一些准备工作,如设置数据库连接参数,建立JDBC连接,或者建立对其他资源的引用. init()方法在javax.servlet.Servlet接口中定义
对于每一个Servlet实例,init()方法只被调用一次
(3)提供服务,处理请求.Servlet初始化后,就处于能响应请求的就绪状态.当Servlet容器接受到客户端请求时,调用Servlet的service()方法处理客户端请求,Servlet实例通过ServletRequest对象获得客户端的请求,通过调用ServletResponse对象的相关方法设置响应信息.
(4)销毁. Servlet的实例是由Servlet容器创建的,所以实例的销毁也是由容器来完成的 .Servlet容器判断一个Servlet是否应当被释放时(容器关闭或需要回收资源),容器就会调用Servlet的destory()方法,destory()方法指明哪些资源可以被系统回收.
Servlet的声明周期过程和相应的方法
实例化->Servlet容器创建Servlet的实例
初始化->容器调用init()方法
服务->如果客户端请求Servlet,则容器调用service()方法
销毁->销毁实例之前调用destroy()方法