java web中的监听器

Java 中 Listener监听器作用

1.1    Listener对象分类
Servlet的Listener监听器包括三种类型:
1、ServletContextListener    监听ServletContext对象

Java代码
  1. public void contextInitialized(ServletContextEvent event);   
  2. public void contextDestoryed(ServletContextEvent event);  
Java代码   收藏代码
  1. public void contextInitialized(ServletContextEvent event);  
  2. public void contextDestoryed(ServletContextEvent event);  


2、HttpSessionListener 监听Session对象

Java代码
  1. public void sessionCreated(HttpSessionEvent event);   
  2. public void sessionDestoryed(HttpSessionEvent event);  
Java代码   收藏代码
  1. public void sessionCreated(HttpSessionEvent event);  
  2. public void sessionDestoryed(HttpSessionEvent event);  


1、    HttpRequestListener 监听Request对象

Java代码
  1. public void requestinitialized(ServletRequestEvent event);   
  2. public void requestDestoryed(ServletRequestEvent event);  
Java代码   收藏代码
  1. public void requestinitialized(ServletRequestEvent event);  
  2. public void requestDestoryed(ServletRequestEvent event);  


Web.xml文件配置

Xml代码
  1. <listener>  
  2.     <listener-class>listener.MyListener</listener-class>  
  3. </listener>  
Xml代码   收藏代码
  1. <listener>  
  2.         <listener-class>listener.MyListener</listener-class>  
  3.     </listener>  


1.2    Listener按属性分类
按照监听事件类型划分分为如下类型:
1、    用于监听域对象自身的创建和销毁的事件监听器。
2、    用于监听域对象的属性的增加和删除的事件监听器。
3、    用于监听绑定到HttpSession域中的某个对象的状态的事件监听器。
1.2.1    监听对象的属性事件监听器接口

1、    attributeAdd当被监听域对象中增加属性时会调用该系列监听器

Java代码
  1. public void attributeAdded(ServletContextAttributeEvent event);   
  2. public void attributeAdded(HttpSessionBindingEvent event);   
  3. public void attributeAdded(ServletRequestAttributeEvent event);  
Java代码   收藏代码
  1. public void attributeAdded(ServletContextAttributeEvent event);  
  2. public void attributeAdded(HttpSessionBindingEvent event);  
  3. public void attributeAdded(ServletRequestAttributeEvent event);  


2、    attributeRemoved当被监听域对象中删除属性时会调用该系列监听器

Java代码
  1. public void attributeRemoved(ServletContextAttributeEvent event);   
  2. public void attributeRemoved(HttpSessionBindingEvent event);   
  3. public void attributeRemoved(ServletRequestAttributeEvent event);  
Java代码   收藏代码
  1. public void attributeRemoved(ServletContextAttributeEvent event);  
  2. public void attributeRemoved(HttpSessionBindingEvent event);  
  3. public void attributeRemoved(ServletRequestAttributeEvent event);  


3、    attributeReplaced当被监听域对象中属性变更时时会调用该系列监听器

Java代码
  1. public void attributeReplaced(ServletContextAttributeEvent event);   
  2. public void attributeReplaced(HttpSessionBindingEvent event);   
  3. public void attributeReplaced(ServletRequestAttributeEvent event);  
Java代码   收藏代码
  1. public void attributeReplaced(ServletContextAttributeEvent event);  
  2. public void attributeReplaced(HttpSessionBindingEvent event);  
  3. public void attributeReplaced(ServletRequestAttributeEvent event);  



注:使用属性监听器需要继承如下接口,实现以上方法

Java代码
  1. ServletContextAttributeListener,   
  2.   
  3. HttpSessionAttributeListener,   
  4. ServletRequestAttributeListener  
Java代码   收藏代码
  1. ServletContextAttributeListener,  
  2.   
  3. HttpSessionAttributeListener,   
  4. ServletRequestAttributeListener  


1.2.2    感知Session绑定的事件监听器
保存到Session域中的对象可以有多种状态:
1、    绑定到Session域中
2、    从Session域中解除绑定
3、    Session对象持久化到存储设备
4、    Session对象从一个存储设备中恢复
可以使用

Java代码
  1. HttpSessionBindingListener、HttpSessionActivationListener  
Java代码   收藏代码
  1. HttpSessionBindingListener、HttpSessionActivationListener  

两个监听接口实现JavaBean对象的绑定,从而了解JavaBean对象在Session域的状态。

Java代码
  1. HttpSessionBindingListener   
  2. public void valueBound(HttpSessionBindingEvent event);   
  3. public void valueUnbound(HttpSessionBindingEvent event);   
  4. HttpSessionActivationListener   
  5. public void sessionWillPassivate(HttpSessionEvent event);  
Java代码   收藏代码
  1. HttpSessionBindingListener  
  2. public void valueBound(HttpSessionBindingEvent event);  
  3. public void valueUnbound(HttpSessionBindingEvent event);  
  4. HttpSessionActivationListener  
  5. public void sessionWillPassivate(HttpSessionEvent event);  


注:当Session对象持久化到文件系统时,激活上面方法。

Java代码
  1. public void sessionDidActivate(HttpSessionEvent event);  
Java代码   收藏代码
  1. public void sessionDidActivate(HttpSessionEvent event);  


注:当Session对象从文件系统恢复时,激活上面方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值