监听Listener的简介及分类
一、监听器简介
> Listener是JavaWeb中三大组件之一。Servlet、Filter、Listener
> 三大组件都有的共同特点,都需要实现一个接口,并在web.xml文件配置。
监听器:朝阳群众
监听对象:明星
监听的事件:干坏事
调用方法:报警
> JavaWeb中的监听器的监听对象是谁?
ServletContext
HttpSession
ServletRequest
>编写一个监听器的步骤:
1.创建一个类并实现一个接口。
2.在web.xml文件中注册监听器。
二、监听器分类
> JavaWeb中的监听器共有三种,共8个监听器
1、生命周期监听器,监听三个对象的创建和销毁的事件。[3个]
2、 属性监听器,监听三个对象中属性的变化。[3个]
3、session对象监听器,将它session中的属性,以及session的活化和钝化。【2个】
1、生命周期监听器
ServletContextListener——ServletContext生命周期监听器
1. void contextDestroyed(ServletContextEvent sce) —— 该方法在ServletContext对象销毁前调用
2. void contextInitialized(ServletContextEvent sce) —— 该方法在ServletContext对象创建之前调用
3. ServletContextEvent 对象可以获取到ServletContext对象
ServletContextEvent.getServletContext();
HttpSessionListener——HttpSession生命周期监听器
1. void sessionCreated(HttpSessionEvent se) —— 该方法在Session创建时调用
2. void sessionDestroyed(HttpSessionEvent se) —— 在session销毁时调用
3. HttpSessionEvent —— 可以获取HttpSession对象
ServletRequestListener——ServletRequest生命周期监视器
1. void requestDestroyed(ServletRequestEvent sre) ——在request对象销毁时调用
2. void requestInitialized(ServletRequestEvent sre) ——在request对象创建时调用
2.属性监听器
> 属性监听器,监听三个域中的属性的变化:添加一个属性,替换一个属性,移除一个属性
ServletContextAttributeListener——监听ServletContext中的属性的变化
1.void attributeAdded(ServletContextAttributeEvent scab) —— 当向ServletContext中添加属性时调用
2.attributeRemoved(ServletContextAttributeEvent scab) —— 移除属性时调用
3.attributeReplaced(ServletContextAttributeEvent scab) —— 替换一个属性时调用
HttpSessionAttributeListener
1.void attributeAdded(HttpSessionBindingEvent se)
2.void attributeRemoved(HttpSessionBindingEvent se)
3.void attributeReplaced(HttpSessionBindingEvent se)
参数类型:HttpSessionBindingEvent
1.可以获取到属性名 getName()
2.可以获取属性的旧值 getValue()
3.可以获取到HttpSession对象 getSession();
ServletRequestAttributeListener
1.void attributeAdded(ServletRequestAttributeEvent srae)
2.void attributeRemoved(ServletRequestAttributeEvent srae)
3.void attributeReplaced(ServletRequestAttributeEvent srae)
> 以下两个监听器监听session域中的属性的。
3、HttpSessionBindingListener
> 监听session域中某一个类的实例的添加和移除。
> 该接口由JavaBean来实现,不需要再web.xml文件配置
1.valueBound(HttpSessionBindingEvent event) —— 当该类的实例,作为属性设置进session域中时调用
2.valueUnbound(HttpSessionBindingEvent event) —— 当该类的实例,从session域中被移除时调用
4、HttpSessionActivationListener
监听session域中的某类属性,和session一起活化和钝化的事件。
该接口由JavaBean来实现,同样不需要再web.xml中配置
1.void sessionDidActivate(HttpSessionEvent se) —— 当前对象和session一起被活化到内存时调用
2.void sessionWillPassivate(HttpSessionEvent se) —— 当前对象和session一起钝化到硬盘时调用
监听Listener的简介及分类的更多相关文章
- ORACLE之手动注册监听listener。alter system set local_listener="XXX"
记录下刚刚做的一个为一个数据库(t02)配置多个监听(listener)的实验,过程有点小曲折. (1)新增两个测试的监听,listener.ora的配置内容(可纯手动编辑该文件或使用netca)如下 ...
- 配置非默认端口的监听Listener
- (转)ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
早上同事用PL/SQL连接虚拟机中的Oracle数据库,发现又报了"ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务"错误,帮其解决后,发现很多人遇到过这样的问 ...
- 关于Oracle报“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误
关于Oracle报“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误原因:listener.ora中没有指定监听服务器名. 如下是解决思路: 尝试1.通过重启服务的方式启动数 ...
- Oracle几个基础配置问题:ORA-12154: TNS: 无法解析指定的连接标识符、ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务、ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序
问题1:ORA-12154: TNS: 无法解析指定的连接标识符 在一台服务器上部署了Oracle客户端,使用IP/SID的方式访问,老是报ORA-12154错误,而使用tnsnames访问却没有问题 ...
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
今天用PL/SQL连接虚拟机中的Oracle数据库,发现报了“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误,也许你也遇到过,原因如下: oracle安装成功后,一直未停止 ...
- 配置静态监听解决ORA-12514错误的案例(转)
今天做Linux下DG配置的时候,遇到一个现象,tnsname.ora文件配置都正常,tnsping也正常,监听也正常,但是仍然报ORA-12514错误: SQL> set lin 130 ...
- Servlet的监听
Servlet监听 在<Servlet和Jsp>中我们使用了ServletConfig获取Servlet的初始配置,用ServletContext来获取整个Web应用的初始配置,但如果需要 ...
- ORACLE 监听
今天来学习一下监听的相关内容,昨晚被老大问了两个关于监听很简单的问题,但是却吞吞吐吐回答,而且有一个问题还答错了,刚刚查了下资料,才发现"驴头对了马嘴",哭笑不得. 一.监听(li ...
随机推荐
- windows 里面waveOut*接口应用
#include <windows.h>#include <mmsystem.h>#include <stdio.h>/** some good values fo ...
- Mule ESB学习【转-结合了网络上的一些资源】
1.SOA标准之一:SCA架构思想 SOA在Java领域有两套标准:一个是SUN推出的JBI(没有得到BEA和IBM的承认),另外一个是:IBM和BEA等公司推出的SCA和SDO标准. JBI之关注J ...
- 20179203李鹏举 《Linux内核原理与分析》第一周学习笔记
Linux基础入门 一.Linux的基础学习 1.1 Linux的重要基础操作 Linux不同于Windows的纯粹的图形化界面,虽然也有图形桌面的操作但是更多的操作还是通过命令行来进行,当然除了命令 ...
- NYOJ-求逆序数 ----------------待解决,WA
描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数. 现在,给你一个N个元素的序列,请你判断出它的逆序数 ...
- 【LeetCode】012. Integer to Roman
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...
- Git远程克隆仓库出现Permission denied (publickey)
$ git clone git@github.com:DavidWanderer/test1.git Cloning into 'test1'... Warning: Permanently adde ...
- 删除文件时提示 你需要来自system的权限才能对此文件夹进行更改
问题描述: 我的计算机是Win7 x64操作系统,在我的计算机的F盘中,不知道什么时候多了个“12e4k69m762nzcgt8zx”这样一个文件夹,应该是某个软件自己创建并留下的文件夹,想删除掉则提 ...
- 理解Promise
一.Propmise基本用法 Promise用于发送一个异步完成的结果,是替代回调函数的另一种选择.可以把Promise理解为一种异步函数. 以下函数通过一个Promise来异步地返回一个结果 fun ...
- mysql: not unique table/alias error. 如何解决
1.请检查出现问题位置的 SQL 语句中是否使用了相同的表名,或是定义了相同的表别名. 2.检查 SELECT 语句中要查询的字段名是不是定义重复,或者没有定义. 3.把你的sql语句中的换行去掉.一 ...
- makefile 基础知识
$@ 目标文件名 $< 第一个依赖文件名 $^ 规则所有依赖文件列表 如果不想让执行语句被打印出来,就在语句前面加上@符号 模式规则 %.o:%.c 后缀规则 .c.o 生成单进程的Mak ...