Servlet API提供了一系列的事件和事件监听器接口。上层的servlet/JSP应用能够通过调用这些API进行事件驱动的开发。这里监听的所有事件都继承自java.uitl.Event对象。监听器接口可以分为三类:ServletContext、HttpSession、ServletRequest。
监听器接口和注册监听器接口主要在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:一个用于异步操作的监听器。
编写一个监听器,只需要写一个Java类来实现对应的监听器接口就可以看了。在Servlet3.0和Servlet3.1中提供了两种注册监听器的方法。第一种是使用WebListener注解,例如:
@WebListener
public class ListenerClass implements ListenerInterface {
}
第二种方法是在部署描述文档中添加一个listener元素。
fully-qualified listener class
你可以在一个应用中添加多个监听器。
Servlet Context 监听器


