首页 > 学院 > 开发设计 > 正文

Listener监听器

2019-11-08 00:44:55
字体:
来源:转载
供稿:网友

监听器

监听器也叫Listener,是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。

Servlet监听器的种类

ServletContextListenerServletContextAttributeListenerHttpsessionListenerHttpSessionActivationListenerHttpSessionAttributeListenerServletRequestListenerServletRequestAttributeListener

具体描述摘自:

http://blog.csdn.net/gaogaoshan/article/details/7423132

1、对Servlet上下文进行监听

可以监听ServletContext对象的创建和删除以及属性的添加、删除和修改等操作。该监听器需要使用到如下两个接口类:

ServletContextAttributeListener:监听对ServletContext属性的操作,如增加、删除、修改操作。ServletContextListener:监听ServletContext。当创建ServletContext时,激发contextInitialized (ServletContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContext- Event sce)方法。

2、监听Http会话

可以监听Http会话活动情况、Http会话中属性设置情况,也可以监听Http会话的active、paasivate情况等。 该监听器需要使用到如下多个接口类:

HttpSessionListener:监听HttpSession的操作。当创建一个Session时,激发session Created (SessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se) 方法。HttpSessionActivationListener:用于监听Http会话active、passivate情况。HttpSessionAttributeListener:监听HttpSession中属性的操作。当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se) 方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。

3、对客户端请求进行监听

对客户端的请求进行监听是在Servlet 2.4规范中新添加的一项技术,使用的接口类如下:

ServletRequestListener接口类。ServletRequestAttrubuteListener接口类。

实例

监听HttpSession中属性的操作

创建一个监听器

1


填写类名

2


选择监听器HttpSessionAttributeListener

3


SessionAttrListener.java

import javax.servlet.annotation.WebListener;import javax.servlet.http.HttpSessionAttributeListener;import javax.servlet.http.HttpSessionBindingEvent;/** * application Lifecycle Listener implementation class SessionAttrListener * */@WebListenerpublic class SessionAttrListener implements HttpSessionAttributeListener { /** * Default constructor. */ public SessionAttrListener() { // TODO Auto-generated constructor stub } /** * 添加一个session属性的时候触发 * @see HttpSessionAttributeListener#attributeAdded(HttpSessionBindingEvent) */ public void attributeAdded(HttpSessionBindingEvent arg0) { System.out.PRintln(arg0.getName()); System.out.println(arg0.getValue()); System.out.println("添加了一个session"); } /** * 移除一个session属性的时候触发 * @see HttpSessionAttributeListener#attributeRemoved(HttpSessionBindingEvent) */ public void attributeRemoved(HttpSessionBindingEvent arg0) { System.out.println("删除了一个session"); } /** * 更新session属性的时候触发 * @see HttpSessionAttributeListener#attributeReplaced(HttpSessionBindingEvent) */ public void attributeReplaced(HttpSessionBindingEvent arg0) { // TODO Auto-generated method stub }}

当登录成功的时候就会监听到session的属性变化

4


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表