package com.tocersoft.base.filter; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent; import com.tocersoft.member.entity.Member; //session监听器. // // 在WEB容器的web.xml中添加本监听器的调用,具体格式如下:(其中的"[","]"分别用" <",">"替换) // // [listener][listener-class]com.tocersoft.base.filter.SessionListener[/listener-class][/listener] // // 其中“com.tocersoft.base.filter.SessionListener”根据类的实际位置定义 // public class SessionListener implements HttpSessionAttributeListener { // 定义监听的session属性名. public final static String LISTENER_NAME = "user"; // 定义存储客户登录session的集合. private static List sessions = new ArrayList(); // 加入session时的监听方法. public void attributeAdded(HttpSessionBindingEvent sbe) { if (LISTENER_NAME.equals(sbe.getName())) { Member member = (Member)sbe.getValue(); // 判断存入的对象是否包含在list中,如果已包含则不添加 // if(!getSessions().contains(member)){ // sessions.add(member); // } if(getSessions().size() == 0 ){ sessions.add(member); }else{ // 判断存入的对象是否包含在list中,如果已包含则不添加 boolean bl = true; for (int i = 0; i < getSessions().size(); i++) { if(getSessions().get(i).getId().equals(member.getId())){ bl = false; break; } } if(bl){ sessions.add(member); } } } } // session失效时的监听方法 public void attributeRemoved(HttpSessionBindingEvent sbe) { if (LISTENER_NAME.equals(sbe.getName())) { sessions.remove(sbe.getValue()); } } // session覆盖时的监听方法. public void attributeReplaced(HttpSessionBindingEvent sbe) { } // 返回客户登录session的集合. public static List getSessions() { return sessions; } }
相关推荐
attributeAdded(HttpSessionBindingEvent) - Method in interface javax.servlet.http.HttpSessionAttributeListener Notification that an attribute has been added to a session. attributeAdded...
在这个“Servlet监听器例子”中,我们将深入探讨如何使用`ServletContextListener`, `HttpSessionListener`, 和 `HttpSessionAttributeListener`来实现不同的功能。 首先,`ServletContextListener`接口用于监听...
在Java Web开发中,`HttpSessionBindingListener`接口是一个非常重要的工具,用于监听session中的对象绑定和解绑事件。这个接口提供了对用户会话状态变化的观察能力,从而可以实现一些高级功能,如在线人员查看、...
在本主题中,我们将深入探讨如何利用`HttpSessionAttributeListener`来实现显示登录用户列表以及踢人功能。 `HttpSessionAttributeListener`是Servlet规范定义的一种监听器接口,它允许我们监听HTTP会话中的属性...
`HttpSessionListener`可以监听Session的创建和销毁,而`HttpSessionAttributeListener`则可以监听Session属性的添加、移除和替换。 1. **创建Session监听器** 创建一个实现了`HttpSessionListener`接口的类,例如...
HttpSessionAttributeListener接口的方法: voidattributeAdded(HttpSessionBindingEventhsbe) 若有对象加入Session的范围,通知正在收听的对象 voidattributeRemoved(HttpSessionBindingEventhsbe) 若有对象自...
实现监听器通常需要创建一个类,该类实现特定的监听器接口,比如要监听域对象属性变更,我们可以实现`HttpSessionAttributeListener`。在类中定义对应事件的方法,例如`attributeAdded()`, `attributeRemoved()` 和 ...
- **`HttpSessionAttributeListener`**:这个接口提供了三个方法,用于监听`HttpSession`属性的变化。 - `attributeAdded(HttpSessionBindingEvent se)`:当向会话中添加了一个新的属性时调用。 - `...
在实现逻辑和流程设计中,Servlet监听器可以与HttpSessionAttributeListener结合使用,来实现在线考生的登录验证、断点续答和实时保存等功能。具体来说,可以在Servlet监听器中维护一个在线考生的列表容器,存放在线...
HttpSessionListener提供了对Session创建、销毁事件的监听,而HttpSessionAttributeListener则可以监听Session属性的变化,比如添加、移除和替换事件。 以下是创建一个简单的HttpSessionListener的例子: ```java ...
- `HttpSessionAttributeListener` 是另一个Servlet API接口,专门用于监听Session属性的添加、移除和替换操作。 - `attributeAdded(HttpSessionBindingEvent event)` 在向Session添加新属性时被调用,可以用来...
本教程将深入讲解如何利用Java的监听器机制来统计在线人数,具体涉及到ServletContextListener、HttpSessionListener以及HttpSessionAttributeListener。 首先,`ServletContextListener`是Java Servlet API中的一...
这里主要涉及到了Java Web应用中的监听器,尤其是`HttpSessionListener`和`HttpSessionAttributeListener`。 ### 标题解析:Java可以监听客户端的请求、服务端的操作等 这个标题明确指出了Java可以通过特定的机制...
- 当调用`removeAttribute()`方法时,会触发`HttpSessionAttributeListener`的`attributeRemoved()`方法,该方法会在属性从会话中移除时被调用。 #### 3. 调用`HttpServletRequest`的`setAttribute()`方法时,会...
2. `HttpSessionAttributeListener`: 提供了四个方法,`attributeAdded(HttpSessionBindingEvent se)`、`attributeRemoved(HttpSessionBindingEvent se)`、`attributeReplaced(HttpSessionBindingEvent se)`分别用于...
学习servlet的实例 说明文件 blog ...类 HttpSession Cookie HttpSessionAttributeListener HttpServlet HttpServletRequest HttpServeltResponse <br>
企业drp系统经典实现。 包括: v1.0 ... * HttpSessionAttributeListener * ServletContextListener v3.1 * JfreeChart的应用 v3.2 * 采用Ajax实现下拉列表的联动 v3.3 * 验证码的使用
javax.servlet.Filter javax.servlet.Servlet javax.servlet.FilterChain ...javax.servlet.FilterConfig ...javax.servlet.http.HttpSessionAttributeListener javax.servlet.http.HttpSessionActivationListener
`HttpSessionListener`用于监听会话的创建和销毁事件,而`HttpSessionAttributeListener`则可以监听到会话属性的变化。 在本案例中,我们可能会实现`HttpSessionListener`,以便在会话开始和结束时执行相应的操作。...
4. **HttpSessionAttributeListener**:此接口允许开发者监听HttpSession中的属性变化,包括添加`attributeAdded(HttpSessionBindingEvent se)`、移除`attributeRemoved(HttpSessionBindingEvent se)`和更新`...