为了能在Servlet/JSP中进行事件驱动编程(Event-Driven Programming),Servlet
API提供了一整套的事件类和监听器接口。所有事件类均源自java.util.Event,并且监听器在以下三个级别中均可用:
ServletContext, HttpSession, ServletRequest,
一 监听器的注册方法
创建监听器时,只要实现一个实现相关接口的Java类即可。
在Servlet3.0中,注册监听器有两种方法
1 - 使用WebListener注解
@WebListener
public class ListenerClass implements ListenerInterface {
}
2 - 在部署表述文件中声明使用一个listener元素
<listener>
<listener-class>fully-qualified listener class</listener-class>
</listener>
二 监听器接口及其使用
结合观察者模式,每当Servlet容器中的相应对象(Object)发生相应的变化时,实现对应的监听器接口的
监听器类(Observer)中的特定方法就会被调用以实现特定的事件编程任务。
在ServletContext级别上的监听器接口:
ServletContextListener
ServletContextAttributeListener
在HttpSession级别上的监听器接口:
HttpSessionListener
HttpSessionActivationListener
HttpSessionAttributeListener
HttpSessionBindingListener
在ServletRequest级别上的监听器接口:
ServletRequestListener
ServletRequestAttributeListener
AsyncListener