`

Java的监听器种类

阅读更多
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的监听器种类.pdf

    Java的监听器种类.pdf

    【动力节点】Javaweb开发视频教程之监听器

    教程名称: 【动力节点】Javaweb开发视频教程之监听器 动力节点推出的Java视频教程包含两大部分内容:第一部分为监听器相关设计模式的详解。其中包括观察者设计模式、监听器设计模式。第二部分为监听器用法。详细...

    疯狂JAVA讲义

    11.5.4 事件监听器的实现形式 411 11.6 AWT的菜单 413 11.6.1 菜单条、菜单和菜单项 414 11.6.2 右键菜单 416 学生提问:为什么即使我没有给多行文本域编写右键菜单,但当我在多行文本域上单击右键时一样会弹出...

    JAVA基础课程讲义

    目 录 第一章 JAVA入门 10 计算机语言发展史 10 机器语言 10 汇编语言 10 高级语言 10 其他高级语言 11 ...事件监听器常见的定义形式 233 AWT其他组件 233 菜单的实现 233 特点 233 代码示例和效果 233

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    2.2.7 Eclipse中的源代码编辑器 26 2.2.8 Eclipse的设置窗口 26 2.2.9 Eclipse中的其他视图 27 2.3 如何使用Eclipse 28 2.3.1 在Eclipse中创建自己的第一个项目 28 2.3.2 在Eclipse中编写HelloWorld程序 29 ...

    Java图形用户界面

    因此,对于AWT中所提供的各个组件,我们都需要了解该组件经常发生的事件以及处理该事件的相应的监听器接口。 对于AWT而言,Java 1.1到Java 1.2最大的改变就是Java中所有的库。当Java 1.1版纳入新的事件模型和Java ...

    java初学者必看

    13.5.1 事件监听器 13.5.2 事件适配器 13.5.3 事件 13.6 举例 13.6.1 界面设计 13.6.2 运算设计步骤 13.7 本章习题 第14章 Java I/O系统 14.1 I/O概述 14.2 文件操作 14.2.1 File类 14.2.2 File类应用 ...

    ITAT技能大赛预选JAVA试题.pdf

    事件监听接口中的方法的返回值是 void,这是因为事件监听器的主要职责是响应事件,而不是返回任何值。 二、Java 表达式的计算 Java 表达式的计算遵循运算符优先级的规则,需要根据运算符的优先级来计算表达式的值...

    Java中的Listener监听器

     · Listener的分类与使用  ServletContext监听  Session监听  Request监听  · Listener的应用实例  利用HttpSessionListener统计多在线用户人数  Spring使用ContextLoaderListener加载...

    Java语言基础下载

    Servlet监听器 576 内容总结 579 独立实践 580 第二十九章: Jsp 技术 583 学习目标 583 JSP介绍 584 JSP语法 584 模板元素 588 指令元素 588 页面指令 588 标签库指令 593 脚本元素 593 动作元素 597 &lt;jsp:include&gt;...

    java基础案例与开发详解案例源码全

    14.2.1 事件监听器366 14.2.2 事件适配器(EventAdapter)370 14.3 AWT常用组件372 14.3.1 界面组件372 14.3.2 菜单组件377 14.3.3 其他组件382 14.4 Swing简介383 14.4.1 Swing体系图383 14.4.2 Swing组件应用384 ...

    经典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 ...

    学通Java的24堂课

    2.6.3 实现控件的事件监听器 43 2.6.4 运行gui程序 43 2.7 如何进行程序调试 43 2.7.1 设置断点 44 2.7.2 以调试方式运行java程序 44 2.7.3 程序调试 44 2.8 了解项目类库 45 2.9 照猫画虎——基本功训练 46 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    2.2.7 Eclipse中的源代码编辑器 26 2.2.8 Eclipse的设置窗口 26 2.2.9 Eclipse中的其他视图 27 2.3 如何使用Eclipse 28 2.3.1 在Eclipse中创建自己的第一个项目 28 2.3.2 在Eclipse中编写HelloWorld程序 29 ...

    Java编写的简单图书管理系统.doc

    需要具备事件处理的基础知识,包括ActionListener、MouseListener、KeyListener等监听器的使用。 4. 数据库交互知识点 该系统使用Java的JDBC(Java Database Connectivity)API来与数据库交互,实现图书信息的存储...

    21天学通Java-由浅入深

    277 14.5.2 创建按钮 277 14.5.3 按钮动作事件 278 14.6 Swing中的事件 280 14.6.1 事件简介 280 14.6.2 同一个事件源注册多个监听器 280 14.6.3 同一个监听器注册给多个事件源 282 14.6.4 窗体获取和失去焦点事件 ...

Global site tag (gtag.js) - Google Analytics