Listener小知识
Listener小知识
一、基础
1、简介
监听器,负责对整个WEB环境的监听,当被监听的对象发生改变时立即调用相应的方法进行处理。
2、监听器术语
(1)事件源:被监听的对象,目标对象
(2)监听器对象:用于监听事件源的对象
(3)注册(绑定):将监听器对象注册给事件源,当事件源发生变化,监听对象对应执行
(4)事件:事件源行为,即事件源发生变化
(5)事件对象:在监听器对象中得到事件源
3、配置监听器
(1)web.xml
<listener>
<listener-class> </listener-class>
指定初始化参数<context-param>
</listener>
(2)注解: @WebListener
4、内部机制
接口回调
二、域对象
1、ServletRequest对象监听
(1)作用:监听Request对象的创建或者删除
(2)包:javax.servlet.ServletRequestListener
(3)request创建方法-----请求开始创建
requestInitialized(ServletRequestEvent sre)
访问html / jsp / servlet 均可创建request
(4)request销毁方法-----请求结束时销毁
requestDestroyed(ServletRequestEvent sre)
(5)事件对象ServletRequestEvent
ServletContext getServletContext()
ServletRequest getServletRequest()
2、HttpSession对象监听
(1)作用:监听Session对象创建或销毁
(2)包:
javax.servlet.http.HttpSessionListener
(3)创建方法:
getSession()
sessionCreated(HttpSessionEvent se)
访问jsp / servlet 会产生session,访问html不会创建
(4)销毁方法
默认30分钟
执行invalidate()销毁
sessionDestroyed(HttpSessionEvent se)
(4)事件对象HttpSessionEvent
3、ServletContext对象监听
(1)作用:监听ServletContext对象创建或销毁
(2)包:javax.servlet.ServletContextListener
(3)创建方法(服务器启动时)
contextInitialized(ServletContextEvent sce)
(4)销毁方法(服务器正常关闭)
contextDestroyed(ServletContextEvent sce)
(5)事件对象ServletContextEvent
ServletContext getServletContext()
三、域对象属性
1、request作用域属性
(1)包:javax.servlet.ServletRequestAttributeListener
(2)类:ServletRequestAttributeListener
(3)作用:监听request对象属性attribute添加、替换和删除
2、session作用域属性
(1)包:javax.servlet.http.HttpSessionAttributeListener
(2)类:HttpSessionAttributeListener
(3)作用:监听session对象属性attribute添加、替换和删除
3、ServletContextAttributeListener作用域属性
(1)包:javax.servlet.ServletContextAttributeListener
(2)类:ServletContextAttributeListener
(3)作用:监听servletContext对象属性attribute添加、替换和删除
4、常用方法
添加 attributeAdded(ServletRequestAttributeEvent srae)
替换 attributeReplaced(ServletRequestAttributeEvent srae)
删除 attributeRemoved(ServletRequestAttributeEvent srae)
事件对象方法
getName()
getValue()
getServletContext()
getServletRequest()