您的位置:首页 > 编程语言 > Java开发

【Java.Web】Servlet —— Servlet(JavaWeb)的生命周期

2013-12-31 02:49 363 查看

Java Web的生命周期

Java Web的生命周期是由Servlet容器来控制的,Java Web应用的声明周期包括三个阶段:

启动阶段

把web.xml文件加载到内存中
为Java Web应用创建一个ServletContext对象
对所有的Filter进行初始化
对那些需要在Web应用启动时就被初始化的Servlet进行初始化

运行阶段

加入客户端请求的Servlet还不存在,Servlet容器会先初始化Servlet,然后再调用它的service()服务方法。

终止阶段

销毁Java Web应用中所有处于运行时状态的Servlet
销毁所有处于运行时状态的Filter
销毁所有与Java Web应用相关的对象,如ServletContext对象等,并且释放Web应用所占用的相关资源

Servlet的生命周期

初始化阶段

Servlet容器加载Servlet类,把它的.class文件中的数据读入内存中
Servlet容器创建ServletConfig对象,Servlet对象包含了特定的Servlet的初始化配置信息,将ServletConfig对象与当前Web应用的ServletContext对象关联
Servlet容器创建Servlet对象
Servlet容器调用Servlet对象的init()方法

以上过程将servlet,servletconfig,servletcontext相关联。

在以下情况下,Servlet会进入初始化阶段:

当Web应用处于运行时阶段,特定Servlet被客户端首次请求访问。大多数的Servlet都会在这种情况下被Servlet容器初始化
如果在web.xml文件中为一个Servlet设置了<load-on-startup>元素,那么当Servlet容器启动Servlet所属的Web应用时,就会初始化这个Servlet(启动初始化)
当Web应用被重新启动时,Web应用中的所有Servlet都会在特定的时刻被重新初始化

注意:即使两个Servlet的class一样,也会生成两个Servlet对象,因为它们的ServletConfig可能是不同的

运行时阶段

当Servlet容器接受到要求访问特定Servlet的客户请求时,Servlet容器会创建针对这个请求的ServletRequest和ServletResponse,然后调用相应 Servlet对象的service()方法。

当Servlet容器把Servlet生成的响应结果发送给了客户,Servlet容器就会销毁ServletRequest对象和ServletResponse对象。

销毁阶段

调用servlet对象的destroy()方法,还会销毁与Servlet对象关联的ServletConfig对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: