`
YOUNG918
  • 浏览: 188731 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Servlet监听器

    博客分类:
  • web
阅读更多

原文地址:http://www.21jn.net/html/85/n-285.html

Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理。
接口:
目前Servlet2.4和JSP2.0总共有8个监听器接口和6个Event类,其中HttpSessionAttributeListener与
HttpSessionBindingListener 皆使用HttpSessionBindingEvent;HttpSessionListener和 HttpSessionActivationListener则都使用HttpSessionEvent;其余Listener对应的Event如下所 示:

 

 

Listener 接口

Event

ServletContextListener

ServletContextEvent

ServletContextAttributeListener

ServletContextAttributeEvent

HttpSessionListener

HttpSessionEvent

HttpSessionActivationListener

HttpSessionAttributeListener

HttpSessionBindingEvent

HttpSessionBindingListener

ServletRequestListener

ServletRequestEvent

ServletRequestAttributeListener

ServletRequestAttributeEvent

 


一 ServletContext相关监听接口

 补充知识:通过ServletContext 的实例可以存取应用程序的全局对象以及初始化阶段的变量。
 在JSP文件中,application 是 ServletContext 的实例,由JSP容器默认创建。Servlet 中调用 getServletContext()方法得到 ServletContext 的实例。
 
 注意:全局对象即Application范围对象,初始化阶段的变量指在web.xml中,经由<context-param>元素所设定的变量,它的范围也是Application范围,例如:

 <context-param>
  <param-name>Name</param-name>
  <param-value>browser</param-value>
 </context-param>
 
 当容器启动时,会建立一个Application范围的对象,若要在JSP网页中取得此变量时:
  String name = (String)application.getInitParameter("Name");
 或者使用EL时:
  ${initPara.name}
 若是在Servlet中,取得Name的值方法:
  String name = (String)ServletContext.getInitParameter("Name");

 1.ServletContextListener:
 用于监听WEB 应用启动和销毁的事件,监听器类需要实现javax.servlet.ServletContextListener 接口。
 ServletContextListener 是 ServletContext 的监听者,如果 ServletContext 发生变化,如服务器启动时 ServletContext 被创建,服务器关闭时 ServletContext 将要被销毁。

 ServletContextListener接口的方法:
  void contextInitialized(ServletContextEvent sce)  
 通知正在接受的对象,应用程序已经被加载及初始化。
  void contextDestroyed(ServletContextEvent sce)  
 通知正在接受的对象,应用程序已经被载出。
 ServletContextEvent中的方法:
 ServletContext getServletContext() 
 取得ServletContext对象

 2.ServletContextAttributeListener:用于监听WEB应用属性改变的事件,包括:增加属性、删除属性、修改属性,监听器类需要实现javax.servlet.ServletContextAttributeListener接口。

 ServletContextAttributeListener接口方法:
 void attributeAdded(ServletContextAttributeEvent scab)
 若有对象加入Application的范围,通知正在收听的对象
 void attributeRemoved(ServletContextAttributeEvent scab)
 若有对象从Application的范围移除,通知正在收听的对象
 void attributeReplaced(ServletContextAttributeEvent scab)
 若在Application的范围中,有对象取代另一个对象时,通知正在收听的对象


 ServletContextAttributeEvent中的方法:
 java.lang.String getName()
 回传属性的名称
 java.lang.Object getValue()
 回传属性的值

二、HttpSession相关监听接口
 1.HttpSessionBindingListener接口
 注意:HttpSessionBindingListener接口是唯一不需要再web.xml中设定的Listener

 当我们的类实现了HttpSessionBindingListener接口后,只要对象加入Session范围(即调用HttpSession 对象的setAttribute方法的时候)或从Session范围中移出(即调用HttpSession对象的removeAttribute方法的时 候或Session Time out的时候)时,容器分别会自动调用下列两个方法:
 void valueBound(HttpSessionBindingEvent event)
 void valueUnbound(HttpSessionBindingEvent event)

 思考:如何实现记录网站的客户登录日志, 统计在线人数?

 2.HttpSessionAttributeListener接口
 HttpSessionAttributeListener监听HttpSession中的属性的操作。
 当 在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se) 方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。这和ServletContextAttributeListener比较类似。

 3.HttpSessionListener接口
 HttpSessionListener监听HttpSession的操作。当创建一 个Session时,激发session Created(HttpSessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。

 4.HttpSessionActivationListener接口
  主要用于同一个Session转移至不同的JVM的情形。

四、ServletRequest监听接口
 1.ServletRequestListener接口和ServletContextListener接口类似的,这里由ServletContext改为ServletRequest
 2.ServletRequestAttributeListener接口和ServletContextListener接口类似的,这里由ServletContext改为ServletRequest

分享到:
评论

相关推荐

    servlet 监听器范例

    在Java Web开发中,Servlet监听器(Servlet Listener)扮演着重要的角色,它是Servlet规范的一部分,允许开发者对Web应用程序中的特定事件进行监听和响应。在这个范例中,我们将深入探讨如何利用监听器来统计在线...

    servlet监听器案例

    Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定的Servlet容器事件发生时执行相应的代码。在本文中,我们将深入探讨Servlet监听器的工作原理、配置和使用,结合具体的"web.xml"配置以及JSP页面的...

    servlet监听器技术源码

    Servlet监听器技术是Java Servlet规范中的一项重要特性,它允许开发者在特定的Servlet容器事件发生时执行自定义的代码逻辑。这些事件可以包括Web应用程序的初始化、终止,或者是Servlet或Servlet上下文...

    JAVA Servlet监听器listener学习资料

    Java Servlet监听器(Listener)是Java Web开发中的一个重要组件,它们允许开发者在特定事件发生时执行自定义逻辑,而无需直接修改原有的业务代码。监听器是Servlet规范的一部分,通过实现特定的接口,开发者可以...

    Servlet监听器在基于移动Web在线考试系统中的应用.pdf

    "Servlet监听器在基于移动Web在线考试系统中的应用" Servlet监听器是Servlet规范中定义的一种特殊类,用于监听Web应用程序中的ServletContext、HttpSession和ServletRequest等域对象的创建与销毁事件,以及这些域...

    servlet 监听器的实现

    Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定事件发生时执行代码,比如在Web应用程序启动、停止时,或者在用户会话创建、销毁时。这为程序员提供了更多的控制权,使得他们能够更好地管理和监控...

    servlet监听器

    Servlet监听器是Java Web开发中的一种关键组件,主要用于监控和响应Web应用程序中的特定事件。它们是Servlet规范中定义的特殊类,能够监听ServletContext、HttpSession和ServletRequest等域对象的生命周期事件,以及...

    servlet监听器实现踢人小案例

    Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定事件发生时执行代码,比如在Web应用程序启动、停止,或者在某个Servlet被创建或销毁时。在这个“servlet监听器实现踢人小案例”中,我们将探讨如何...

    JAVA培训Servlet监听器.pdf

    JAVA Servlet监听器是指在Servlet容器中,用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后做一些必要的处理。监听器可以分为多种类型,每种类型都有其特定的应用场景和用途。 ...

    IBM Servlet监听器课件

    ### IBM Servlet监听器课件知识点概述 #### 一、Servlet监听器定义与作用 - **定义**: Servlet监听器是一种特殊类型的Java类,用于监听并响应Web应用中的特定事件或状态变化。 - **作用**: - 监听Web模块的状态...

    servlet监听器总结

    ### Servlet监听器总结 #### 一、Listener概念与作用 - **定义**:在Java Web开发中,Listener(监听器)是一种特殊的组件,主要用于监听容器内的特定事件,并根据这些事件的发生执行相应的处理逻辑。 - **功能**...

    Servlet监听器例子

    Servlet监听器是Java Web开发中的一个重要概念,它们是Servlet API的一部分,允许开发者在特定的Servlet容器事件发生时执行代码。这些事件可以是Web应用程序启动、关闭,或者与HTTP会话相关的事件,如创建、销毁或...

    servlet监听器教程(含代码)

    Servlet监听器是Java Web开发中的一个重要概念,它允许开发者在特定事件发生时执行代码,比如在Web应用程序启动或停止时,或者在某个Servlet实例被创建或销毁时。本教程将深入探讨Servlet监听器的工作原理、类型以及...

    利用servlet监听器,系统启动时创建自定义容器简单例子

    在Java Web开发中,Servlet监听器(Servlet Listeners)是一种重要的组件,它们可以在特定的事件发生时被调用,比如Web应用的初始化、用户会话的创建或销毁等。在这个例子中,我们将探讨如何利用Servlet监听器在系统...

    j2ee20:servlet04监听器(监听四大web域)(用于访问人数的统计)、mvc模式的引入

    在本文中,我们将深入探讨Java EE(J2EE)中的Servlet监听器以及它们在Web应用程序中的作用,特别是在访问人数统计和引入MVC模式方面。首先,让我们了解什么是Servlet监听器。 Servlet监听器是Java Servlet规范的一...

    java servlet 监听器

    servelt 监听器 class MyRequest extends HttpServletRequestWrapper { public MyRequest(HttpServletRequest request) { super(request); } public String MyEncoding(String value) { String value...

    servlet过滤器和监听器PPT课件.ppt

    servlet过滤器和监听器,servlet过滤器和监听器课件,servlet过滤器和监听器PPT

Global site tag (gtag.js) - Google Analytics