`
满月不满
  • 浏览: 3029 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java Web中的Listener

阅读更多

Listerner:监听器,可以监听对象的创建、删除、属性绑定、属性删除、属性修改等,最常用的就是用来实现在线用户的统计

在Servlet中一共有8种监听器,可监听ServletContext、HttpSession、ServletRequest(不是HttpSerlvetRequest),按监听的域不同可分为3类:

 

1.  域对象的创建与销毁

ServletContextListener:

        contextInitialized():ServletContext容器初始化

        contextDestroyed():ServletContext容器销毁

 

HttpSessionListener:

        sessionCreated():session的创建

        sessionDestroyed():session的销毁

 

ServletRequestListener:

        requestInitialized():request的初始化

        requestDestroyed():request的销毁

 

2. 域对象中属性的创建、修改、销毁

ServletContextAttributeListener:

HttpSessionAttributeListener

ServletRequestAttributeListener

这三个监听器都有三个方法:

        attributeAdded()  添加属性

        attributeRemoved()  移出属性

        attributeReplaced()  替换属性

 

3. 感知型监听器:监听对象合时绑定到session,合时从session移除,合时序列化以及合时被存储到硬盘上

HttpSessionBindngListener:

valueBound():对象被绑定到Session

valueUnbound():对象被移出Session

 

HttpSessionActivationListener:

sessionDidActivate()对象激活

sessionWillPassivate()对象钝化

 

1、2两类监听器在创建时必须实现对应的接口,然后再web.xml中进行注册

实例:

/**
 * 实现了对SerlvetRequest生命周期和绑定在上面的属性的监听,也可以单独实现一个接口
 */
public class RequestHelpListener implements ServletRequestListener,ServletRequestAttributeListener {

	/**
	 * 销毁请求
	 */
	@Override
	public void requestDestroyed(ServletRequestEvent sre) {
		StringUtils.println("销毁ServletRequest");
	}

	/**
	 * 初始化请求	
	 */
	@Override
	public void requestInitialized(ServletRequestEvent sre) {
		StringUtils.println("创建ServletRequest");
	}

	/**
	 * 添加属性
	 */
	@Override
	public void attributeAdded(ServletRequestAttributeEvent srae) {
		StringUtils.println("向ServletContext添加属性");
	}
	/**
	 * 移除属性
	 */
	@Override
	public void attributeRemoved(ServletRequestAttributeEvent srae) {
		StringUtils.println("向ServletRequest移除属性");
	}
	/**
	 * 替换属性
	 */
	@Override
	public void attributeReplaced(ServletRequestAttributeEvent srae) {
		StringUtils.println("向ServletRequest替换属性");
	}

}

 

注册:

<listener>
	<description>监听ServeltRequest的创建、销毁,属性绑定、移出和修改</description>
	<display-name>ServeltRequest监听器</display-name>
	<listener-class>framework.web.listener.RequestHelpListener</listener-class>
</listener>

 

3类监听比较特别,如果需要监听某个对象合适被绑定在session上,只需要使该对象实现HttpSessionBindingListener即可,不需要在web.xml中注册

public class UserVO implements Serializable, HttpSessionBindingListener, HttpSessionActivationListener {

	/**
	 * 对象被绑定到Session
	 */
	@Override
	public void valueBound(HttpSessionBindingEvent event) {
		StringUtils.println("绑定UserVO");
	}

	/**
	 * 对象被移出Session
	 */
	@Override
	public void valueUnbound(HttpSessionBindingEvent event) {
		StringUtils.println("移除UserVO");
	}

	/**
	 * 对象激活
	 */
	@Override
	public void sessionDidActivate(HttpSessionEvent se) {
		StringUtils.println("激活UserVO");
	}

	/**
	 * 对象钝化
	 */
	@Override
	public void sessionWillPassivate(HttpSessionEvent se) {
		StringUtils.println("钝化UserVO");
	}

}

 (HttpSessionActivationListener我并不太懂,查了一下,应该是在分布式系统中使用的,当把某个session从一个jvm中移动到另一个jvm中时,需要先钝化保存这个session,再序列化到jvm中)

 

分享到:
评论

相关推荐

    Java Web整合开发王者归来:Java Web.part3

    《Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)》全面介绍了Java Web开发中的各种相关技术及知识。全书分为9篇,内容层次清晰,难度循序渐进。第1篇为入门篇,内容包括Java Web开发概述等;第2篇...

    Java Web 整合开发 完全自学手册 源代码

    8. **Filter与Listener**:在Java Web中,Filter用于拦截请求和响应,实现数据过滤、登录检查等功能;Listener则监听Web应用的特定事件,如session的创建、销毁等。掌握这两者的配置和实现。 9. **Web Services**:...

    Java Web从入门到精通_PPT

    Java Web技术是软件开发领域中的一个重要分支,它涵盖了构建基于Web的应用程序所需的各种技术和框架。这份"Java Web从入门到精通_PPT"很可能是提供了一个系统化的学习路径,旨在帮助初学者逐步掌握这一领域的核心...

    java Web课件完整版

    8. **Filter和Listener**:在Java Web中,过滤器(Filter)可以拦截请求和响应,监听器(Listener)可以监听特定的事件,如session的创建和销毁。 9. **Ajax**:异步JavaScript和XML,允许部分页面更新,提高用户...

    MLDN Java Web 开发实战经典源码李兴华源代码

    5. **过滤器与监听器**:Filter和Listener是Java Web中的两大组件,过滤器用于拦截和处理请求,实现如权限控制、GZIP压缩等功能;监听器则监控Web应用中的特定事件,如session创建、销毁等。 6. **Ajax与JavaScript...

    孙卫琴Java Web全套源码

    5. **ch09**: 可能涉及到Java Web中的过滤器(Filter)和监听器(Listener),这两者都是增强应用程序功能的重要工具,过滤器可以对HTTP请求和响应进行预处理或后处理,监听器可以监听Web应用中的特定事件。...

    《Java Web开发速学宝典》各章节例子源码

    4. **MVC(Model-View-Controller)**架构模式:Spring MVC是Java Web中广泛应用的MVC框架,它简化了Web应用的开发。书中的例子可能包含控制器定义、模型绑定、视图解析、数据校验和异常处理等方面。 5. **过滤器...

    《Java Web开发速学宝典》李宁

    随书光盘中的"javaweb_src.rar"可能包含了整个Java Web项目的源代码,这些代码通常包括Servlet、JSP、JavaBean等核心组件,以及相关的配置文件如web.xml。读者可以深入研究这些代码,了解如何将Java后端逻辑与Web...

    java web workspace 02

    在这个工作空间中,我们可以深入理解Java Web开发的关键技术,包括Servlet、JSP、MVC框架(如Spring MVC)、数据库连接、过滤器、监听器等。下面将对这些知识点进行详细阐述。 1. **Servlet**:Servlet是Java编程...

    tomcat和java web源码

    JavaBeans是一种符合特定规范的Java类,可以作为可重用的组件在Java Web应用中使用。 Tomcat作为Servlet和JSP容器,负责接收来自Web客户端的HTTP请求,解析请求,调用相应的Servlet或JSP页面进行处理,并将结果以...

    Java Web整合开发王者归来

    3. 高级篇:此部分可能涉及MVC设计模式,讲解如何利用Java Web组件进行更复杂的业务逻辑处理,例如过滤器(Filter)和监听器(Listener)的使用,以及JSP自定义标签的开发。 4. Struts框架篇:Struts是经典的MVC...

    java web1200 第一卷源代码

    5. **Filter和Listener**:在Java Web中,Filter用于拦截和处理请求,而Listener监听特定事件。这些可能在源代码中作为增强应用功能的部分。 6. **JNDI(Java Naming and Directory Interface)**:用于查找和管理...

    java web入门到精通的光盘源码

    Java Web是Java技术在Web应用开发中的应用,涵盖了从基础的HTML、CSS、JavaScript到Servlet、JSP、JavaBean、Filter、Listener等核心技术。"Java Web入门到精通的光盘源码"是一份宝贵的资源,它包含了从初学者到高级...

    Java Web监听器Listener接口原理及用法实例

    Java Web监听器Listener接口是一种特殊的Java接口,用于监听和响应Web应用程序中的事件。该接口定义在javax.servlet包中,提供了一种机制,使开发者能够监听和响应Web应用程序中的事件,从而实现对Web应用程序的监控...

    《Tomcat与Java Web开发技术详解(第2版)》_(孙卫琴)_源码.zip

    这本书深入浅出地介绍了Tomcat的基础架构、配置、优化以及故障排查,同时涵盖了Java Web开发中的核心概念和技术。源码附件提供的是书中示例代码,对于读者理解和实践书中的示例非常有帮助。 首先,我们需要了解Java...

    跟我学Java Web代码

    Filter和Listener是Java Web中两个关键的组件。Filter可以拦截HTTP请求和响应,进行预处理或后处理,例如登录验证、GZIP压缩等。Listener则监听特定的事件,比如session的创建、销毁,或者ServletContext的初始化、...

    轻松学Java Web 开发

    在Java Web的学习过程中,理解复杂的概念如Servlet、JSP、过滤器(Filter)、监听器(Listener)等,可以通过丰富的插图和生动的实例来辅助理解,使得原本可能枯燥的理论变得更为生动。 【标签】"轻松学 Java Web ...

    Java Web程序设计教程源码10-15章

    6. **Listener**: 监听器是观察者模式在Java Web中的应用,可以监听特定的事件。第15章可能涵盖ServletContextListener、ServletRequestListener、HttpSessionListener等不同类型的监听器,以及它们在应用启动、请求...

    亮剑Java web源代码+ppt教程01——11

    7. **过滤器和监听器**:Filter和Listener是Java Web中的重要组件,Filter用于拦截和处理请求,如登录验证、字符编码转换等;Listener监听特定事件,如会话创建和销毁、请求初始化等。 8. **Tomcat服务器**:Tomcat...

    Java Web开发实践教程 课件

    1. **Servlet**: Servlet是Java中用于扩展服务器功能的接口,它是Java Web应用的核心部分。Servlet接收HTTP请求,处理数据并返回响应。学习Servlet需要理解生命周期、service方法以及如何部署和配置Servlet。 2. **...

Global site tag (gtag.js) - Google Analytics