监听器Listener

1.监听器listener

监听某个对象的的状态变化的组件

事件源:被监听的对象(三个域对象servletContext、session、request)

监听器:监听事件的源对象,事件源创建、销毁、状态变化都会触发监听器,6+2个

注册监听器:将监听器和事件源所绑定,一般在web.xml中进行绑定(listener标签)

响应行为:触发监听器后要执行的事件或代码

 

 

2.监听器分类

第一维度:按照被监听的对象分类(ServletRequest域   HttpSession域    ServletContext域)

第二维度:监听的内容分类(监听域对象的创建与销毁   监听域对象的属性变化)

 

 

3.监听三大域对象的创建和销毁

1)ServletContext域对象的监听

编写监听器的步骤:

a.编写一个监听器类去实现监听器接口(ServletContextListener)

b.覆盖监听器的方法,监听的方法有两个(一个是创建时执行的方法,一个是销毁时执行的方法)

c.在web.xml中进行配置---注册

public class servletContextListener implements ServletContextListener{
	@Override
	public void contextInitialized(ServletContextEvent arg0) {
		// 创建时执行的方法,arh0可以获得监听的域对象信息
		System.out.println("创建。。。");
	}
	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		// 销毁时执行的方法
		System.out.println("销毁。。。");
	}
}

web.xml配置

<listener>
  	<listener-class>com.imwj.listener.servletContextListener</listener-class>
</listener>

 

servletContext监听器的作用:

a.初始化的工作:加载数据库驱动,数据库连接池,spring的配置文件等

b.定时器的作用:Timer/TimerTask

 

2)HttpSession域对象的监听,同上(接口:HttpSessionListener)

3)ServletRequest域对象的监听,同上(接口:ServletRequestListener)

 

 

4.监听三大对象属性的变化

域的通用方法:

setAttribute(name,value) --- 触发添加属性的监听器的方法,触发修改属性的监听器的方法

getAttribute(name)

removeAttribute(name) --- 触发删除属性的监听器的方法

 

1)ServletContextAttributeListener,接口:ServletContextAttributeListener)

public class servletContextListener implements ServletContextAttributeListener{

	@Override
	public void attributeAdded(ServletContextAttributeEvent arg0) {//arg0能够得到被监听的域属性信息
		// 域中新增属性所执行的方法
	}
	@Override
	public void attributeRemoved(ServletContextAttributeEvent arg0) {
		// 域中删除属性所执行的方法
	}
	@Override
	public void attributeReplaced(ServletContextAttributeEvent arg0) {
		// 域中修改属性所执行的方法
	}
}

2)HttpSessionAttributeListener,同上(接口:HttpSessionAttributeListener)

3)ServletRequestAttributeListener,同上(接口:ServletRequestAttributeListener)

 

 

5.与session中的绑定的对象相关的监听器(对象感知监听器)

某个JavaBean被设置到session中时执行

1)被绑定到session中时的几种状态

绑定状态:就一个对象被放到session域中

解绑状态:就是这个对象从session域中移除了

 

钝化状态:是将session内存中的对象持久化(序列化)到磁盘

活化状态:就是将磁盘上的对象再次恢复到session内存中

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值