`
ldzyz007
  • 浏览: 720049 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Servlet事件监听器

    博客分类:
  • web
阅读更多
概述:
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事件监听器和JSP基础

    Servlet事件监听器和JSP是Java Web开发中的重要组成部分,它们在构建动态网站时起着核心作用。Servlet事件监听器允许开发者对特定的Servlet容器事件做出反应,而JSP则是用于创建动态网页的简便方式。这里我们将深入...

    我收集的servlet中事件监听器机制we吧xml配置详解

    在Servlet中,事件监听器机制和`web.xml`配置是两个关键的概念,它们极大地增强了应用的灵活性和可扩展性。 事件监听器机制在Servlet中扮演着重要角色,它允许程序员对特定的事件进行响应,例如请求到达、会话创建...

    servlet监听器案例

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

    servlet 监听器范例

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

    servlet监听器技术源码

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

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

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

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

    Servlet监听器是Java Servlet规范的一部分,允许开发人员在特定事件发生时执行代码。这些事件包括会话创建、销毁、请求开始、结束等。通过实现特定的接口,我们可以创建自定义监听器,以在Web应用的不同阶段介入并...

    servlet事件监听

    1. **Servlet监听器接口**: - `javax.servlet.ServletContextListener`: 监听Servlet上下文的生命周期事件,例如应用启动和关闭。 - `javax.servlet.ServletContextAttributeListener`: 监听ServletContext中的...

    Servlet的监听器小DEMO

    Servlet监听器是Java Web开发中的一个重要组件,它允许开发者在特定事件发生时执行代码,比如在Web应用程序启动或停止时,或者当用户会话开始或结束时。在本DEMO中,我们将深入探讨如何创建和使用Servlet监听器,...

    Servlet中监听器介绍.doc

    Servlet中的监听器是Java EE中...总之,Servlet监听器是Java EE开发中的强大工具,它们可以帮助开发者实现更精细的控制和管理,提高应用的灵活性和可维护性。理解并熟练运用监听器,能够使你的Web应用更加健壮和高效。

    第13章使用Servlet过滤器和监听器

    第13章使用Servlet过滤器和监听器,基础知识

    Servlet、监听器、过滤器、MVC模式介绍.docx

    监听器通过实现特定的监听接口,如`javax.servlet.ServletContextListener`(监听应用上下文事件)、`javax.servlet.http.HttpSessionListener`(监听会话事件)等,可以用来实现如统计在线用户数量、监控系统状态等...

    Servlet技术(事件监听器-在线踢人).zip

    在这个名为“Servlet技术(事件监听器-在线踢人)”的压缩包中,我们可以看到一个关于如何使用Servlet实现在线用户管理,特别是“在线踢人”功能的示例。这里的“在线踢人”通常指的是在Web应用中强制下线特定用户。...

    servlet监听器

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

    servlet监听器总结

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

    jsp/servlet中过滤器和监听器的区别

    - **工作原理**:监听器通过实现Servlet规范中的各种监听器接口,如`ServletContextListener`、`HttpSessionListener`、`ServletRequestListener`等,当触发相应事件时,容器会调用相应的监听器方法。 - **应用...

    servlet 监听器的实现

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

    servlet监听器实现踢人小案例

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

    JAVA Servlet监听器listener学习资料

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

    JAVA培训Servlet监听器.pdf

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

Global site tag (gtag.js) - Google Analytics