Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。(通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时,就激发 sessionCreated(HttpSessionEvent se)方法,这样就可以给在线人数加1。)
Servlet 监听器用于监听一些重要事件的发生,监听器对象在事情发生前、发生后可以做一些必要的处理。
目前 Servlet2.4 和 JSP2.0 常用的有7 个监听器接口,分为3 类:
1.
Servlet上下文进行监听(Application级):
用于监听 ServletContext 对象的创建和删除以及属性的添加、删除和修改等操作,该监听器需要用到如下两个接口类:
(1) ServletContextAttributeListener:监听对 ServletContext 属性的操作,比如增加、删除、修改
attributeAdded(ServletContextAttributeEvent e) 添加属性时调用
attributeReplaced(ServletContextAttributeEvent e) 修改属性时调用
attributeRemoved(ServletContextAttributeEvent e) 删除属性时调用
(2) ServletContextListener:监听对 ServletContext 对象的创建和删除
contextInitialized(ServletContextEvent sce) 初始化时调用
contextDestroyed(ServletContextEvent sce) 销毁时调用,即当服务器重新加载时调用
2.
监听HTTP会话(Session级):
用于监听 HTTP 会话活动情况和 HTTP 会话中的属性设置情况,也可以监听 HTTP 会话的 active 和 passivate 情况等,该监听器需要用到如下多个接口类:
(1) HttpSessionListener:监听 HttpSession 的操作
sessionCreate(HttpSessionEvent se) 初始化时调用;
sessionDestroyed(httpSessionEvent se) 销毁时调用,即当用户注销时调用
package com.wl.listener.test;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class HttpSessionListenerTest implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println("SSSSSSSSSSSSSSSSSS");
}
public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println("EEEEEEEEEEEEEEEEEEE");
}
}
在Web.xml的配置如下:
<listener>
<listener-class>com.wl.listener.test.HttpSessionListenerTest</listener-class>
</listener>
(2) HttpSessionActivationListener:用于监听 HTTP 会话的 active 和 passivate 情况
(3) HttpSessionAttributeListener:监听 HttpSession 中的属性操作
attributeAdded(HttpSessionBindingEvent se) 添加属性时调用
attributeRemoved(HttpSessionBindingEvent se) 删除属性时调用
attributeReplaced(HttpSessionBindingEvent se) 修改属性时调用
3.
对客户端请求进行监听(Requst级):
用于对客户端的请求进行监听是在 Servlet2.4 规范中新添加的一项新技术,使用的接口如下:
(1) ServletRequestListener 接口类
requestDestroyed(ServletRequestEvent e) 对销毁客户端进行监听,即当执行 request.removeAttribute("xxx") 时调用
requestInitialized(ServletRequestEvent e) 对实现客户端的请求进行监听
package com.wl.listener.test;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
public class ServletRequestListenerTest implements ServletRequestListener {
public void requestDestroyed(ServletRequestEvent arg0) {
System.out.println("ServletRequestListenerTest is destroyed .......");
}
public void requestInitialized(ServletRequestEvent arg0) {
System.out.println("ServletRequestListenerTest is start .......");
}
}
在Web.xml中添加如下配置:
<listener>
<listener-class>com.wl.listener.test.ServletRequestListenerTest</listener-class>
</listener>
(2) ServletRequestAttributeListener 接口类
attributeAdded(ServletRequestAttributeEvent e) 对属性添加进行监听
attributeRemoved(ServletRequestAttributeEvent e) 对属性删除进行监听
attributeReplaced(ServletRequestAttributeEvent e) 对属性替换进行监听
参考资料:
http://blog.csdn.net/yxl2005play/archive/2010/01/10/5170077.aspx
http://blog.csdn.net/opnmzxcvb/archive/2009/09/15/4554329.aspx
分享到:
相关推荐
### Java监听器和过滤器详解 #### 监听器概念及分类 监听器在Java Web开发中扮演着非常重要的角色,主要用于监听特定容器事件的发生,比如服务器对象的创建与销毁等,并根据这些事件做出相应的处理。它的工作原理...
Java的监听器在Web开发中扮演着重要的角色,它们允许开发者在特定事件发生时执行相应的操作,而无需直接编写事件触发的代码。这些监听器主要用于Servlet容器,如Tomcat,它们是Java Servlet API的一部分,能够监控和...
教程名称: 【动力节点】Javaweb开发视频教程之监听器 动力节点推出的Java视频教程包含两大部分内容:第一部分为监听器相关设计模式的详解。其中包括观察者设计模式、监听器设计模式。第二部分为监听器用法。详细...
监听器模式是Java AWT和Swing图形用户界面(GUI)库中的核心概念,它遵循了设计模式中的观察者模式,使得组件能够动态响应用户的交互行为。 首先,我们来了解一下Java的事件处理模型。在Java GUI中,事件源(Event ...
JavaEE监听器是Java企业版(Java Enterprise Edition)中的一项重要特性,主要用于增强应用程序服务器的事件处理能力。在JavaEE环境中,监听器是实现特定功能的特殊类,它们可以监听和响应应用程序中的特定事件,...
Java监听器是在Java Web开发中经常会用到的一种技术组件,它能够在特定的Java对象(比如Servlet上下文、会话、请求)创建、销毁或者属性被添加、删除或替换时自动执行指定的代码。使用监听器可以方便地实现某些功能...
分类:监听器可以分为三类: 1. 监听域对象的创建、销毁(第一类监听器) 2. 监听域对象中的属性变更(第二类监听器) 3. 监听域对象中的java对象的绑定(第三类监听器) Servlet监听器:监听器可以监听三个大域...
- **定义**:在Java Web开发中,Listener(监听器)是一种特殊的组件,主要用于监听容器内的特定事件,并根据这些事件的发生执行相应的处理逻辑。 - **功能**:监听器能够监测到特定事件的发生,例如用户的登录与...
本系统使用了 Java 语言的基础知识和一些核心类库,设计了一个图形用户界面,并实现了一个列表选择监听器和识别按钮。该系统是一个人工智能领域中的经典问题,涉及到动物识别和分类等方面的知识。
Java Servlet监听器是Java Servlet API中的一个重要组成部分,它们允许开发者在Web应用的生命周期内的某些关键点添加自定义行为。具体来说,监听器可以监控Web应用中的三个主要对象:ServletContext(代表整个Web...
2. Servlet监听器的分类: - 监听域对象创建和销毁的事件监听器:例如ServletContextListener、HttpSessionListener和ServletRequestListener,分别对应ServletContext、HttpSession和ServletRequest的创建和销毁。 ...
1. **编写**:使用文本编辑器编写源代码。 2. **编译**:使用`javac`命令将源代码编译成字节码(.class文件)。 3. **加载与执行**:通过Java虚拟机(JVM)加载字节码并解释执行。 #### 1.3 Java目录结构 Java开发环境...
"Java期末考试简答题" Java 中的 final、finally、finalize 的...这些知识点涵盖了 Java 中的基本概念,包括变量、方法、异常、线程同步、事件监听器、构造方法、接口和变量的分类等,都是 Java 开发必备的知识点。
- **监听器(Listener)**:了解监听器的作用及其实现方式。 #### 2. Java EE框架 - **Spring框架**:深入了解Spring框架的核心功能——依赖注入(DI)和面向切面编程(AOP)。 - **MyBatis框架**:学习MyBatis框架的基本...
12. **事件监听器**: 在Java GUI中,通过继承监听类或实现监听接口,并重写相应的方法来处理用户交互事件。 13. **JDBC**: JDBC是Java数据库连接接口,用于在Java程序中访问数据库的标准API。 14. **填空题...
3. **定义SIP监听器**:实现`SipListener`接口,处理接收到的SIP消息,如请求、响应和事件。 4. **创建SIP会话**:使用`SipProvider`发送请求(如INVITE)来建立会话,同时处理响应以完成会话设置。 5. **管理媒体...
4. **事件驱动编程**:游戏通常涉及到用户输入,因此开发者需要理解和实现事件监听器,处理用户的点击或键盘输入,更新游戏状态。 5. **图形用户界面(GUI)**:为了使游戏可视,开发者可能使用Java的Swing或JavaFX...
4. **事件处理**:Java中的事件监听器机制用于处理用户的点击、键盘输入等交互事件。例如,玩家点击屏幕发射子弹,需要监听鼠标点击事件,并执行相应的动作。 5. **动画与帧率控制**:游戏中的动态效果,如鱼的游动...