Listener随笔
[1]监听器简介
> Listener是JavaWeb中三大组件之一。Servlet、Filter、Listener
> 三大组件都有的共同特点,都需要实现一个接口,并在web.xml文件配置。
监听器:朝阳群众
监听对象:明星
监听的事件:干坏事
调用方法:报警
> JavaWeb中的监听器的监听对象是谁?
ServletContext
HttpSession
ServletRequest
[2]监听器分类
> JavaWeb中的监听器共有三种,共8个监听器
- 生命周期监听器,监听三个对象的创建和销毁的事件。
- 属性监听器,监听三个对象中属性的变化。
- session对象监听器,将它session中的属性,以及session的活化和钝化。
[3]生命周期监听器
ServletContextListener
- ServletContext生命周期监听器
- void contextDestroyed(ServletContextEvent sce)
- 该方法在ServletContext对象销毁前调用
- void contextInitialized(ServletContextEvent sce)
- 该方法在ServletContext对象创建之前调用。
- ServletContextEvent 对象可以获取到ServletContext对象
ServletContextEvent.getServletContext();
HttpSessionListener
- HttpSession生命周期监听器
- void sessionCreated(HttpSessionEvent se)
- 该方法在Session创建时调用
- void sessionDestroyed(HttpSessionEvent se)
- 在session销毁时调用
- HttpSessionEvent
- 可以获取HttpSession对象
ServletRequestListener
- void requestDestroyed(ServletRequestEvent sre)
- 在request对象销毁时调用
- void requestInitialized(ServletRequestEvent sre)
- 在request对象创建时调用
- ServletRequestEvent
可以获取ServletContext对象和ServletRequest
编写一个监听器的步骤:
1.创建一个类并实现一个接口。
2.在web.xml文件中注册监听器。
[4]属性监听器
> 属性监听器,监听三个域中的属性的变化:添加一个属性,替换一个属性,移除一个属性
> ServletContextAttributeListener
- 监听ServletContext中的属性的变化
void attributeAdded(ServletContextAttributeEvent scab)
- 当向ServletContext中添加属性时调用
attributeRemoved(ServletContextAttributeEvent scab)
- 移除属性时调用
attributeReplaced(ServletContextAttributeEvent scab)
- 替换一个属性时调用
> HttpSessionAttributeListener
void attributeAdded(HttpSessionBindingEvent se)
void attributeRemoved(HttpSessionBindingEvent se)
void attributeReplaced(HttpSessionBindingEvent se)
- HttpSessionBindingEvent
1.可以获取到属性名 getName()
2.可以获取属性的旧值 getValue()
3.可以获取到HttpSession对象 getSession();
> ServletRequestAttributeListener
void attributeAdded(ServletRequestAttributeEvent srae)
void attributeRemoved(ServletRequestAttributeEvent srae)
void attributeReplaced(ServletRequestAttributeEvent srae)
> 以下两个监听器监听session域中的属性的。
1 HttpSessionBindingListener
> 监听session域中某一个类的实例的添加和移除。
> 该接口由JavaBean来实现,不需要再web.xml文件配置
valueBound(HttpSessionBindingEvent event)
- 当该类的实例,作为属性设置进session域中时调用
valueUnbound(HttpSessionBindingEvent event)
- 当该类的实例,从session域中被移除时调用
2 HttpSessionActivationListener
> 监听session域中的某类属性,和session一起活化和钝化的事件。
> 该接口由JavaBean来实现,同样不需要再web.xml中配置
void sessionDidActivate(HttpSessionEvent se)
- 当前对象和session一起被活化到内存时调用
void sessionWillPassivate(HttpSessionEvent se)
- 当前对象和session一起钝化到硬盘时调用
Listener随笔的更多相关文章
- FineUIMvc随笔 - 动态创建表格列
声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 用户需求 用户希望实现动态创建表格列,在 WebForms 中,我们通过在 Page_Init 中创建列来实现: 但是在 MVC ...
- FineUIMvc随笔(4)自定义回发参数与自定义回发
声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 不能忘却的回发 在上一篇文章中,我们对FineUIMvc中的回发进行了详细描述,目的是为了告诉大家: 1. FineUIMvc中 ...
- FineUIMvc随笔(1)动态创建表格列
声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. <FineUIMvc随笔>目录 FineUIMvc随笔(1)动态创建表格列 FineUIMvc随笔(2)怎样在控件中 ...
- 解决android sdk 运行出现 could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037:的问题
ionic3项目,在添加android平台后,cordova run android 出现 以下问题: error: could not install *smartsocket* listener: ...
- FineUIMvc随笔(7)扩展通知对话框(显示多个不重叠)
声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 这篇文章我们将改造 FineUIMvc 默认的通知对话框,使得同时显示多个也不会重叠.并提前出一个公共的JS文件,供大家使用. ...
- JavaWeb随笔整理
JavaWeb随笔整理 为方便阅读,故整理了相关学习笔记 前端相关 HTML CSS JavaScript BootStrap 数据库相关 MySQL基础 MySQL表的约束和数据库设计 MySQL多 ...
- AI人工智能系列随笔
初探 AI人工智能系列随笔:syntaxnet 初探(1)
- 【置顶】CoreCLR系列随笔
CoreCLR配置系列 在Windows上编译和调试CoreCLR GC探索系列 C++随笔:.NET CoreCLR之GC探索(1) C++随笔:.NET CoreCLR之GC探索(2) C++随笔 ...
- C++随笔:.NET CoreCLR之GC探索(4)
今天继续来 带大家讲解CoreCLR之GC,首先我们继续看这个GCSample,这篇文章是上一篇文章的继续,如果有不清楚的,还请翻到我写的上一篇随笔.下面我们继续: // Initialize fre ...
随机推荐
- webpack代理解决跨域问题
new WebpackDevServer(webpack(config), { hot:hot, inline: true, compress: true, //去掉真实ip的检测 disableHo ...
- js验证对象类型
js验证对象类型 1. Object.prototype.toString.call() 这是最佳解决方案,可以用作通用方式处理.各种类型的判断依据类似于[object Object],替换的是后边的 ...
- Spring引入外部项目Junit 报ClassNotfound问题
https://blog.csdn.net/sheng_Mu555/article/details/80465679 用它这个方法可以了 所以大家可以过去看一下哈哈
- Homework:工作日 还是周末
/* 程序功能: 要求用户从键盘输入1~7之间的整数 如果输入的是1~5, 提示用户是工作日,要努力工作: 如果输入的是6或7,提示用户是休息日,放松休息: 否则,提示用户输入不在合法范围 */ #i ...
- PHP : MySQLi【面向过程】操作数据库【 连接、建库、建表、增、删、改、查、关闭】
<?php /** *数据库操作关键函数 *mysql_connect:连接数据 *mysql_error:最后一次sql动作错误信息 *mysqli_query:执行sql语句,增删该查 *m ...
- spring boot 1.x配置,不断完善中
spring boot是典型的约定大于配置,那么很有必要对在开发过程中这些配置做统一的添加记录,以免用到的时候到处搜索,网上的东西又良莠不齐. server.port=8880 微服务注册中心,yml ...
- CentOS7+CDH5.14.0安装CDH错误排查:HBase服务出现 该运行状况测试不良,因为 Service Monitor 未找到活动 Master
错误:HBase服务出现 该运行状况测试不良,因为 Service Monitor 未找到活动 Master 如果重启服务之后无法排除该问题,请执行如下操作(CM换成自己的版本号): rm -f /o ...
- python note 15 正则表达式
# 正则表达式 只和字符串打交道 # 正则表达式的规则# 规则 字符串 从字符串中找到符合规则的内容 # 字符组 : [] 写在中括号中的内容,都出现在下面的某一个字符的位置上都是符合规则的 # [0 ...
- Flask-WTForms 简单使用
安装 wtforms 2.2.1 直接上代码: app.py 文件: from flask import Flask, render_template, request from wtforms im ...
- HNの野望
1.标题 2.工作 3.学习 4.英语 5.健康 6.心理 7.绘画 8.看书