java servlet 监听器种类及介绍
2015-09-07 11:24
525 查看
java servlet 监听器种类及介绍
2012-02-09 17:29 2758人阅读 评论(0) 收藏 举报servletjava服务器tomcatweb
ServletContextAttributeListener 监听对ServletContext属性的操作,比如增加、删除、修改属性。
ServletContextListener监听ServletContext。
当创建ServletContext时,激发 contextInitialized(ServletContextEvent sce)方法;
当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。
ServletContextListener 接口
contextInitialized 初始化方法
contextDestroyed 销毁方法
ServletRequestListener, ServletRequestAttributeListener 接口
Servlet 2.4版在事件监听器中加入了ServletRequest监听器,包括:ServletRequestListener, ServletRequestAttributeListener ,用来管理和控制与ServletRequest动作有关的事件。
对于ServletRequest事件,当request初始化、销毁或者request属性的增加、删除和替换时,事件监听类得到通知。
下表列出了 ServletRequest的事件类型,对应特定事件的监听类必须实现的接口和当事件发生时调用的方法。
事件类型 | 接口 | 方法 |
request初始化 | javax.servlet.ServletRequestListener | requestInitialized() |
request销毁 | javax.servlet.ServletRequestListener | requestDestroyed() |
增加属性 | javax.servlet.ServletRequestAttributeListener | attributeAdded() |
删除属性 | javax.servlet.ServletRequestAttributeListener | attributeRemoved() |
属性被替换 | javax.servlet.ServletRequestAttributeListener | attributeReplaced() |
Http会话(Seesion)与请求(Request)与ServletContext用法相当。需指出,Request监听器在Tomcat 4.1不能调试,故升级到Tomcat 5.0才可以,所以可以肯定RequestListener是符合Servlet2.4新规范的,需用tomcat5.0以上版本。
利用HttpSessionListener接口可针对HTTP会话建立一个“监听器类”。只要Web应用程序内新增了一个HTTP会话,Servlet 容器就会将该事件(HttpSessionEvent)转交给适当的“监听器类”进行处理(必须事先配置web.xml)。
下表是HttpSessionListener接口内定义的两个方法,只要是实现该接口的“监听器类”,就必须包含这两种方法。
方法名称 | 调用时机 |
sessionCreated(HttpSessionEvent se) | 在Web应用程序内建立一个新的HTTP会话时, Servlet容器将会调用此方法 |
sessionDestoryed(HttpSessionEvent se) | 在Web应用程序内移除某个HTTP会话时,Servlet容器将会调用此 方法 |
当Web应用程序的会话必须跨越其他服务器时,实现HttpSessionActivationListener接口的“监听器类”将会收到会话转移的事 件。
下表是HttpSessionActivationListener接口内定义的两种方法。
方法名称 | 调用时机 |
sessionWillPassivate(HttpSessionEvent se) | 当HTTP会话必须转移到其他服务器之前,Servlet容器将会调用此方法 |
sessionDidActivate(HttpSessionEvent se) | 当HTTP会话转移到其他服务器以后,Servlet容器将会调用此方法 |
HttpSessionAttributeListener 接口
HttpSessionAttributeListener接口与ServletContextAttributeListener非常类似,前者是针对 HTTP会话所设计的“监听器接口”,后者则是针对Servlet运行环境(context)所设计的“监听器接口”,该接口定义的方法见下表。
方法名称 | 调用时机 |
attributeAdded(HttpSessionBindingEvent scab) | 在HttpSession对象内加入新的属性时会调用此方法 |
attributeRemoved(ServletContextAttributeEvent scab) | 在HttpSession对象内删除某个属性时会调用此方法 |
attributeReplaced(ServletContextAttributeEvent scab) | 在HttpSession对象内置换某个属性时会调用此方法 |
HttpSessionBindingListener 接口
HttpSessionBindingListener接口在观念上与HttpSessionAttributeListener接口有点类似,但是它与 本章探讨的“监听器类”并没有直接关系。
因为Servlet 2.3规范以前尚未制定Web应用程序的“监听器”机制,如果想知道HTTP会话内何时加入或移除某个对象,必须采用下列方式:
(1)准备绑定至HTTP会话的对象必须实现 HttpSessionBindingListener接口- - 监听器对象。
(2)在该对象内改写HttpSessionBindingListener接口 所定义的两种方法(参考下表)。
方法名称 | 调用时 机 |
valueBound(HttpSessionBindingEvent event) | 当监听器对象绑定至HTTP会话时,Servlet容器将会调用此方法 |
valueUnbound(HttpSessionBindingEvent event) | 当监听器对象从HTTP会话内修改、移除或会话销毁时,Servlet容器将会调用此方法 |
相关文章推荐
- java解压缩文件
- Java的基本概念
- spring jar 包 用处功能:
- 按理来'|'说是个特殊字符,为啥split需要转义,用replace不需要转义
- JVM原理讲解和调优
- java异常处理机制finally中的return返回
- java注释量统计代码实现
- SpringMVC整合Mybatis做的一个简单的查询功能
- java 动态规划求解最长公共子序列&最长公共子串问题
- Spring优点
- eclipse 不断报错:Computing Git status for repository
- Java构造和解析Json数据的两种方法详解一
- Java算法-1.连通性问题
- android笔记(eclipse的使用)
- JAVA之JDK在64位系统默认开启压缩指针分析
- Eclipse中安装Jetty插件
- Myeclipse常见快捷键及配置
- json数据转换成java类
- windows 打包Java web项目内容实现一键安装
- 基于OAtuth2的新浪微博Java爬虫