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整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)》全面介绍了Java Web开发中的各种相关技术及知识。全书分为9篇,内容层次清晰,难度循序渐进。第1篇为入门篇,内容包括Java Web开发概述等;第2篇...
8. **Filter与Listener**:在Java Web中,Filter用于拦截请求和响应,实现数据过滤、登录检查等功能;Listener则监听Web应用的特定事件,如session的创建、销毁等。掌握这两者的配置和实现。 9. **Web Services**:...
Java Web技术是软件开发领域中的一个重要分支,它涵盖了构建基于Web的应用程序所需的各种技术和框架。这份"Java Web从入门到精通_PPT"很可能是提供了一个系统化的学习路径,旨在帮助初学者逐步掌握这一领域的核心...
8. **Filter和Listener**:在Java Web中,过滤器(Filter)可以拦截请求和响应,监听器(Listener)可以监听特定的事件,如session的创建和销毁。 9. **Ajax**:异步JavaScript和XML,允许部分页面更新,提高用户...
5. **过滤器与监听器**:Filter和Listener是Java Web中的两大组件,过滤器用于拦截和处理请求,实现如权限控制、GZIP压缩等功能;监听器则监控Web应用中的特定事件,如session创建、销毁等。 6. **Ajax与JavaScript...
5. **ch09**: 可能涉及到Java Web中的过滤器(Filter)和监听器(Listener),这两者都是增强应用程序功能的重要工具,过滤器可以对HTTP请求和响应进行预处理或后处理,监听器可以监听Web应用中的特定事件。...
4. **MVC(Model-View-Controller)**架构模式:Spring MVC是Java Web中广泛应用的MVC框架,它简化了Web应用的开发。书中的例子可能包含控制器定义、模型绑定、视图解析、数据校验和异常处理等方面。 5. **过滤器...
随书光盘中的"javaweb_src.rar"可能包含了整个Java Web项目的源代码,这些代码通常包括Servlet、JSP、JavaBean等核心组件,以及相关的配置文件如web.xml。读者可以深入研究这些代码,了解如何将Java后端逻辑与Web...
在这个工作空间中,我们可以深入理解Java Web开发的关键技术,包括Servlet、JSP、MVC框架(如Spring MVC)、数据库连接、过滤器、监听器等。下面将对这些知识点进行详细阐述。 1. **Servlet**:Servlet是Java编程...
JavaBeans是一种符合特定规范的Java类,可以作为可重用的组件在Java Web应用中使用。 Tomcat作为Servlet和JSP容器,负责接收来自Web客户端的HTTP请求,解析请求,调用相应的Servlet或JSP页面进行处理,并将结果以...
3. 高级篇:此部分可能涉及MVC设计模式,讲解如何利用Java Web组件进行更复杂的业务逻辑处理,例如过滤器(Filter)和监听器(Listener)的使用,以及JSP自定义标签的开发。 4. Struts框架篇:Struts是经典的MVC...
5. **Filter和Listener**:在Java Web中,Filter用于拦截和处理请求,而Listener监听特定事件。这些可能在源代码中作为增强应用功能的部分。 6. **JNDI(Java Naming and Directory Interface)**:用于查找和管理...
Java Web是Java技术在Web应用开发中的应用,涵盖了从基础的HTML、CSS、JavaScript到Servlet、JSP、JavaBean、Filter、Listener等核心技术。"Java Web入门到精通的光盘源码"是一份宝贵的资源,它包含了从初学者到高级...
Java Web监听器Listener接口是一种特殊的Java接口,用于监听和响应Web应用程序中的事件。该接口定义在javax.servlet包中,提供了一种机制,使开发者能够监听和响应Web应用程序中的事件,从而实现对Web应用程序的监控...
这本书深入浅出地介绍了Tomcat的基础架构、配置、优化以及故障排查,同时涵盖了Java Web开发中的核心概念和技术。源码附件提供的是书中示例代码,对于读者理解和实践书中的示例非常有帮助。 首先,我们需要了解Java...
Filter和Listener是Java Web中两个关键的组件。Filter可以拦截HTTP请求和响应,进行预处理或后处理,例如登录验证、GZIP压缩等。Listener则监听特定的事件,比如session的创建、销毁,或者ServletContext的初始化、...
在Java Web的学习过程中,理解复杂的概念如Servlet、JSP、过滤器(Filter)、监听器(Listener)等,可以通过丰富的插图和生动的实例来辅助理解,使得原本可能枯燥的理论变得更为生动。 【标签】"轻松学 Java Web ...
6. **Listener**: 监听器是观察者模式在Java Web中的应用,可以监听特定的事件。第15章可能涵盖ServletContextListener、ServletRequestListener、HttpSessionListener等不同类型的监听器,以及它们在应用启动、请求...
7. **过滤器和监听器**:Filter和Listener是Java Web中的重要组件,Filter用于拦截和处理请求,如登录验证、字符编码转换等;Listener监听特定事件,如会话创建和销毁、请求初始化等。 8. **Tomcat服务器**:Tomcat...
1. **Servlet**: Servlet是Java中用于扩展服务器功能的接口,它是Java Web应用的核心部分。Servlet接收HTTP请求,处理数据并返回响应。学习Servlet需要理解生命周期、service方法以及如何部署和配置Servlet。 2. **...