Java监听器(详解)

Java监听器(详解)

一、定义

监听器(Listener)是软件开发中一个常用的概念,指的是一种设计模式,用于检测和响应特定事件的发生。

功能:监听器用于监听web应用中某些对象信息的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应处理。当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。

理解:其实监听器就是一种 回调机制,使用接口回调的原理。

扩展

接口回调:事先先把一个对象传递给 A ,当A执行到某个状态时,通过这个对象,来调用B中的方法。 但是注意,不是直接传递B的实例,而是传递一个接口的实例过去。

二、创建步骤

1、定义监听器接口或类:指定监听器需要实现的方法或回调函数。

2、 实现监听器接口 :实现指定的监听器接口中的方法

3、 注册监听器 :在web.xml文件中配置监听/在类上标注@WebListener 注解

三、三大类监听器

类型 对应的接口
监听三个作用域创建和销毁
(三个作用域:request、session、application)
作用域request — ServletRequestListener
作用域session — HttpSessionListener
作用域application — ServletContextListener
监听三个作用域属性状态变更 request — **ServletRequestAttributeListener
**session — HttpSessionAttributeListener
servletContext — ServletContextAttributeListener
监听httpSession里面存值的状态变更 HttpSessionBindingListener
HttpSessionActivationListener

第一类:域对象监听器

监听域对象 创建与销毁的监听器

监听器接口 描述
ServletContextListener 监听Servlet上下文对象(全局对象)的创建、销毁
HttpSessionListener 监听会话对象的创建、销毁
ServletRequestListener 监听请求对象的创建、销毁

Servlet上下文对象 创建和销毁的监听器

public class ApplicationListener implements ServletContextListener {
   
   	
	//Servlet上下文对象创建的时候被调用
	@Override
	public void contextInitialized(ServletContextEvent contextEvent) {
   
   
		System.out.println("Servlet上下文对象被创建啦...");
		
        //项目一旦启动,此处代码运行!
		Timer timer=new Timer();
		//5秒钟之后开始执行,以后每间隔2秒发送一封邮件!
		timer.schedule(new TimerTask() {
   
   
			@Override
			public void run() {
   
   
				//System.out.println("发邮件...."+new Date());
			}
		}, 5000, 2000);
	}
	//Servlet上下文对象销毁的时候被调用
	@Override
	public void contextDestroyed(ServletContextEvent contextEvent) {
   
   
		System.out.println("Servlet上下文对象被销毁啦...");
		//服务器在停止的时候,要执行某些动作,那么就可以把代码写在这个位置!!!	
	}
}
<!-- web.xml中配置 -->
<listener>
	<listener-class>com.dream.listener.ApplicationListener</listener-class>
</listener>

会话对象 创建和销毁的监听器

@WebListener
public class SessionListener implements HttpSessionListener{
   
   
	@Override
	public void sessionCreated(HttpSessionEvent event) {
   
   
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值