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

JSP笔记——9.Listener介绍

时间:2015-09-03 11:39:05      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:jsp

Listener可以用来监听不同的web事件。使用Listener,首先要有Listener实现类,然后要在web.xml中配置Listener(或者通过注解)。常用的Web事件监听器接口如下:

  • ServletContextListener:监听web应用的启动和关闭

  • ServletContextListener:监听ServletContext范围(application)内容属性的改变

  • ServletRequestListener:监听用户请求

  • ServletRequestAttributeListener:监听ServletRequest范围内的属性变化

  • HttpSessionListener:用于监听session的开始和结束

  • HttpsessionAttributeListener:监听session内属性的改变

ServletContextListener接口中的方法,contestInitialized()跟contextDestroyed()方法分别在应用启动、关闭的时候被触发。


配置Listener

配置Listener十分简单,只需要简单滴指定Listener实现类就行,不能配置初始化参数。只需在xml中用listener子元素的listener-class配置listener的实现类即可。如果配置了一个实现了ServletContextListener的监听类,那么当web应用被启动的时候,该listener的contextInitialized方法会被触发。


使用ServletContextAttributeListener

这个接口可以用于监听application范围内的属性的变化。实现该接口需要实现如下三个方法:

attributeAdded(ServletContextAttributeEvent event):存入属性触发

attributeRemoved(ServletContentAttributeEvent event):删除属性触发

attributeReplaced(ServletContentAttributeEvent event):替换属性触发


使用ServletRequestListener和ServletRequestAttributeListener

ServletRequestListener用于监听用户请求到达。实现该接口需要requestinitialized(servletRequestEvent sre)和requestDestroyed(ServletRequestEvent sre)这两个接口。第一个会在用户请求到达、被初始化时触发,第二个会在用户请求结束、被销毁的时候触发。

ServletRequestAttributeListener用于监听request范围内的变化,需要实现attributeAdded()、attributeRemoved()、attributeReplaced()三个方法

一个监听类如果实现了多个接口,就能即监听application范围变化,又能监听request范围变化。

HttpSessionListener和HttpSessionAttributeListener

HttpSessionListener用于监听session的创建跟销毁,需要实现sessionCreated(HttpSessionEvent se):方法和sessionDestroyed(HttpSessionEvent se)。

类似地,HttpSessionAttributeListener则用于监听HttpSesson范围的变化,需要实现attributeAdded、attributeRemoved、attributeReplaced三个方法。实现HttpSessonListener接口的监听器可以监听每个用户回话的开始和断开,因此可以利用该接口来监听系统用户的在线用户。此外通过分析request可以更详细地得到用户在线的各种信息

本文出自 “指尖轻飞” 博客,谢绝转载!

JSP笔记——9.Listener介绍

标签:jsp

原文地址:http://mengcao.blog.51cto.com/9395052/1691059

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