Servlet事件监听器
更新时间:2023-03-15 19:23:01 阅读量: 教育文库 文档下载
- servlet生命周期推荐度:
- 相关推荐
在Servlet技术中已经定义了一些事件,并且我们可以针对这些事件来编写相关的事件监听器,从而对事件作出相应处理。Servlet事件主要有3类:Servlet上下文事件、会话事件与请求事件。下面具体讲解这3类事件的监听器实现。 1.对Servlet上下文进行监听
可以监听ServletContext对象的创建和删除以及属性的添加、删除和修改等操作。该监听器需要使用到如下两个接口类:
● ServletContextAttributeListener:监听对ServletContext属性的操作,如增加、删除、修改操作。
● ServletContextListener:监听ServletContext,当创建ServletContext时,激发contextInitialized (ServletContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContext- Event sce)方法。
2.监听Http会话
可以监听Http会话活动情况、Http会话中属性设置情况,也可以监听Http会话的active、paasivate情况等。该监听器需要使用到如下多个接口类: ● HttpSessionListener:监听HttpSession的操作。当创建一个Session时,激发session Created (SessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se) 方法。
● HttpSessionActivationListener:用于监听Http会话active、passivate情况。
● HttpSessionAttributeListener:监听HttpSession中属性的操作。当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se) 方法;当在Session删除一个属性时,激发
attributeRemoved(HttpSessionBindingEvent se)方法;在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。 3.对客户端请求进行监听
对客户端的请求进行监听是在Servlet 2.4规范中新添加的一项技术,使用的接口类如下:
● ServletRequestListener接口类。
● ServletRequestAttrubuteListener接口类。 Servlet上下文监听器实例
下面编写一个实例,使它能够对ServletContext以及属性进行监听。由以上介绍可知,该类需要实现ServletContextAttributeListener和ServletContextListener接口类,其详细代码如下:
[java] view plaincopyprint?
1.package servlet; 2.
3.import java.io.FileOutputStream; 4.
5.import java.io.PrintWriter; 6.
7.import javax.servlet.ServletContext; 8.
9.import javax.servlet.ServletContextAttributeEvent; 10.
11. import javax.servlet.ServletContextAttributeListener; 12.
13. import javax.servlet.ServletContextEvent; 14.
15. import javax.servlet.ServletContextListener; 16.
17. public class MyServletContextListener 18.
19. implements ServletContextListener,ServletContextAttributeListener{ 20.
21. private ServletContext context = null; //定义
一个ServletContext对象变量,赋为null
22.
23. public void contextInitialized(ServletContextEvent s) { 24.
25. //TODO 该方法实现了ServletContextListener接口定义的方法,对
ServletContext进行初始化 26.
27. this.context = s.getServletContext(); //初始化一
个ServletContext对象 28.
29. print(\初始化......\打印出该
方法的操作信息 30. 31. } 32.
33. public void contextDestroyed(ServletContextEvent s) { 34.
35. //TODO 该方法实现了ServletContextListener接口类定义方法,用
于释放ServletContext对象 36.
37. this.context = null; 38.
39. print(\被释放......\40. 41. } 42.
43. public void attributeAdded(ServletContextAttributeEvent sa) { 44.
45. //TODO 当上下文添加属性时,将调用该方法。这里只是将添加的属
性信息打印出来 46.
47. print(\增加ServletContext对象的一个属性:
attributeAdded('\48. 49. } 50.
51. public void attributeRemoved(ServletContextAttributeEvent sa) { 52.
53. //TODO 当把ServletContext中的某个属性删除时,调用该方法 54.
55. print(\删除ServletContext对象的某一个属性:attributeRemoved(' 56.
57. \58. 59. } 60.
61. public void attributeReplaced(ServletContextAttributeEvent sa) { 62.
63. //TODO 当上下文进行属性值更新时,将调用该方法 64.
65. print(\更改ServletContext对象的某一个属性:attributeReplaced(' 66.
67. \68.
69. } 70.
71. private void print(String message){ 72.
73. //调用该方法在txt文件中打印出message字符串信息 74.
75. PrintWriter out = null; 76.
77. try{ 78.
79. out = new PrintWriter(new FileOutputStream(\
rue)); 80.
81. out.println(new java.util.Date().toLocaleString()+\
ener: \82.
83. out.close();
84.
85. } 86.
87. catch(Exception e) 88.
89. { 90.
91. e.printStackTrace(); 92.
93. } 94. 95. } 96. 97. }
程序说明:该监听器类实现了ServletContextAttributeListener和ServletContextListener两个接口类中的5个方法:
● contextInitialized(ServletContextEvent s)方法用来初始化ServletContext对象。
● contextDestroyed(ServletContextEvent s)方法在上下文中删除某个属性时调用。
● attributeAdded(ServletContextAttributeEvent sa)方法在上下文中添加一个新的属性时调用。
● attributeReplaced(ServletContextAttributeEvent sa)方法在更新属性时调用。
● attributeRemoved(ServletContextAttributeEvent sa)方法在上下文中删除某个属性时会被调用。
在使用这个监听器之前还需要在Web模块中的web.xml配置文件中进行声明,代码如下:
正在阅读:
Servlet事件监听器03-15
看听学第一册 lesson405-28
小乌鸦和妈妈教学反思03-10
传统文化中的管理智慧 83分11-14
贩卖毒品罪02-17
种水蒜作文400字06-21
区队、班组建制09-10
蚌鹬相争的故事作文600字06-20
爸爸妈妈请听我说作文500字06-19
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 监听器
- Servlet
- 事件
- 人教版化学九年级上册第一单元《走进化学世界》word导学案
- SimTrade快速入门 - 图文
- 硬质合金钻头钻削不同材料的切削用量
- 红牛新厂址诚邀孙英雄大师勘探风水 助力企业更上一层楼
- 2015第一批六西格玛绿带结业考试试卷
- 工程机械液压系统检测与调试课程解读
- 幼儿园中班保教工作计划
- 20131230-CNC操作说明书 - 图文
- 坚强面对生活 教案
- 电子科技大学CPU流水线 高级语言模拟 - 图文
- 机械制造基础期末试卷A
- 雷总在陕西公司2018年燃料工作会议上的讲话
- 电视摄像基础
- 普通车床车工岗位HSE作业指导书(1) - 图文
- 热处理作业指导书
- 2017年新时代中国特色社会主义的基本方向答案
- 电能计量练习试题4
- 高速公路,跨铁路施工特大桥施工组织设计(范本,真 实有效) -
- minitab正交分析、响应分析 - 图文
- 新闻学读后感