监听器是负责监听WEB的各种操作,当相关的事件触发之后将产生事件,并对此事件进行处理,在WEB中可以对application、session、request三种操作进行监听。
1.监听application:
对application监听,实际上就是对ServletContext(Servlet上下文)监听,主要使用以下两个接口:ServletContextListener ,ServletContextAttributeListener
package com.fh.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ServletContextListenerDemo implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
// 上下文初始化时触发
System.out.println("** 容器初始化 --> "
+ event.getServletContext().getContextPath());
}
public void contextDestroyed(ServletContextEvent event) {
// 上下文销毁时触发
System.out.println("** 容器销毁 --> "
+ event.getServletContext().getContextPath());
}
}
web.xml 配置
<listener>
<listener-class>
com.fh.listener.ServletContextListenerDemo
</listener-class>
</listener>
2.监听session
在监听器中,针对于session的监听操作提供了三个接口:HttpSessionListener,HttpSessionAttributeListener,HttpSessionBindingListener
session状态监听:HttpSessionListener接口
- 当需要对创建或销毁session的操作进行监听的时候,可以实现javax.servlet.http.HttpSessionListener接口,此接口定义的方法如下:public void sessionCreated(HttpSessionEvent se),public void
- 当session创建或销毁后,将产生HttpSessionEvent事件,此事件定义的操作如下:public HttpSession getSession()
package com.fh.listener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class HttpSessionListenerDemo implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent event) {
// 创建session触发
System.out.println("** SESSION创建,SESSION ID = " + event.getSession().getId());
}