1、Servlet 通过调用 init () 方法进行初始化。
2、Servlet 调用 service() 方法来处理客户端的请求。
3、Servlet 通过调用destroy() 方法终止(结束)。
4、最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
服务器会在启动时(如果load-on-startup为1)或者第一次请求Servlet时(如果load-on-startup为0)初始化一个Servlet对象
无论请求多少次Servlet,最多只有一个Servlet实例,多个客户端并发的请求Servlet时,服务器会启动多个线程分别执行该Servlet的Service 方法
init方法和destroy方法只会被执行一次,而Service方法在每次客户端请求Servlet时都会被执行
从java EE 5规范开始,Servlet中增加了两个影响Servlet生命周期的注解,@PostConstruct与@PreDestroy,这两个注解被用来修饰一个非静态的void方法,而且这个方法不能有抛出异常的声明
@PostConstruct public void someMethod(){ ... //此函数会在Servlet的构造函数执行之后,init 方法执行之前触发 } @PreDestroy public void someMethod(){ ... //此函数会在destroy方法执行之后,服务器卸载Servlet之前触发 }需要注意的事,注解多多少少会影响服务器的加载速度,如果应用程序中没有使用任何注解,可以再web.xml中设置<web-app>的metadata-complete属性为true来关闭服务器启动时例行的注解检查
<web-app xmlns ="http://java.sun.com/xml/ns/javaee" version = "2.5" metadata-complete = "true"> ... </web-app>
原文地址:http://blog.csdn.net/u012152619/article/details/42704997