码迷,mamicode.com
首页 > 其他好文 > 详细

Servlet生命周期

时间:2015-01-14 09:51:48      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:servlet   生命周期   

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>


Servlet生命周期

标签:servlet   生命周期   

原文地址:http://blog.csdn.net/u012152619/article/details/42704997

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!