码迷,mamicode.com
首页 > Web开发 > 详细

JSP学习笔记--Listener

时间:2015-07-08 16:03:59      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

JSP中的监听器  
  Web程序在服务器运行的过程中,程序内部会发生多事件,如Web应用的启动和停止、Session会话的开始和销毁、用户请求的开始和结束等等。有时程序员需要在这些事件发生的时机执行一些处理,以完成特定的任务(如通过监控Session的开始和结束,可统计网站的在线人数)。事实上,这些事件是可以编码处理的,Servelt API提供了大量的监听器Listener来监听Web程序中发生的这些事件,程序员只要实现恰当的特定的事件监听器,就可以对该事件进行处理。  

使用监听器需要两个步骤:
第一,实现特定的Listener类,编写事件处理;
第二,通过web.xml(或者Annotation)配置启用该Listener。

总共有8个Listener接口,分为3类
1. 与ServletContext有关的Listener接口: 
  ServletContextListener  
  ServletContextAttributeListener 
2. 与HttpSession有关的Listener接口:  
  HttpSessionListener  
  HttpSessionAttributeListener
  HttpSessionActivationListener 
  HttpSessionBindingListener 
3. 与ServletRequest有关的Listener接口:  
  ServletRequestListener
  ServletRequestAttributeListener 

监听器接口 实现方法 事件 执行时机
ServletContextListener   contextInitialized()
contextDestroyed()
ServletContextEvent   加载Web应用时(如启动服务器后),会调用contextInitialized(),移除Web应用时(服务器停止),会调用contextDestroyed ()方法。
ServletContextAttributeListener  attributeAdded()  
attributeReplaced()  
attributeRemoved()
ServletContextAttributeEvent  向application设置属性、  置换、移除属性时依次调用这 三个方法
HttpSessionListener   sessionCreated()
sessionDestroyed () 
HttpSessionEvent    在HttpSession对象创建和销毁时会依次调用这两个方法
HttpSessionAttributeListener  attributeAdded()
attributeReplaced()
attributeRemoved()
HttpSessionBindingEvent  向Session设置属性、  置换、移除属性时依次调用这三个方法 
HttpSessionActivationListener  sessionDidActivate()  
sessionWillPassivate()
HttpSessionEvent  当session对象为了资源利用或负载平衡等原因而必须暂时储存至硬盘或其它储存器时(透过对象序列化),所作的动作称之为Passivate,而硬盘或储存器上的session对象重新加载JVM时所采的动作称之为Activate,所以,这两个方法分别执行于Activeate之后与Passivate之前
HttpSessionBindingListener  valueBound()
valueUnbound() 
HttpSessionBindingEvent 

在HttpServletRequest对象创建和销毁时会依次调用这两个方法

ServletRequestListener  requestInitialized()
requestDestroyed()
RequestEvent   向request对象设置属性、置 换、移除属性时依次调用这三 个方法
ServletRequestAttributeListener attributeAdded()  
attributeReplaced()  
attributeRemoved()
ServletRequestAttributeEvent  其实例被加入至session对象的属性中,则调valueBound(),若从session对象的属性中移除,则调valueUnbound();实现 HttpSessionBindingListener接口的类无需在web.xml配置

JSP学习笔记--Listener

标签:

原文地址:http://www.cnblogs.com/gnivor/p/4630472.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!