码迷,mamicode.com
首页 > 编程语言 > 详细

javaweb 监听器的常用使用

时间:2017-10-03 19:43:00      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:es2017   实例化   image   images   绑定   listener   etc   应用程序   客户端   

监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext、HttpSession、ServletRequest等域对象的创建与销毁事件和监听域对象的属性发生修改的事件,可以在发生前和发生后做一些必要的处理。简单来说就是用来监听一个特定的事件是否发生改变。

监听器按照监听的对象划分为3种:

用于监听应用程序环境(ServletContext)对象的事件监听器。

用于监听用户会话对象(HttpSession)的事件监听器。

用于监听请求消息对象(ServletRequest)的事件监听器。

按照监听的事件划分

1.监听域对象自身的创建和销毁的事件监听器。

2.创建域对象中的属性的增加和删除的事件监听器。

被监听对象及其对应的监听器如下所示:

技术分享

ServletContext是一个全局的储存信息的空间,其监听器从服务器启动调用contextInitialized方法到服务器停止contextDestoryed方法,对于一个web项目,ServletContext对象只能有一个,而ServletContextListener却可以有多个。ServletContext主要用于定时器和全局属性对象。

HttpSession监听器在一次会话发生时被调用sessionCreated方法会话结束时调用sessionDestoryed方法。在一个web项目中可以有多个HttpSession对象,1个HttpSession可以注册多个HttpSessionListener。HttpSession常用于记录访问人数和访问日志。

ServletRequest监听器在客户端请求事件发生时被调用requestInitialized方法事件完成时requestDestoryed方法。一个ServletRequest同样可以注册多个ServletRequestListener,ServletRequest常用于读取参数和记录访问历史。

3.监听绑定到HttpSession域中的某个对象的状态的事件监听器

HttpSessionBindingListener监听器:(不需要web.xml配置)valueBound方法绑定session对象,valueUnbound方法解绑session对象。所谓绑定就是调用session.setAttribute()方法将实现HttpSessionBindingListener接口的对象添加到session中。

HttpSessionListener只需要设置到web.xml中就可以监听整个应用中的所有session。HttpSessionBindingListener必须实例化后放入某一个session中,才可以进行监听。

HttpSessionActivationListener监听器:(不需要web.xml配置)sessionWillPassivate方法钝化,sessionDidActivate方法活化,实现此接口的JavaBean,可以感知自己被活化(从硬盘到内存)和钝化(从内存到硬盘)的过程。如果需要同时保存Session中的JavaBean则JavaBean也要实现Serializable序列化接口。实现此接口的JavaBean与HttpSessionBindingListener一样,不必配置到web.xml中。

 

 

 

javaweb 监听器的常用使用

标签:es2017   实例化   image   images   绑定   listener   etc   应用程序   客户端   

原文地址:http://www.cnblogs.com/sfwy-codeland/p/7622933.html

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