监听器分为三类
- 与Servlet上下文相关的监听器接口
- 与会话相关的监听器接口
- 与请求相关的监听器接口
1. 与Servlet上下文相关的监听器接口
监听器接口名称 | 说明 |
---|---|
ServletContextListener | 用于监听ServletContext(application)对象的创建和销毁 |
ServletContextAttributeListener | 用于监听ServletContext(application)范围内属性的改变 |
ServletContextListener接口
ServletContextListener接口用于监听Web应用程序的ServletContext对象的创建和销毁。在声明监听器之后,web在创建和销毁此对象时就会产生一个ServletContextEvent事件对象,然后在去执行ServletContextListener接口中相应的方法。
(1) contextInitialized(ServletContextEvent sce);ServletContext 被创建时调用此方法。(2) contextDestroyed(ServletContextEvent sce) ServletContext 被销毁时调用此方法。
ServletContextEvent中的方法
方法 | 描述 |
---|---|
getServletContext() | 返回改变前的ServletContext对象 |
ServletContextAttributeListener接口
ServletContextAttributeListener接口用于监听ServletContext(application)范围内属性的创建,修改和删除。 声明次监听器后当属性发生变化时,就会产生ServletContextAttributeEvent事件对象
ServletContextAttributeListener接口中相应的方法。
(1) attributeAdded(ServletContextAttributeEvent sce);属性被添加时调用此方法。(2) attributeRemoved(ServletContextAttributeEvent sce) 属性被删除时调用此方法。
(3) attributeReplaced(ServletContextAttributeEvent sce)属性被替换时调用此方法
ServletContextAttributeEvent中的方法
方法 | 描述 |
---|---|
getname() | 返回ServletContext改变的属性名 |
getValue() | 如果是添加的属性,则返回发属性的值,如果是修改的属性的值,则返回该属性的旧值,如果是删除该属性,则返回删除该属性的值 |
2. 与会话相关的监听器接口
监听器接口名称 | 说明 |
---|---|
HttpsessionListener | 用于监听会话对象的创建和销毁 |
HttpSessionAttributeListener | 用域监听会话域内属性的改变 |
HttpsessionListener接口
用于监听创建或销毁HttpSession对象时别调用,web在创建和销毁HttpSession对象时就会产生一个HttpSessionEvent事件对象,然后在去执行HttpsessionListener接口中相应的方法。
方法 | 描述 |
---|---|
sessionCreate(HttpSessionEvent se) | session对象创建是调用 |
sessionDestroyed(HttpSessionEvent se) | session对象销毁时调用 |
HttpSessionEvent中的方法
方法 | 描述 |
---|---|
getSession() | 返回改变前的HttpSession对象 |
HttpsessionAttributeListener接口
用于监听会话域属性的创建,删除和修改,当发生改变时会产生HttpSessionAttributeEvent类然后在去执行HttpsessionAttributeListener接口中相应的方法。。
(1) attributeAdded(HttpSessionAttributeEvent sce);属性被添加时调用此方法。(2) attributeRemoved(HttpSessionAttributeEvent sce) 属性被删除时调用此方法。
(3) attributeReplaced(HttpSessionAttributeEvent sce)属性被替换时调用此方法
ServletContextAttributeEvent中的方法
方法 | 描述 |
---|---|
getname() | 返回HttpSession改变的属性名 |
getValue() | 如果是添加的属性,则返回发属性的值,如果是修改的属性的值,则返回该属性的旧值,如果是删除该属性,则返回删除该属性的值 |
3. 与请求相关的监听器接口
监听器接口名称 | 说明 |
---|---|
ServletRequestListener | 用于监听用户请求对象的创建和销毁 |
ServletRequestAttributeListener | 用域监听请求域内属性的改变 |
ServletRequestListener接口
ServletRequestListener接口用于监听Web应用程序的ServletRequest对象的创建和销毁。在声明监听器之后,web在创建和销毁此对象时就会产生一个ServletRequestEvent事件对象,然后在去执行ServletRequestListener接口中相应的方法。
(1) contextInitialized(ServletRequestEvent sce);ServletRequest 被创建时调用此方法。(2) contextDestroyed(ServletRequestEvent sce) ServletRequest 被销毁时调用此方法。
ServletRequestEvent中的方法
方法 | 描述 |
---|---|
getServletRequest() | 返回改变前的ServletRequest对象 |
ServletRequestAttributeListener接口
用于监听请求域属性的创建,删除和修改,当发生改变时会产生ServletRequestAttributeEvent类然后在去执行ServletRequestAttributeListener接口中相应的方法。。
(1) attributeAdded(ServletRequestAttributeEvent sce);属性被添加时调用此方法。(2) attributeRemoved(ServletRequestAttributeEvent sce) 属性被删除时调用此方法。
(3) attributeReplaced(ServletRequestAttributeEvent sce)属性被替换时调用此方法
ServletRequestAttributeEvent中的方法
方法 | 描述 |
---|---|
getname() | 返回HttpSession改变的属性名 |
getValue() | 如果是添加的属性,则返回发属性的值,如果是修改的属性的值,则返回该属性的旧值,如果是删除该属性,则返回删除该属性的值 |
4. 监听器在web.xml文件中配置
<listener>
<description>MyListener</description>
<listener-class>cn.bzu.filterProject.listener.MyListener</listener-class> <!-- 监听器的类所在的类全名 -->
</listener>