`
沙漠绿树
  • 浏览: 426467 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Servlet2.4 监听器

阅读更多

Servlet API提供了基本的应用程序事件监听器接口。编程者可以通过实现这些接口来使用管理事件的功能。Servlet2.4以后提供了对以下对象的事件监听:ServletContext,HttpSession,ServletRequest。监听ServletContext可以使Web程序得知整个应用程序载入和卸载等运行情况。监听HttpSession可以Web程序了解应用程序会期间的状况并作出响应。监听ServletRequest可以使Web程序控制Web请求的生命周期。
下面结合JavaServetAPI官方文档对各个事件监听器接中进行说明。


一、ServletContextListener
所在包:javax.servlet
接口声明:public interface ServletContextListener extends java.util.EventListener
方法:
1.void contextDestroyed(ServletContextEvent sce)
当应用被卸载后触发执行该方法中的代码。
2.void contextInitialized(ServletContextEvent sce)
当应用在初始化时触发执行该方法中的代码。

这里需要对ServletContentEvent说明一下,它是一个ServletContext对象的事件,其类的声明如下:
public class ServletContentEvent extends java.util.EventObject
包含方法:ServletContext getServletContext(),返回事件的Servlet上下文,即产生事件的当前应用程序。

 

二、ServletContextAttributeListener
所在包:javax.servlet
接口声明:public interface ServletContextAttributeListener
extends java.util.EventListener
方法:
1. void attributeAdded(ServletContextAttributeEvent scab)
当一个新的属性加入到Servlet的上下文中后触发该方法中的代码。
2.void attributeRemoved(ServletContextAttributeEvent scab)
当一个属性被从servlet的上下文中移走后触发该方法中的代码。
3.void attributeReplaced(ServletContextAttributeEvent scab)
当servlet上下文中的一个属性的值被替换后触发该方法中的代码。

ServletContextAttributeEvent是servlet上下文里的属性的事件,其类声明如下:
public class ServletContextAttributeEvent
extends ServletContextEvent
包含方法:String GetName(),返回产生事件的属性名称;Object GetValue(),返回产生事件的属性的值。

 

三、HttpSessionListener
所在包:javax.servlet
接口声明:public interface HttpSessionListener
extends java.util.EventListener
方法:
1.void sessionCreated(HttpSessionEvent se)
当一个会话被创建后触发执行该方法中的代码。
2.void sessionDestroyed(HttpSessionEvent se)
当一个会话被释放后触发执行该方法中的代码。

HttpSessionEvent是会话事件类,其声明如下:
public class HttpSessionEvent
extends java.util.EventObject
包含方法:HttpSession getSession(),返回产生事件的session对象。

 

四、HttpSessionActivationListener
所在包:javax.servlet
接口声明:public interface HttpSessionActivationListener
extends java.util.EventListener
方法:
1.void SessionDidActivate(HttpSessionEvent se)
2.void SessionWillPassivate(HttpSessionEvent se)
Activate与Passivate是用于置换对象的动作,当session对象为了资源利用或负载平衡等原因而必须暂时储存至硬盘或其它储存器时(透过对象序列化),所作的动作称之为Passivate,而硬盘或储存器上的session对象重新加载JVM时所采的动作称之为Activate。

 

五、HttpSessionAttributeListener
所在包:javax.servlet
接口声明:public interface HttpSessionAttributeListener
extends java.util.EventListener
方法:
1.void attributeAdded(HttpSessionBindingEvent se)
2.void attributeReplaced(HttpSessionBindingEvent se)
3.void attributeRemoved(HttpSessionBindingEvent se)
以上三个方法分别在会话属性被加入、会话属性值被修改和会话属性被移除时触发执行。

HttpSessionBindingEvent是一个会话事件对象类,其声明如下:
public interface HttpSessionBindingListener
extends java.util.EventListener
包含方法:String getName(),返回产生当前事件的会话的属性名。Object getValue(),返回产生当前事件的会话的属性值。HttpSession getSession(),返回产生当前事件的会话对象。

 

六、HttpSessionBindingListener(唯一一个不用在web.xml中配置的监听器)
所在包:javax.servlet
接口声明:public interface HttpSessionBindingListener
extends java.util.EventListener
方法:
1.void valueBound(HttpSessionBindingEvent event)
当实现HttpSessionBindingListener接口的对象被绑定到Session Attribute中,该对象的此方法被执行。
2.void valueUnbound(HttpSessionBindingEvent event)
当实现HttpSessionBindingListener接口的对象被从Session Attribute解除绑定,该对象的此方法被执行。

请注意HttpSessionAttributeListener与HttpSessionBindingListener的区别:
1.前者是需要在web.xml中进行描述的,后者不需要。
2.前者是在任何session的属生变化时都会触发执行其方法中的代码,而后者只是在实现它的对象被绑定到会话属性或被从会话属生中解除绑定时,才会触发执行那个对象的valueBound和valueUnboundy这两个方法的代码。比如说有两个对象A和B都实现了HttpSessionBindingListener接口,当A被绑定到会话属性中时,只是A的valueBound()方法被触发执行。

 

七、ServletRequestListener
所在包:javax.servlet
接口声明:public interface ServletRequestListener
extends java.util.EventListener
方法:
1.void RequestDestroyed(ServletRequestEvent evt)
2.void RequestInitialized(ServletRequestEvent evt)
以上两个方法分别在ServetRequest对象初始化和清除时触发执行。

ServletRequestEvent表示ServletReuest事件类,其声明如下:
public class ServletRequestEvent
extends java.util.EventObject
包含方法:ServletContext getServletContext(),获得当前Web应用程序的上下文对象。ServletRequest getServletRequest(),获得当前事件的主体,ServletRequest对象。

 

八、ServletRequestAttributeListener
所在包:javax.servlet
接口声明:public interface ServletRequestAttributeListener
extends java.util.EventListener
方法:
1.void attributeAdded(ServletRequestAttributeEvent e)
当向ServlvetRequest对象属性中添加属性后触发执行该方法。
2.void attributeRemoved(ServletRequestAttributeEvent e)
当向ServlvetRequest对象属性中移除属性后触发执行该方法。
3.void attributeReplaced(ServletRequestAttributeEvent e)
当修改ServlvetRequest对象属性的属生值后触发执行该方法。

ServletRequestAttributeEvent是ServletRequest属性事件类,其声明如下:
public class ServletRequestAttributeEvent
extends ServletRequestEvent
包含方法:String getName(),获得触发事件的属性的名称。Object getValue(),获得触发事件的属生的值。

  下面说明如何在web.xml中布署事件监听器以实现对事件的处理,格式如下:
<listener>
  <listener-class>
    fey.servlet.listener.CustomServletContextListener
  </listener-class > 
</listener>
  其中fey.servlet.listener.CustomServletContextListener是实现上述各事件监听器接口的类名。当然,你需要将这些类放入Web容器的Web应用的classes或lib目录下以让Web容器可以找到。
  另外说明一点,一个类可以一个或多个监听器接口。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/truexf/archive/2006/10/12/1331853.aspx

分享到:
评论

相关推荐

    精通JSP-Web开发技术与典型应用 光盘代码

    \ch12\* 第12章 使用Servlet2.4过滤器和监听器所有例程代码 \ch13\* 第13章 数据库访问:JDBC所有例程代码 \ch14\* 第14章 用户注册登录模块所有例程代码 \ch15\* 第15章 购物车模块所有例程代码 \ch16\* 第16...

    Java™ Servlet 规范.

    1.6.1 监听器(Listener)顺序 ...............................................................................................................14 1.6.2 注解处理 .............................................

    Servlet3.1规范(最终版) PDF

    1.6.1 监听器(Listener)顺序 ...............................................................................................................14 1.6.2 注解处理 ...............................................

    JavaWeb 开发指南 PPT课件

    14章 使用Servlet过滤器和监听器 15章 JSP Web应用的安全性 16章 Tomcat容器的JSP 17章 在JSP中使用Hibernate实现数据持久化 18章 JSP Web应用的设计与实践 19章 MVC模式实现----Struts2 20章 MVC模式实现----...

    Java_Web开发实战1200例第1卷.part2

    第7章 过滤器与监听器技术 239 7.1 Servlet过滤器 240 7.2 监听器的应用 262 第8章 JSTL标签库 267 8.1 JSTL Core标签库 268 8.2 JSTL I18N标签库 275 第9章 JavaScript技术 283 9.1 数据验证 284 9.2 字符串处理 ...

    Java_Web开发实战1200例第1卷.part3

    第7章 过滤器与监听器技术 239 7.1 Servlet过滤器 240 7.2 监听器的应用 262 第8章 JSTL标签库 267 8.1 JSTL Core标签库 268 8.2 JSTL I18N标签库 275 第9章 JavaScript技术 283 9.1 数据验证 284 9.2 字符串处理 ...

    看透springMvc源代码分析与实践

    22.1.2 异步请求监听器Async-Listener284 22.2 Spring MVC中的异步请求286 22.2.1 Spring MVC中异步请求相关组件286 22.2.2 Spring MVC对异步请求的支持297 22.2.3 WebAsyncTask和Callable类型异步请求的处理...

    springboot知识点整理

    2.4 properties配置文件乱码问题 24 2.5 @ConfigurationProperties与@Value的区别 25 2.6 配置@PropertySource、@ImportResource、@Bean 27 2.7 配置文件占位符 30 2.8 Profile多环境支持 31 2.9 配置文件的加载位置...

    疯狂Android讲义源码

     3.2.6 匿名内部类作为事件监听器类 154  3.2.7 直接绑定到标签 155  3.3 基于回调的事件处理 156  3.3.1 回调机制与监听机制 156  3.3.2 基于回调的事件传播 158  3.3.3 重写onTouchEvent方法响应  触摸屏...

    java web 视频、电子书、源码(李兴华老师出版)

    9.11.4、监听器实例 —— 在线人员统计 9.12、本章摘要 9.13、开发实战讲解(基于Oracle数据库) 第10章 表达式语言 10.1、表达式语言简介 10.2、表达式语言的内置对象 10.2.1、访问四种属性范围的内容 ...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    9.11.4、监听器实例 —— 在线人员统计 9.12、本章摘要 9.13、开发实战讲解(基于Oracle数据库) 第10章 表达式语言 10.1、表达式语言简介 10.2、表达式语言的内置对象 10.2.1、访问四种属性范围的内容 ...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    9.11.4、监听器实例 —— 在线人员统计 9.12、本章摘要 9.13、开发实战讲解(基于Oracle数据库) 第10章 表达式语言 10.1、表达式语言简介 10.2、表达式语言的内置对象 10.2.1、访问四种属性范围的内容 ...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    9.11.4、监听器实例 —— 在线人员统计 9.12、本章摘要 9.13、开发实战讲解(基于Oracle数据库) 第10章 表达式语言 10.1、表达式语言简介 10.2、表达式语言的内置对象 10.2.1、访问四种属性范围的内容 ...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    9.11.4、监听器实例 —— 在线人员统计 9.12、本章摘要 9.13、开发实战讲解(基于Oracle数据库) 第10章 表达式语言 10.1、表达式语言简介 10.2、表达式语言的内置对象 10.2.1、访问四种属性范围的内容 ...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    9.11.4、监听器实例 —— 在线人员统计 9.12、本章摘要 9.13、开发实战讲解(基于Oracle数据库) 第10章 表达式语言 10.1、表达式语言简介 10.2、表达式语言的内置对象 10.2.1、访问四种属性范围的内容 ...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    9.11.4、监听器实例 —— 在线人员统计 9.12、本章摘要 9.13、开发实战讲解(基于Oracle数据库) 第10章 表达式语言 10.1、表达式语言简介 10.2、表达式语言的内置对象 10.2.1、访问四种属性范围的内容 ...

    李兴华Java Web开发实战经典(高清版) Part2

    9.11.4、监听器实例 —— 在线人员统计 9.12、本章摘要 9.13、开发实战讲解(基于Oracle数据库) 第10章 表达式语言 10.1、表达式语言简介 10.2、表达式语言的内置对象 10.2.1、访问四种属性范围的内容 ...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    3.1.7 将监听器绑定到Bean属性 130 3.2 JSF的国际化支持 132 3.2.1 加载国际化资源文件 132 3.2.2 使用国际化消息 134 3.2.3 动态数据国际化 137 3.2.4 让用户选择语言 142 3.3 使用转换器完成类型转换 143 3.3.1 ...

    Spring中文帮助文档

    2.4. 中间层 2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. 对Websphere 事务管理的完整支持 2.4.3. JPA 2.4.4. 异步的JMS 2.4.5. JDBC 2.5. Web层 2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 ...

Global site tag (gtag.js) - Google Analytics