`
沙漠绿树
  • 浏览: 430211 次
  • 性别: 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

分享到:
评论

相关推荐

    servlet2.4中文规范

    - **监听器**:监听器允许对Web应用程序中的事件做出反应,例如监听会话的创建和销毁,或者ServletContext的变化。 - **MIME多部分支持**:支持解析上传文件的MIME多部分请求。 - **URL重写**:提供了一种方式来...

    Servlet2.4规范(pdf)

    7. **监听器**:监听器是响应特定事件(如会话创建、销毁或属性改变)的特殊Servlet。它们通过实现特定接口并在`web.xml`中注册来启用。 8. **JSP和Servlet协作**:JSP可以看作是视图层,而Servlet作为控制器,两者...

    Servlet2.4&3.0规范

    Servlet是Java平台上的一个核心组件,用于构建动态Web应用程序。Servlet 2.4和3.0规范是由Sun...无论是Servlet 2.4的过滤器链、监听器增强,还是Servlet 3.0的注解驱动、异步处理,都是现代Web开发中不可或缺的知识点。

    servlet2.4和jsper2.0的源代码

    5. **监听器(Listener)**:监听器可以监听特定的事件,如会话创建、销毁、请求到达等,实现自动化的任务。 JSP 2.0则是JavaServer Pages的第二个主要版本,它增强了与Servlet的交互,以及对动态网页开发的支持: ...

    servlet-2_4-fr-spec-doc.rar_doc_servlet 2.4 spec_servlet api_ser

    4. **监听器(Listener)**:监听器是实现了特定接口的类,用于监听Servlet容器中的特定事件,如会话创建、销毁、上下文初始化或销毁等。例如,`HttpSessionListener`用于监听会话的创建和销毁。 5. **请求和响应...

    Servlet2.4-1帮助文档(英文)

    这个"Servlet2.4-1帮助文档(英文)"的CHM文件很可能是官方发布的API文档,包含了Servlet 2.4规范的所有类、接口、方法和注解的详细说明,是学习和开发Servlet应用的重要参考资料。通过查阅这个文档,开发者可以深入...

    servlet2.4-jsper2.0_src.zip

    2. **监听器(Listener)**:监听器是实现了特定接口的对象,用于监听服务器、会话或组件事件。例如,SessionListener可以监听会话的创建、失效等事件,ContextListener可以监听应用的启动和停止。 3. **请求分发...

    servlet2.4doc

    Servlet 2.4是Java ...综上,"servlet2.4doc"可能包含了关于Servlet 2.4规范的详细文档,涵盖了从Servlet配置、请求响应处理、过滤器到会话管理、安全性、国际化等各个方面的内容,是Java Web开发者的宝贵参考资料。

    Servlet 2.4 又有哪些新变化

    新增了ServletRequest监听器类和方法,允许开发者在请求生命周期的不同阶段进行干预,提高应用的可扩展性和定制性。 6. **SingleThreadModel的废弃**: SingleThreadModel接口不再推荐使用,因为它的线程安全策略...

    servlet-api-2.4.jar (亲测可用)

    4. **Listener**:这一版本增加了多种监听器接口,如HttpSessionListener、ServletRequestListener和ServletContextListener。这些监听器可以在特定事件(如会话创建、请求到达或上下文初始化)发生时执行代码,增强...

    Java Servlet Specification2.4

    同时,JSS 2.4 也提供了丰富的 API 来支持高级功能,如过滤器、监听器等,便于开发者扩展应用功能。 #### 八、总结 Java Servlet Specification 2.4 是一个重要的规范文档,它不仅为开发者提供了构建高性能、安全...

    Java Serlet 2.4、JSP 2.0 入门教程

    1. **注解支持**:Servlet 2.4引入了注解,使得开发者可以在类或方法上添加注解,以声明servlet、过滤器和监听器,无需使用web.xml配置文件。 2. **表达式语言(EL)**:虽然EL 1.0在Servlet 2.3中就已经存在,但在...

    servlet-2_4-pfd-spec

    其次,Servlet 2.4规范引入了过滤器(Filter)的概念,这是一种强大的工具,允许你在请求到达Servlet之前或之后对其进行拦截和修改。通过实现`Filter`接口并配置在`web.xml`中,你可以实现诸如登录检查、URL重写、...

    servlet api

    - 支持注解(Annotation),简化了Servlet、过滤器和监听器的配置。 - 引入了统一的表达式语言(EL,Expression Language),简化了从JSP页面访问JavaBean属性。 - 提供了更强大的过滤器链和会话管理功能。 总之...

    servelt specification

    2. **Listener**:增强了事件监听器,如HttpSessionListener、ServletRequestListener和ServletRequestAttributeListener,让开发者可以监听会话和其他HTTP事件。 3. **JSP 2.0集成**:Servlet 2.4与JSP 2.0紧密...

    servlet-api 各种版本

    - 实现了监听器(Listener)接口,如ServletContextListener,用于在Servlet容器启动和停止时执行特定操作。 - 引入过滤器(Filter)概念,允许开发者在请求到达Servlet之前进行拦截和处理,实现如权限控制、字符...

    servlet2.5源码

    - web.xml是Web应用的部署描述符,定义了应用的配置信息,如Servlet、Filter、监听器等的配置。 9. **监听器(Listener)**: - 监听器可以监听特定的事件,如会话创建、销毁,上下文初始化、销毁等,以执行相应...

    Servlet过滤器与侦听器.ppt

    侦听器(Listener)则是Servlet容器中的事件监听器,它们监听特定的事件,如session的创建、销毁、属性改变,或是请求初始化、销毁等。通过实现各种接口,如`HttpSessionListener`、`ServletRequestListener`等,...

    Java基础 Servlet监听器详解

    Java Servlet监听器是Java Servlet API中的一个重要组成部分,它们允许开发者在Web应用的生命周期内的某些关键点添加自定义行为。具体来说,监听器可以监控Web应用中的三个主要对象:ServletContext(代表整个Web...

    web-app_2_4.xsd

    在这个版本中,Servlet容器如何加载和管理Servlet、过滤器和监听器的生命周期有了明确的规定。 此外,`web-app_2_4.xsd`还包含关于安全配置的元素,如`&lt;security-constraint&gt;`定义了对资源的访问限制,`...

Global site tag (gtag.js) - Google Analytics