Listener开发
本章将详细介绍Listener的定义和作用,还将介绍如何配置Listener。将介绍Listener的分类以及常用的Listener,如ServletContext Listener和HttpSession Listener。
通过本章的学习,读者应该能够完成如下几个目标。
熟练掌握如何定义并配置Listener
熟练掌握ServletContextListener接口的实现和作用
熟练掌握ServletContextAttributeListener接口的实现和作用
熟练掌握HttpSessionListener接口的实现和作用
熟练掌握HttpSessionAttributeListener接口的实现和作用
1 Listener简介
Listener的中文译名为监听器,从字面上可以看出Listener主要用来监听之用。通过Listener可以监听容器中某一执行动作,并根据其要求做出相应的响应。
到目前Servlet 2.4开始,一共包含八个Listener接口,可以将其分为三类,分别如下。
第一类:与ServletContext有关的Listener接口。
包括两个Listener接口,分别是ServletContextListener和ServletContextAttributeListener。
第二类:与HttpSession有关的Listener接口。
包括四个Listener接口,分别是HttpSessionListener、HttpSessionAttributeListener、HttpSessionBindingListener和HttpSessionActivationListener。
第三类:与ServletRequest有关的Listener接口。
包括两个Listener接口,分别是ServletRequestListener和ServletRequestAttributeListener。
2 ServletContext Listener
ServletContext Listener包含两个Listener接口,分别是ServletContextListener和ServletContextAttributeListener。其中ServletContextListener接口用来实现ServletContext的启动和销毁监听;ServletContextAttributeListener接口用来实现application范围属性变化的监听。
2.1 ServletContextListener接口
ServletContextListener接口用来实现ServletContext的启动和销毁监听。该接口中包含两个方法,一个是contextInitialized()方法,用来监听ServletContext的启动和初始化;一个是contextDestroyed()方法,用来监听ServletContext的销毁。在这两个方法中还包含一个参数sce,其类型为ServletContextEvent。通过ServletContextEvent对象的 getServletContext()方法可以获得ServletContext对象。
2.2 ServletContextAttributeListener接口
ServletContextAttributeListener接口用来实现application范围属性变化的监听。该接口中包含三个方法,一个是attributeAdded()方法,用来监听application范围属性的添加;一个是attributeReplaced()方法,用来监听application范围属性的替换;一个是attributeRemoved()方法,用来监听application范围属性的移除。在这两个方法中还包含一个参数scab,其类型为ServletContextAttributeEvent。通过ServletContextAttributeEvent对象的getName()方法可以获得属性的名称;通过ServletContextAttributeEvent对象的getValue()方法可以获得属性的值。
3 HttpSession Listener
HttpSession Listener包含四个Listener接口,分别是HttpSessionListener、HttpSessionAttributeListener、HttpSessionBindingListener和HttpSessionActivationListener。其中HttpSessionListener接口用来实现sesion的初始化和销毁监听;HttpSessionAttributeListener接口用来实现session范围属性变化的监听。
3.1 HttpSessionListener接口
HttpSessionListener接口用来实现session的初始化和销毁监听。该接口中包含两个方法,一个是sessionCreated()方法,用来监听session的创建和初始化;一个是sessionDestroyed()方法,用来监听session的销毁。在这两个方法中还包含一个参数se,其类型为HttpSessionEvent。通过HttpSessionEvent对象的getSession()方法可以获得session对象。
3.2 HttpSessionAttributeListener接口
HttpSessionAttributeListener接口用来实现session范围属性变化的监听。该接口中包含三个方法,一个是attributeAdded ()方法,用来监听session范围属性的添加;一个是attributeReplaced()方法,用来监听session范围属性的替换;一个是attributeRemoved()方法,用来监听session范围属性的移除。在这三个方法中还包含一个参数se,其类型为HttpSessionBindingEvent。通过HttpSessionBindingEvent对象的getName()方法可以获得属性的名称;通过ServletContextAttributeEvent对象的getValue()方法可以获得属性的值。
类似 web.xml 配置
1 日志监听
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jExposeWebAppRoot</param-name>
<param-value>false</param-value>
</context-param>
2 上下文监听
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:biz-context.xml
classpath:biz-context-ems.xml
classpath:security.xml
classpath:web-context-ems.xml
</param-value>
</context-param>
分享到:
相关推荐
Listener监听器 JavaBean Servlet Jsp XML HTML JAVA WEB开发技术 Listener监听器 事件监听器用于对程序中发生的事件进行监听,在监听的过程中会涉及几个重要组成部分: 事件(Event) 事件源 事件处理器 事件监听器...
ProductivityToolkit-Unity事件监听器系统插件 Unity事件监听器系统 直观且快速地设置自定义事件,用于减少对象依赖的常见方法!几乎没有额外的代码来结构化游戏逻辑,可以通过拖放在检查器中处理事件订阅,可以在...
这种机制基于观察者模式,由事件(ApplicationEvent)、事件监听器(ApplicationListener)和事件广播器(ApplicationEventMulticaster)三个主要组成部分构成。 事件是发生的动作或事情,其核心是ApplicationEvent...
JAVA EE 开发手册 JavaEE是一个开放的、 基于标准的平台,用以开发、部署和管理N层结构、面向Web的,以服务器为中心的企业级应用。 JavaEE的具有可扩展性、性能和可靠性。...8、监听器Listener 9、注解( Annotation)
(实现此目的的主要函数称为 add_exec_event_listener。) 该模型既可以作为标准模拟执行,也可以在构建到通用实时目标中后执行(对于那些拥有 RTW 许可证的用户)。 在后一种情况下,RTW 的外部模式和 TCP/IP ...
第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、数据库概述、JDBC详解、XML概述等;第4篇为...
第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、数据库概述、JDBC详解、XML概述等;第4篇为...
第2篇为基础篇,内容包括servlet技术、jsp技术、会话跟踪、过滤器filter、监听器listener等;第3篇为高级篇,内容包括jstl标签库的使用、如何自定义标签、资源国际化、数据库概述、jdbc详解、xml概述等;第4篇为...
1、Filter的理解和应用 实现一个禁止缓存的过滤器。 要求和提示: (1)禁止浏览器缓存所有动态页面;...通过监听器记录在线用户的姓名,在页面进行用户姓名的显示,同时实现对某个用户的强制下线功能。
HerosPHP是一个免费开源的,快速、优雅的面向对象的 轻量级PHP MVC开发框架。...4、重要: 给监听器(Listener)新增了skinUrl()接口,用来过滤不需要监听的请求 URI 相关阅读 同类推荐:站长常用源码
javaweb ...知识点 Javascript知识点 jQuery知识点 14 Bootstrap知识点 17 JDBC & 配置文件 & 连接池 19 Xml文档及解析 31 反射 33 ...JavaWeb核心之Servlet 41 ...监听器Listener 74 邮箱服务器 79 过滤器Filter
开发者可以自定义事件类和事件监听器,并通过应用程序上下文的publishEvent方法来发布事件,Spring框架会自动分发事件给所有对该事件感兴趣的监听器进行处理。事件监听机制帮助开发者更好地解耦代码,提高应用程序的...
主要内容包括:Servlet、JSP、EL表达式、JSTL标签库、Filter过滤器、Listener监听器。在讲解过程中采用的手法是从0到1,让小白学会源码分析,让大牛眼前一亮。总之,不管你是小白,还是已经在从事Java开发的工作者,...
第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、数据库概述、JDBC详解、XML概述等;第4篇为...
第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、数据库概述、JDBC详解、XML概述等;第4篇为...
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 ...
第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、数据库概述、JDBC详解、XML概述等;第4篇为...
第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、数据库概述、JDBC详解、XML概述等;第4篇为...
第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、数据库概述、JDBC详解、XML概述等;第4篇为...
第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter、监听器Listener等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、数据库概述、JDBC详解、XML概述等;第4篇为...