8.1 监听器接口和注册
8.1 监听器接口和注册
监听器接口简介
监听器接口主要在 javax.servlet 和javax.servlet.http的包中。有以下这些接口:
- javax.servlet.ServletContextListener:它能够响应- ServletContext生命周期事件,它提供了- ServletContext创建之后和- ServletContext关闭之前的会被调用的方法。
- javax.servlet.ServletContextAttributeListener:它能够响应- ServletContext范围的属性- 添加、- 删除、- 替换事件。
- javax.servlet.http.HttpSessionListener:它能够响应- HttpSession的创建、超时和失效事件。
- javax.servlet.http.HttpSessionAttributeListener:它能响应- HttpSession范围的属性添加、删除、替换事件。
- javax.servlet.http.HttpSessionActivationListener:它在一个- HttpSession激活或者失效时被调用。
- javax.servlet.http.HttpSessionBindingListener:可以实现这个接口来保存- HttpSession范围的属性。当有属性从- HttpSession添加或删除时,- HttpSessionBindingListener接口能够做出响应。
- javax.servlet.ServletRequestListener:它能够响应一个- ServletRequest的创建或删除。
- javax.servlet.ServletRequestAttributeListener:它能响应- ServletRequest范围的属性值添加、删除、修改事件。
- javax.servlet.AsyncListener:一个用于异步操作的监听器,在第11章会进行更详细的介绍。
如何编写监听器
编写一个监听器,只需要写一个Java类来实现对应的监听器接口就可以了。在Servlet 3.0和Servlet 3.1中提供了两种注册监听器的方法。第一种是使用WebListener注解。例如:
| 1 | 
 | 
第二种方法是在部署描述文档中增加一个listener元素。
| 1 | </listener> | 
你可以在一个应用中添加多个监听器,这些监听器是同步工作的。