servlet 运行在servlet 容器中,其生命周期由容器来管理。servlet 的生命周期通过 javax.servlet.Servlet接口中的init(),servce(),和destory();方法表示。
1,加载和实例化
servlet 容器负责加载和实例化servlet 当容器启动或在容器中检测到需要这个servlet来响应一个请求 时。创建servlet实例。容器通过java 的反射API来创建servlet实例.所以servlet中不应该提供带参数的构造函数。
2,初始化
在servlet实例化后,容器必须调用 init() 方法来初始化这个对象。初始化的目的是为了让servlet对象在处理客户请求之前完成一些初始工作。对于每一个servlet实例,init() 方法只会调用一次。
3,请求处理
servlet 容器调用service()方法对请求处理。servlet 实例通过ServletRequest对象获得客户端的相关信息和请求信息。在对请求处理后调用ServletResponse对象设置响应信息。
4,服务终止
当容器检测到一个servlet实例应该从服务器中移除时,容器调用实例的destory方法。让实例释放它所占用的资源。如果在次发请求就会 创建一个新的servlet 实例。
在整个servlet 的生命周期中,创建servlet实例,调用实例的init()和destory()方法都只执行一次,当初始话完成后,servlet容器将该实例保存在内存中,通过servlce() 方法为接受请求服务。