上一个任务/上一节 下一个任务/下一节
目录
2. HttpSessionBindingListener 接口
5.3.3 ServletContexListener 与 Web 应用初始化
任务 3 使用监听器统计在线用户数量
关键步骤如下。
- 实现 HttpSessionBindingListener 接口
- 在 valueBound() 和 valueUnbound() 方法中实现用户数量的统计
- 在 web.xml 文件中配置监听器
5.3.1 认识监听器组件
1.Servlet 监听器
监听器是 Web 应用程序事件模型的一部分,当Web 应用中的某些状态发生改变时,
会产生相应的事件。监听器可以接收这些事件,并可以在事件发生时进行相关处理。
使用 Servlet 监听器可以实现对时间的监听。在 Servlet ApI 中共定义了 8 个监听器
接口,可以用于监听 ServletContext、HttpSession、和 ServletRequest 对象的生命周期、
以及这些对象的属性引发的事件。这 8 个监听器接口如表 5-7 所示。
2. HttpSessionBindingListener 接口
如果一个对象实现了 HttpSessionBindingListener 接口 ,当这个对象被添加到 session 或者
从 session 中删除时, Servlet 容器都能够进行识别并发出相应的通知,在对象接收到通知后,
就可以进行一系列的操作。HttpSessionBindingListener 接口提供的方法如表 5-8 所示。
监听器接口 | 说明 |
---|---|
javax.servlet.ServletContextListener | 实现该接口,可以在Servlet 上下文对象初始化或者销毁时得到通知 |
javax.servlet.ServletContextAttributeListener | 实现该接口,可以在Servlet 上下文中的属性列表发生变化时得到通知 |
javax.servlet.http.HttpSessionListener | 实现该接口,可以在 session 创建后或者失效前得到通知 |
javax.servlet.http.HttpSessionActivatonListener | 实现该接口的对象,如果绑定到 session 中,当 session 被钝化或者激活时,Servlet 容器将通知该对象 |
javax.servlet.http.HttpSessionAttributeListener | 实现该接口,可以在session 中的属性列表发生变化时得到通知 |
javax.servlet.http.HttpSessionBindingListener | 实现该接口,可以是一个对象在绑定 session 或者从 session 中删除时得到通知 |