监听器

监听器的作用是监听Web容器的有效期事件,因此它由容器管理。
监听器利用Listener接口监听在容器中国的某个执行程序,并且根据其应用程序的需求来做出适当的响应。

下面是Servlet和JS中的8个Listener接口和6个event类。

1 Servlet上下文监听器

 Servlet上下文监听器可以监听到ServletContext对象的创建、删除以及属性添加、删除和修改操作,该监听器需要用到如下两个接口:

1.1 ServletContextListener接口
该接口存放在javax.servlet包中,主要用于监听ServletContext的创建和删除。
它提供了两个方法。

1.2 ServletAttributeListener接口
该接口存放在javax.servlet包中,主要实现监听ServletContext属性的增加、删除和修改。

该接口提供了三个方法:

为了让实现这两个接口的类能够接受到通知事件(监听事件),需要在web.xml文件中使用<Listener>元素来配置监听类,如下所示:

<listener>
        <listener-class>com.listener.MyListener</listener-class>
</listener>

2 HTTP会话监听
实现HTTP会话监听,有四个接口可以实现。

2.1 HttpSessionListener接口
HttpSessionListener接口在javax.servlet.http包中。它能够监听到HttpSession生命周期的变化。
在该接口中定义了两个方法:

2.2 HttpSessionActivationListener接口
该接口位于javax.servlet.http包中,用于监听http会话是否已经active或者将要active。
下面是该接口定义的两个方法:

2.3 HttpSessionBindingListener接口
该接口位于javax.servlet.http包中,它能够监听到对象是否绑定到会话。
它是唯一一个不需要在web.xml中进行注册的监听器接口。定义的方法如下:

2.4 HttpSessionAttributeListener接口
该接口位于javax.servlet.http包中,用于监听HttpSession属性变化。
接口提供了三个方法:

 

3 Servlet请求监听
在Servlet2.4规范中新增一个技术就是可以监听客户端的请求。
一旦能够在监听程序中获取客户端的请求,就可以对请求进行统一处理。
要实现客户端的请求和请求参数设置的监听需要实现两个接口

3.1 ServletRequestListener接口
该接口位于javax.servlet包中,用于监听客户端的请求和离开。该接口定义了两个方法:

3.2 ServletRequestAttributeListener接口
该接口位于javax.servlet包中,可以监听ServletRequest属性的变化。
该接口定义了三个方法:

原文地址:https://www.cnblogs.com/cuglkb/p/6672408.html