servlet生命周期
1.加载和实例
Servlet不能独立运行,它必须被部署到Servlet容器中,由容器实例化和调用Servlet的方法。当Servlet容器启动或者当客户端发送一个请求时,Servlet容器会查找内存中是否在Servlet实例,如果不存在,就创建一个Servlet实例。如果存在该Servlet的实例,就直接从内存中取出实例相应请求。
注:Servlet容器根据Servlet类的位置加载Servlet类,加载成功后,由容器创建Servlet实例
2.初始化
在实例化完成后,Servlet容器将调用Servlet的init()方法进行初始化,初始化的目的是让Servlet对象在处理客户端请求前完成一些工作。例如:设置连接参数,建立JDBC连接。
注:对于每个Servlet实例,init()方法只能被调用一次。
3.服务
Servlet 被初始化后,就处于能响应请求的就绪状态。当Servlet容器接收客户端请求时,调用Servlet的service()方法处理请求客户端请求。Servlet实例通过ServletRequest对象获得客户端的请求,通过调用ServletResponse对象的方法设置响应信息。
4.销毁
Servlet容器判断一个Servlet是否应当被释放时(关闭容器或需要回收资源),容器就会调用Servlet的destroy()方法,该方法指明那些资源可以被系统回收,而不是直接回收。
注:在服务器停止时,或者系统回收资源时,destroy()方法才被执行。