JSP笔记——9.Listener介绍

Listener可以用来监听不同的web事件。使用Listener,首先要有Listener实现类,然后要在web.xml中配置Listener(或者通过注解)。常用的Web事件监听器接口如下:

  • ServletContextListener:监听web应用的启动和关闭
  • ServletContextListener:监听ServletContext范围(application)内容属性的改变
  • ServletRequestListener:监听用户请求
  • ServletRequestAttributeListener:监听ServletRequest范围内的属性变化
  • HttpSessionListener:用于监听session的开始和结束
  • HttpsessionAttributeListener:监听session内属性的改变

ServletContextListener接口中的方法,contestInitialized()跟contextDestroyed()方法分别在应用启动、关闭的时候被触发。


配置Listener

配置Listener十分简单,只需要简单滴指定Listener实现类就行,不能配置初始化参数。只需在xml中用listener子元素的listener-class配置listener的实现类即可。如果配置了一个实现了ServletContextListener的监听类,那么当web应用被启动的时候,该listener的contextInitialized方法会被触发。


使用ServletContextAttributeListener

这个接口可以用于监听application范围内的属性的变化。实现该接口需要实现如下三个方法:

attributeAdded(ServletContextAttributeEvent event):存入属性触发

attributeRemoved(ServletContentAttributeEvent event):删除属性触发

attributeReplaced(ServletContentAttributeEvent event):替换属性触发


使用ServletRequestListener和ServletRequestAttributeListener

ServletRequestListener用于监听用户请求到达。实现该接口需要requestinitialized(servletRequestEvent sre)和requestDestroyed(ServletRequestEvent sre)这两个接口。第一个会在用户请求到达、被初始化时触发,第二个会在用户请求结束、被销毁的时候触发。

ServletRequestAttributeListener用于监听request范围内的变化,需要实现attributeAdded()、attributeRemoved()、attributeReplaced()三个方法

一个监听类如果实现了多个接口,就能即监听application范围变化,又能监听request范围变化。

HttpSessionListener和HttpSessionAttributeListener

HttpSessionListener用于监听session的创建跟销毁,需要实现sessionCreated(HttpSessionEvent se):方法和sessionDestroyed(HttpSessionEvent se)。

类似地,HttpSessionAttributeListener则用于监听HttpSesson范围的变化,需要实现attributeAdded、attributeRemoved、attributeReplaced三个方法。实现HttpSessonListener接口的监听器可以监听每个用户回话的开始和断开,因此可以利用该接口来监听系统用户的在线用户。此外通过分析request可以更详细地得到用户在线的各种信息

时间: 2024-11-03 21:20:18

JSP笔记——9.Listener介绍的相关文章

JSP笔记——8.Filter介绍

跟它的名字一样,filter能够拦截特定的用户请求或者相应,并对这些东西进行处理.虽然很少用,不过也可以对request进行response.filter可以拦截多个请求相应,一个请求响应也可以被多个filter拦截.使用filter只需要创建filter处理类,然后在xml中配置filter. 创建filter类 必须实现Filter接口,里面要有三个方法:init用于初始化filter:destroy用于销毁filter前完成某些资源的回收:doFilter实现过滤功能.因为filter是处

Servlet的Listener介绍

当Web应用在Web容器中运行时,Web应用内部会不断地发生各种事件:如Web应用被启动.Web应用被停止.用户session开始.用户session结束等.通常这些Web操作对开发者是透明的.但Servlet API也提供了相应的接口提供调用. 当我们要使用Listener时,只需要两个步骤: ① 定义Listener实现类(实现对应的接口) ② 通过Annotation或在web.xml文件中配置Listener 1.实现Listener类 不同的Web事件对应的监听器也不同,常用的Web事

PHP教程:PHPUnit学习笔记(一)PHPUnit介绍及安装

PHP教程:PHPUnit学习笔记(一)PHPUnit介绍及安装 作者:罪惡 发布于:2011-4-9 19:15 Saturday PHP教程 最近学习并在项目中运用了PHPUnit做自动化测试,我将在博客上基于我的PHPUnit学习笔记进行连载,详细的介绍这个自动化测试框架. 笔记内容基本上基于PHPUnit的官方文档和例子,里面加上我自己理解的翻译和配合描述代码.本笔记使用的PHPUnit版本为3.5.13, 测试平台为ubuntu10.10 PHP5.3.3 什么是PHPUnit? PH

C++MFC编程笔记day01 MFC介绍、创建MFC程序和重写消息处理

一.MFC概念和作用 1.全称Microsoft Foundation Class Library,我们称为微软基础类库,封闭了绝大部分的win32 Api函数,C++语法中的数据结构,程序的执行流程 MFC就是一个库(动态库,静态库) MFC还是一个程序框架 2.为什么使用MFC 基于框架编程,提高工作效率,减少开发周期,节约开发成本. 二.几个重要的头文件 afx.h    -绝大部分类的声明头文件 afxwin.h -包含了afx.h和windows.h afxext.h -提供了扩展窗口

Apache Shiro学习笔记(七)Shiro Listener介绍

鲁春利的工作笔记,好记性不如烂笔头 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xmlns="http://java.sun.com/xml/ns/javaee"      xsi:schemaLocation="h

Apache Shiro学习笔记(七)Servlet3.0 Listener介绍

鲁春利的工作笔记,好记性不如烂笔头 本文出自 "闷葫芦的世界" 博客,请务必保留此出处http://luchunli.blog.51cto.com/2368057/1833578

JSP之监听器Listener(一)————————ServletContextListener

摘要:        当web应用在web容器中运行时,web应用内部会不断地发生各种事件:如web应用被启动东,web应用被停止,用户session开始,用户session结束,用户请求到达等等……,这些web事情对开发者是透明的,通过监听器我们可以知道web容器里面发生的任何事情. ServletContextListener 常用的监听器有 ServletContextListener:用来监听web应用的启动和关闭 contextInitialized(ServletContextEve

MongoDB学习笔记(一) MongoDB介绍及安装

这是MongoDB的系列学习笔记的第一篇,主要介绍什么是非关系型数据库MongoDB,如何下载,去哪儿下载,又该怎么正确的安装等一系列问题. 一.前言 最近开始学习非关系型数据库MongoDB,却在博客园上找不到比较系统的教程,很多资料都要去查阅英文网站,效率比较低下.本人不才,借着自学的 机会把心得体会都记录下来,方便感兴趣的童鞋分享讨论.部分资源出自其他博客,旨将零散知识点集中到一起,如果有侵犯您的权利,请联系li- [email protected].大部分内容均系原创,欢迎大家转载分享,

安卓笔记1——入门介绍及拨打电话和发送短信案例

现在开始接触安卓开发.以后后同步发出对应笔记.老规矩,用一张图来介绍今天的内容. 图片看不清的话可以右键新窗口打开. 一.开发工具 · Eclipse + ADT(Android Developer Tools) · Android Studio · SDK (软件开发环境, Android调试工具, 模拟等) 二.SDK目录介绍 · add-ons :(额外开发资料, google地图资源) · build-tools : 编译工具目录 · docs : 离线版开发文档 · extras :