JavaWeb课程系列

第15章Listener

1.Listener简介

1)什么是监听器:

专门用来对其他对象身上发生的事情或状态改变进行监听和相应处理的对象,当被监视对象发生情况时,立即采取相应的行动

2)作用:

监听web变化:Servlet规范中定义的一种特殊类,用于监听web'应用程序中的ServletContext,HttpSession,ServletRequest等域对象的创建与销毁,以及属性变化

2.八大listener

我们Servlet规范中定义了很多种类型的监听器,他们有着各自不同的功能。我们来看一下这些监听器。

2.1  ServletContextListener:

ServletContext生命周期监听器,创建和销毁时被触发。包含两个方法:

contextInitialized(ServletContextEvent):ServletContext创建事件监听

contextDestroyed(ServletContextEvent):ServletContext销毁事件监听

2.2  ServletContextAttributeListener:

ServletContext属性监听器,发生属性变化时触发。

attributeAdded(ServletContextAttributeEvent):增加属性时调用

attributeRemoved(ServletContextAttributeEvent):移除属性时调用

attributeReplaced(ServletContextAttributeEvent):属性替换时调用

2.3  HttpSessionListener:

HttpSession生命周期监听器,创建和销毁session时被触发。

sessionCreated(HttpSessionEvent):session创建时触发

sessionDestroyed(HttpSessionEvent):session销毁时触发,invalid,session过期。

2.4  HttpSessionAttributeListener:

         HttpSession属性监听器,session中属性变化时触发

         attributeAdded(HttpSessionBindingEvent):属性添加时调用

attributeRemoved(HttpSessionBindingEvent):属性移除时调用

attributeReplaced(HttpSessionBindingEvent):属性替换时使用

2.5  HttpSessionActivationListener:

         HttpSession活化与钝化监听,不需要在web.xml中配置,必须是类实现此接口

sessionWillPassivate(HttpSessionEvent):某个类和session一起钝化时调用

sessionDidActivate(HttpSessionEvent):某个类和session一起活化时调用

2.6  HttpSessionBindingListener:

HttpSession属性绑定时调用,不需要在web.xml中配置,必须是类实现此接口。当此类 被当做属性值绑定到session中时触发

valueBound(HttpSessionBindingEvent):属性被设置到session域中时触发

valueUnbound(HttpSessionBindingEvent):属性从session域中移除时触发

2.7 ServletRequestListener

ServletRequest生命周期监听器。ServletRequest创建和销毁时触发

requestInitialized(ServletRequestEvent):请求初始化时触发

requestDestroyed(ServletRequestEvent):请求完成时触发

2.8  ServletRequestAttributeListener

ServletRequest属性监听器。ServletRequest中属性变化时触发

attributeAdded(ServletRequestAttributeEvent):request中增加属性调用

attributeRemoved(ServletRequestAttributeEvent):request中移除属性调用

attributeReplaced(ServletRequestAttributeEvent):request中属性替换调用