一、作用:
监听某个事件的发生,状态的改变。
二、使用:
①Listener监听三个域对象创建与销毁
1、实现ServletRequestListener接口,监听ServletRequest对象的创建与销毁。
创建:访问服务器任何资源都会发送请求(ServletRequest)出现,访问.html和.jsp和.servlet都会创建请求。
销毁:服务器已经对该次请求做出了响应。
2、实现HttpSessionListener接口,监听HttpSession域对象的创建与销毁。
创建:只要调用了getSession()方法就会创建,一次会话只会创建一次。
销毁:1.超时(默认为30分钟)2.非正常关闭,销毁3.正常关闭服务器(序列化)
3、实现ServletContextListener接口,监听ServletContext域对象的创建与销毁。
创建:启动服务器时创建
销毁:关闭服务器或者从服务器移除项目
②Listener监听三个域对象属性状态的改变
实现ServletRequestAttribute接口,监听ServletRequest属性的改变。
新增、删除、修改request作用域的值都会被监听,且方法参数可以获取request作用域的键和值。
实现HttpSessionAttributeListener接口,监听HttpSession属性的改变。
新增、删除、修改session作用域的值都会被监听,且方法参数可以获取session作用域的键和值。
实现ServletContextAttribute接口,监听ServletContext属性的改变。
新增、删除、修改application作用域的值都会被监听,且方法参数可以获取application作用域的键和值。