【Servlet】Listener监听器
监听器的使用
* 监听器的使用:* 作用:* 监听作用域对象request、session、application的创建、销毁和内容的改变* 使用:* 创建一个实现了指定接口的java类* 监听request--->ServletRequestListener 监听request对象的创建和销毁* requestInitialized(ServletRequestEvent sre)//创建* requestDestroyed(ServletRequestEvent sre)//销毁* 注意:* 形参可以获取监听的request对象* sre.getServletRequest();* 监听request--->ServletRequestAttributeListener 监听request作用域数据的变更。attributeAdded(ServletRequestAttributeEvent srae)* attributeRemoved(ServletRequestAttributeEvent srae) * attributeReplaced(ServletRequestAttributeEvent srae)* 注意:形参可以获取被监听的数据 * srae.getName() 获取监听数据的键* srae.getValue() 获取监听数据的值* 监听session--->HttpSessionListener 监听session的创建和销毁* sessionCreated(HttpSessionEvent se) 创建* sessionDestroyed(HttpSessionEvent se) 销毁* 注意:形参可以获取被监听的session对象* se.getSession();* 监听session--->HttpSessionAttributeListener 监听session数据的变更* attributeAdded(HttpSessionBindingEvent event)* attributeRemoved(HttpSessionBindingEvent event)* attributeReplaced(HttpSessionBindingEvent event)* 注意:形参可以获取被监听的数据* event.getName() 获取数据的键名* event.getValue() 获取数据的值* 监听application--->ServletContextListener 监听application对象的初始化和销毁* contextInitialized(ServletContextEvent sce) 初始化 服务器启动* contextDestroyed(ServletContextEvent sce) 销毁 服务器关闭* 注意:* 形参可以获取当前application对象。* sce.getServletContext();监听application--->ServletContextAttributeListener 监听数据的变更attributeAdded(ServletContextAttributeEvent event)* attributeRemoved(ServletContextAttributeEvent event)* attributeReplaced(ServletContextAttributeEvent event)* 注意:* 形参可以获取当前监听的数据* event.getName() 获取数据的键名* event.getValue() 获取数据的值* 在web.xml中配置监听器类* <listener><listener-class>com.bjsxt.listener.MyListener</listener-class></listener>案例:统计当前在线人数。统计网页浏览器次数。
package com.bjsxt.listener;import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/*** 监听器的使用*/
public class MyListener implements ServletRequestListener,ServletRequestAttributeListener,HttpSessionListener,HttpSessionAttributeListener,ServletContextListener,ServletContextAttributeListener{//request对象销毁@Overridepublic void requestDestroyed(ServletRequestEvent sre) {System.out.println("我被销毁了");}//request对象创建@Overridepublic void requestInitialized(ServletRequestEvent sre) {System.out.println("我被创建了");}//监听request作用域数据的添加@Overridepublic void attributeAdded(ServletRequestAttributeEvent srae) {System.out.println("request中增加了一条数据-"+srae.getName()+":"+srae.getValue());}@Overridepublic void attributeRemoved(ServletRequestAttributeEvent srae) {// TODO Auto-generated method stub}@Overridepublic void attributeReplaced(ServletRequestAttributeEvent srae) {// TODO Auto-generated method stub}
/*------------------------------------------------------------------------------*///监听session的创建@Overridepublic void sessionCreated(HttpSessionEvent se) {System.out.println("session被创建了");}//监听session的销毁@Overridepublic void sessionDestroyed(HttpSessionEvent se) {System.out.println("session被销毁了");}//监听session数据的表更@Overridepublic void attributeAdded(HttpSessionBindingEvent event) {System.out.println("session中增加了一条数据"+event.getName()+":"+event.getValue());}@Overridepublic void attributeRemoved(HttpSessionBindingEvent event) {// TODO Auto-generated method stub}@Overridepublic void attributeReplaced(HttpSessionBindingEvent event) {// TODO Auto-generated method stub}
/*------------------------------------------------------------------------------*/@Overridepublic void contextInitialized(ServletContextEvent sce) {System.out.println("application对象被初始化了");}@Overridepublic void contextDestroyed(ServletContextEvent sce) {System.out.println("application对象被销毁了");}//监听application的数据变更@Overridepublic void attributeAdded(ServletContextAttributeEvent event) {System.out.println("application中存储了数据:"+event.getName()+":"+event.getValue());}@Overridepublic void attributeRemoved(ServletContextAttributeEvent event) {// TODO Auto-generated method stub}@Overridepublic void attributeReplaced(ServletContextAttributeEvent event) {// TODO Auto-generated method stub}
}
【Servlet】Listener监听器相关推荐
- 【Servlet】Java Serlvet Listener 监听器
Listener监听器 Servlet规范中定义的一种特殊的组件,用来监听Servlet容器产生的事件并进行相应的处理 容器产生的事件分类- 生命周期相关的事件- 设置和删除Attribute数据相关 ...
- Listener 监听器
Listener 监听器 前言:之前写了一篇关于Filter的文章:http://tianweili.github.io/blog/2015/01/26/java-filter/,现在再来一篇List ...
- 第 8 章 配置listener监听器
第 8 章 配置listener监听器 注意 还记得我们之前讲过的在线列表吗?第 4.2 节 "例子:在线列表".我们曾经说过那个在线列表无法判断用户非法退出,很可能造成在线列表无 ...
- Filter(过滤器)、Listener(监听器)
一: 过滤器: 可以把"不和谐"的东西给过滤掉 01.过滤器概述 生活中的过滤器:带有过滤功能的净水器,滤纸,香烟的过滤嘴,测试,丈母娘.程序中的过滤器:在JAVA中最小的程序单元 ...
- javaweb(11) Listener监听器与Filter过滤器
javaweb(11) Listener监听器与Filter过滤器 Listener监听器 什么是Listener监听器 Listener 监听器它是 JavaWeb 的三大组件之一.JavaWeb ...
- spring listener监听器
1.Listener的定义与作用 监听器Listener就是在application,session,request三个对象创建.销毁或者往其中添加修改删除属性时自动执行代码的功能组件. Listen ...
- Java中的Listener监听器与Ajax技术和Axios异步框架以及JSON传递接收数据
Listener监听器与Ajax Listener 概念 Listener 表示监听器,是 JavaWeb 三大组件(Servlet.Filter.Listener)之一. 监听器可以监听就是在 ap ...
- web核心 8-filter过滤器 listener监听器 相对路径 绝对路径 项目名路径
内容介绍 1.Filter过滤器 2.listener监听器 Filter过滤器 概述 web服务器端有三大技术:Servlet Filter Listener Servlet:本质上是一个类,这个类 ...
- 2011级-csdn-java-张侃— Servlet事件监听器
监听器 l 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行. l ...
- Servlet/listener/filter应用大全
服务器servlet/listener/filter 11 http/tomcat - http协议版本 使用最广泛的是1.1的版本. 它是一种请求 - 响应 模型的协议. 1.0请求 - 响应完 ...
最新文章
- (017)java后台开发之客户端通过HTTP获取接口Json数据
- python8皇后不攻击问题_Python八皇后问题(落最后一颗子)
- 模型算法_数据分析师,要懂多少算法模型?
- Spring Boot log4j多环境日志级别的控制
- HBase(2) Java 操作 HBase 教程
- 我爱我家:旗下APP已全面兼容鸿蒙系统
- 虚拟化技术、云计算服务模式、Docker安装
- 《精通javascript》5,6章小结(一)
- 几种常见的 Kafka 集群监控工具
- Idea使用SVN教程
- python读音有道-[Python]通过有道词典API获取单词发音MP3
- C# 设置Word文本框中的文字旋转方向
- 贪吃蛇游戏 js网页版
- linux登录提示文件 motd 有趣的motd
- 若依图片上传到服务器,前端显示图片
- XSuperNEST套料引擎
- cpu选择K还是f?哪个更靠谱?
- 十六进制字符串转换为字节数组
- 【Web】分页简单实现
- n流水线m装配站调度问题
热门文章
- HihoCoder - 1829 Tomb Raider(暴力)
- android 动画动态消失,Android属性动画——没有什么动画是一个AnimSet不能解决的...
- 排序算法-07归并排序(python实现)
- 《openssl编程》之BIO
- (六)boost库之内存管理shared_ptr
- 动态语言和静态语言的比较
- 白话科普系列——最好用的浏览器 Chrome,你用了么?
- docker下安装Pillow模块
- 大图详解负载神器 LVS、Nginx及HAProxy工作原理
- Java集合框架:HashMap