什么是监听器?
Servlet监听器是当今Web应用开发的一个重要组成部分。Servlet监听器主要用来对Web应用进行监听和控制,极大地增强了Web应用的事件处理能力。
一般来说,Servlet监听就是指一些特殊的Servlet类,这些类可以监听Web应用的上下文信息、Servlet会话信息、Servlet请求信息。
在实际操作中,程序员需要继承或实现一些已定义好的类或接口,从而编写出自己用于监听的类。这些类对特定的信息进行监听。一旦被监听的事件发生,这些类会自动调用相应的方法去执行指定的操作。
1. Servlet监听器的接口:
监听器接口 | 功能描述 | 关联事件 |
ServletContextListener | 上下文监听器 | ServletContextEvent |
ServletContextAttributeListener | 上下文属性监听器 | ServletContextAttributeEvent |
ServletRequestListener | 请求监听器 | ServletRequestEvent |
ServletRequestAttributeListener | 请求属性监听器 | ServletRequestAttributeEvent |
HttpSessionListener | 会话监听器 | HttpSessionEvent |
HttpSessionAttributeListener | 会话属性监听器 | HttpSessionAttributeEvent |
HttpSessionActivationListener | 活动状态监听器 | HttpSessionActivationEvent |
HttpSessionBindingListener | 会话值绑定监听器 | HttpSessionBindingEvent |
2. 注册监听器:
<listener>
<listener-class>myServletContextListener</listener-class>
</ listener>
3. 会话时间配置
<!-- 会话时间配置 -->
<session-config>
<session-timeout>1</session-timeout><!-- 会话失效时间1分钟 -->
</session-config>
4. 什么是会话信息?
HTTP会话信息指的是Session对象的创建和销毁、会话中属性的设置请求、会话的状态和会话的绑定信息等。
通过对HTTP会话信息的监听,可以进行一些很有用的操作,比如,统计当前会话的数目、设置某个对话的属性、了解某个对话的状态等。
与ServletContext监听的实现方法类似,对HTTP会话的监听也是通过实现特定的接口来完成的。监听HTTP会话信息需要使用到三个接口类:HttpSessionListener、HttpSessionActivationListener和HttpSessionAttributeListener接口。
5. 会话信息的接口有哪些?
方法名 | 方法描述 |
sessionCreated(HttpSessionEvent arg0)方法 | 进行Http会话创建的监听,如果Http会话被创建将调用该方法 |
sessionDestroyed(HttpSessionEvent arg0)方法 | 对Http会话销毁进行监听,如果某个Http会话被释放将调用该方法 |
sessionDidActivate(HttpSessionEvent arg0)方法 | 对Http会话处于active情况进行监听 |
sessionWillPassivate(HttpSessionEvent arg0)方法 | 对Http会话处于passivate情况进行监听 |
attributeAdded(HttpSessionBindingEvent arg0)方法 | 对Http会话中属性添加进行监听 |
attributeReplaced(HttpSessionBindingEvent arg0)方法 | 对Http会话中属性修改进行监听 |
attributeRemoved(HttpSessionBindingEvent arg0)方法 | 对Http会话中属性删除进行监听 |