Servlet基础(二) Servlet的生命周期
2013-11-03 17:05
399 查看
1.初始化阶段
2.响应客户请求阶段
3.终止阶段
Servlet的初始化阶段
在下列时刻Servlet容器装载Servlet:1.Servlet容器启动时自动装载某些Servlet。
2.在Servlet容器启动后,客户首次向Servlet发出请求。
3.Servlet的类文件被更新后,重新装载Servlet。
Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。
在Servlet的整个生命周期中,init方法只会被调用一次。
Servlet对象何时被创建?
默认情况下,当Web客户第一次请求访问某个Servlet时,Web容器创建这个Servlet的实例。
但web.xml中如果设置了<servlet>元素的<load-on-startup>子元素,Servlet容器在启动Web应用时,将按照指定的顺序(元素值从小到大)创建并初始化这个Servlet。
如下:
<servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.shengqishiwind.servlet.MyServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet>
注:<servlet-mapping>提供了URL向servlet元素的映射,如下:
<servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/MyServlet</url-pattern> </servlet-mapping>
但有些时候某些Servlet在web.xml中没有 <servlet-mapping>,只有 <servlet>标签,即不能通过URL直接访问。
它们是用来做什么的呢?
答案是:
它们会被用来做一些全局性的初始化工作。
这种Servlet在元素中加入<load-on-startup>子元素,在启动Web应用时,这些Servlet会被自动加载,其中的init方法会被调用,完成一些初始化工作。
Web应用何时被启动?
当Servlet容器启动时,会启动所有的Web应用。
通过控制台启动Web应用。
Servlet的响应客户请求阶段
对于到达Servlet容器的客户请求,Servlet容器创建特定于这个请求的ServletRequest对象和ServletResponse对象,然后调用Servlet的service方法。service方法从ServletRequest对象获得客户请求信息、处理该请求,并通过ServletResponse对象向客户返回响应结果。
Servlet的终止阶段
当1)Web应用被终止,或2)Servlet容器终止运行,或3)Servlet容器重新装载Servlet的新实例时,Servlet容器会先调用Servlet的destroy方法。在destroy方法中,可以释放Servlet所占用的资源。
相关文章推荐
- 利用cookie 记住背景颜色 (利用Jquery对Cookie进行设值与取值)
- 机器学习中的超平面wx+b=0?
- C# ZIP文件的压缩和解压缩(SharpZipLib.dll)
- yii cgridview 如何显示图片
- 几何对象和空间参考
- 向亲人、故乡和“本民族”致敬的写作----查舜长篇小说《月亮是夜晚的一点明白》读后
- 遇到的比较有意思的问题(1)去掉重复数字(2)提取数组的子数组,求和最大的子数组、最大的子数组和
- Servlet基础(一) Servlet基础和关键的API介绍
- [原]考试系统——C#反射机制+工厂模式+缓存机制遇到问题
- [原]考试系统——C#反射机制+工厂模式+缓存机制遇到问题
- hibernate 配置搭建
- 插入排序
- 【Java TCP/IP Socket】TCP Socket(含代码)
- Jquery 秀、无极限------正则表达式、Html、CSS、JavaScript基础回顾
- 考试系统——C#反射机制+工厂模式+缓存机制遇到问题
- 二分图
- SVN版本控制的环境搭建
- linux c socket 实现http get/post请求
- 在bootstrap 中 的 radio button 设置 checked
- 斐波那契额数列及青蛙跳台阶问题