第三种Servlet程序称为监听Servlet,主要功能是负责监听Web的各种操作,当相关的事件触发后将产生事件,并对此事件进行处理,在Web中可以对application、session和request 3中操作进行监听。
1. 对application监听
2. 对session监听
在监听器中,针对session的监听操作主要使用HttpSessionListener、HttpSessionAttributeListener和HttpSessionBindingListener接口。
(1)session状态监听,HttpSessionListener接口
HttpSessionListener接口定义的方法
方法 | 描述 |
---|---|
public void sessionCreated(HttpSessionEvent event) | session创建时候调用 |
public void sessionDestroyed(HttpSessionEvent event) | session销毁时调用 |
当session创建或销毁后,将产生HttpSessionEvent事件,此事件定义的方法如下:
方法 | 描述 |
---|---|
public HttpSession getSession() | 取得当前的session |
【HttpSessionListenerDemo.java】:
package im.weitang.listener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class HttpSessionListenerDemo implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent event) {
System.out.println("SESSION创建,SESSION ID = " + event.getSession().getId());
}
public void sessionDestroyed(HttpSessionEvent event) {
System.out.println("SESSION销毁,SESSION ID = " + event.getSession().getId());
}
}
【配置Web.xml】
<listener>
<listener-class>im.weitang.listener.HttpSessionListenerDemo</listener-class>
</listener>
当一个用户打开了一个动态页时,后台将显示:
SESSION销毁,SESSION ID = 90D2AA9ECCD1766A31F89D39BA562A43
当一个session被服务器销毁时后台将显示:
SESSION创建,SESSION ID = 90D2AA9ECCD1766A31F89D39BA562A43
(2)session属性监听,HttpSessionAttributeListener
(3)session属性监听,HttpSessionBindingListener