Servlet生命周期
Servlet的生命周期是由servlet容器来控制的。Servlet周期分为三个阶段:(一)初始化阶段;(二)运行阶段;(三)销毁阶段。
分阶段讲解:
(一)servlet初始化阶段,调用init()方法。
在下列时刻servlet容器载入servlet:
1、servlet容器启动时自动载入某些servlet,实现它只需要在web.XML
文件中的之间添加如下代码:
1。
2、在servlet容器启动后,客户首次向servlet发送请求。
3、Servlet类文件被更新后,重新载入servlet。
Servlet被载入后,servlet容器创建一个servlet实例并且调用servlet的init()方法进行初始化。在servlet的整个生命周期内,init()方法只被调用一次。
(二)servlet运行阶段,调用service()方法。
对于用户到达servlet的请求,servlet容器会创建特定于这个请求的servletrequest对象和servletresponse对象,然后调用servlet的service方法。Service方法从servletrequest对象获得客户请求信息,处理该请求,并通过servletresponse对象向客户返回响应信息。
Servlet接口和GenericServlet是不特定于任何协议的,而HttpServlet是特定于HTTP协议的类,所以HttpServlet中实现了service()方法,并将请求ServletRequest,ServletResponse强转为HttpRequest和HttpResponse。
代码的最后调用了HTTPServlet自己的service(request,response)方法,然后根据请求去调用对应的doXXX方法,因为HttpServlet中的doXXX方法都是返回错误信息。
(三)servlet销毁(终止)阶段,调用destroy()方法。
当web应用被终止,或servlet容器终止运行,或servlet容器重新载入servlet新实例时,servlet会先调用servlet的destroy()方法,在destroy()方法中可以释放掉servlet所占用的内存资源。