JavaEE中一共有8个监听器,分为了3种:
1、用来监听三大作用域的创建和销毁的监听器,都是接口:
ServletContextListener:用来监听ServletContext对象创建和销毁的监听器。
HttpSessionListener:用来监听HttpSession对象创建和销毁的监听器。
ServletRequestListener:用来监听ServletRequest对象创建和销毁的监听
2、用来监听三大作用域中属性变化的监听器
ServletContextAttributeListener
HttpSessionAttributeListener
ServletRequestAttributeListener
3、使 JavaBean 自己感知自己在 Session中状态变化的监听器,
这两个监听器很特殊,不需要自己去写类实现也不需要在 web.xml 中注册,
只要使 JavaBean 实现这个接口就能起作用:
HttpSessionBindingListener
public void valueBound(HttpSessionBindingEvent event) {
System.out.println("当当前javabean对象被绑定到session域中时,javabean自己感知到自己被绑定到了session中,从而触发此方法...");
}
public void valueUnbound(HttpSessionBindingEvent event) {
System.out.println("当当前javabean对象被移除出session时,javabean自己感知到自己被移除出session从而触发此方法...");
}
HttpSessionActivationListener
public void sessionDidActivate(HttpSessionEvent se) {
System.out.println("javabean感知到自己随着session被活化了..触发此方法...");
}
public void sessionWillPassivate(HttpSessionEvent se) {
System.out.println("javabean感知到自己随着session被钝化了..触发此方法..");
}
注册监听器
<listener>
<listener-class>com.itheima.listener.MyHSesssionListener</listener-class>
</listener>