监听器Listener

监听器 Listener

Web的另一大组件:Listener(监听器).
Web中的监听器,主要用于监听作用域对象的创建,监听作用域对象属性的添加/删除/替换:

监听器的分类

1:监听作用域对象的创建和销毁.

​ ServletRequestListener:监听请求对象的创建和销毁.
​ HttpSessionListener:监听会话对象(session)的创建和销毁.
​ ServletContextListener:监听应用的创建和销毁.

拿ServletContextListener举例 第一种监听器只有两个方法 初始化和销毁

// 监听系统(应用)的启动和销毁
@WebListener
public class ContextLoaderListener implements ServletContextListener{

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		System.out.println("系统启动了");
	}

	@Override
	public void contextDestroyed(ServletContextEvent sce) {
		System.out.println("系统关闭了");
		
	}

}

2:监听作用域对象的属性的添加/删除/替换.

​ ServletRequestAttributeListener: 监听request作用域中属性的添加/删除/替换.
​ HttpSessionAttributeListener:监听session作用域中属性的添加/删除/替换.
​ ServletContextAttributeListener:监听application作用域中属性的添加/删除/替换.

查看HttpSessionAttributeListener源码 时 可以看出第二种监听器有三个方法 添加 删除 替换

public interface HttpSessionAttributeListener extends EventListener {
    
    public void attributeAdded(HttpSessionBindingEvent se);
    
    public void attributeRemoved(HttpSessionBindingEvent se);

    public void attributeReplaced(HttpSessionBindingEvent se);
}

监听器的配置

  1. 可以在web.xml中配置 只有Listener-class 没有url-pattern

    因为你要监听什么 实现哪一个类就可以了

  2. 可以用标签配置 @WebListener

原文地址:https://www.cnblogs.com/yhnCoder/p/13202537.html