`

转载:java通过监听Session实现统计在线用户

阅读更多
原文地址:http://www.zhongming.name/index.php/archives/89

import java.util.HashSet;
import java.util.Set;

import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;

import com.qy.pro.entity.system.User;
import com.qy.pro.util.Constant;

public class SessionListener implements ServletContextAttributeListener, HttpSessionAttributeListener {

	private static Set<User> onLineUsers = new HashSet<User>();//用于保存在线用户

	public static Set<User> getOnLineUsers() {
		return onLineUsers;
	}

        //session创建后触发   ,将用户信息添加到静态的集合中
	public void attributeAdded(HttpSessionBindingEvent arg0) {
		if(arg0.getName().equals(Constant.USER_KEY)){
			onLineUsers.add((User)arg0.getValue());
		}
	}
        //清除session时触发
	public void attributeRemoved(HttpSessionBindingEvent arg0) {
		if(arg0.getName().equals(Constant.USER_KEY)){
			onLineUsers.remove((User)arg0.getValue());
		}
	}
        //session被替换时触发
	public void attributeReplaced(HttpSessionBindingEvent arg0) {
		if(arg0.getName().equals(Constant.USER_KEY)){
			onLineUsers.add((User)arg0.getValue());
		}

	}

	public void attributeAdded(ServletContextAttributeEvent arg0) {	

	}
	public void attributeRemoved(ServletContextAttributeEvent arg0) {

	}
	public void attributeReplaced(ServletContextAttributeEvent arg0) {

	}
}


然后在web.xml配置文件中添加以下内容:
<listener>
  <listener-class>com.qy.pro.web.listener.SessionListener</listener-class>
</listener>


分享到:
评论

相关推荐

    JAVA SESSION监听器

    在实际开发中,还可以结合`HttpSessionAttributeListener`来监听特定Session属性的变化,例如用户信息、购物车数据等,这在实现用户行为跟踪、购物车更新等功能时非常有用。 总的来说,Java Session监听器是Web应用...

    SessionManager:Java监听器实现在线人数统计Demo

    总结起来,"SessionManager:Java监听器实现在线人数统计Demo"是一个基于Java Servlet技术的实例,它利用HttpSessionListener监听器来跟踪用户会话的创建和销毁,进而统计在线用户数量。这个过程涉及了Servlet API、...

    Spring boot通过HttpSessionListener监听器统计在线人数的实现代码

    在Spring boot中通过HttpSessionListener监听器统计在线人数是一种常见的技术实现方式,适用于需要跟踪和管理用户会话状态的Web应用程序。以下是从给定文件中提炼的关键知识点。 首先,了解HttpSessionListener接口...

    java监听器的实现和原理详解

    在Java中,事件监听器的实现可以通过接口和类来实现。例如,我们可以定义一个事件监听器接口,包含事件处理方法,然后在事件源中注册事件监听器。当事件源触发事件时,事件监听器将被回调,执行相应的事件处理方法。...

    JAVA的SESSION精准统计

    通过以上这些方法,我们可以构建一个精确且稳定的Java Session统计系统,避免"SESSION可以为负数的BUG",确保服务的稳定性和用户体验。在实践中,根据具体的应用场景和需求,可能还需要考虑更多的细节和优化措施,如...

    Java监听器学习 统计当前在线人数

    在这个场景下,监听器用于追踪用户的连接状态,从而提供实时的在线用户数量。 首先,我们要理解Java中的监听器接口。Java AWT和Swing库提供了多种事件监听器接口,如ActionListener、MouseListener等,但这里我们...

    jsp中监听器实现在线用户统计

    在"jsp中监听器实现在线用户统计"这个场景下,我们需要关注的是如何利用监听器来跟踪和管理在线用户。 首先,我们要理解Servlet监听器的概念。Servlet监听器是实现了Java Servlet API中特定接口的Java类,这些接口...

    day18 监听器 统计在线人数,定时销毁超时session,钝化活化session,在线列表显示和踢人功能防止用户自动登录,在线支付

    在本主题“day18 监听器”中,我们将探讨如何利用监听器来统计在线人数、定时销毁超时session、实现session的钝化与活化,以及如何在系统中显示在线用户列表和实现踢人功能,从而防止用户自动登录。同时,还会涉及...

    session监听小例子

    1. 统计在线用户:通过监听Session的创建和销毁,可以统计网站的实时在线用户数量。 2. 用户行为分析:记录用户Session的活跃时间、访问路径等,用于分析用户行为。 3. 资源管理:在Session销毁时释放占用的资源,...

    .net C# 通过session控制重复登录及在线用户统计

    2. **在线用户统计**: 统计在线用户数量通常涉及到以下几个步骤: - **记录登录状态**:每当用户成功登录时,增加在线用户计数器,并将用户添加到在线用户列表中。可以创建一个全局变量或使用数据库来记录这个...

    java监听器学习 统计在线人数

    Java Web的监听器机制是增强应用程序功能的强大工具,通过`ServletContextListener`、`HttpSessionListener`和`HttpSessionAttributeListener`,我们可以实现对Web应用程序上下文、HttpSession以及session属性的监听...

    java web监听器统计在线用户及人数

    【Java Web 监听器统计在线用户及人数详解】 在Java Web开发中,实时统计在线用户数量是一项重要的功能,这通常涉及到对用户会话(Session)的管理。本篇文章将详细解析如何使用Java Web监听器来实现这一目标。 ...

    java web在线人数统计/监听

    总结,Java Web在线人数统计通过监听Session生命周期,结合适当的存储和显示机制,可以实现高效且实时的在线用户数量统计。理解这一机制对于提升Web应用的用户体验和优化服务器资源管理至关重要。

    JAVA USB监听器

    【JAVA USB监听器】是一种基于Java编程语言实现的软件工具,其主要功能是对USB设备进行实时监控,当USB设备插入时,能够自动检测并复制指定类型的文件到预先设定的目录中。这种工具对于需要频繁从USB设备中获取特定...

    JAVA事件监听器的四种实现方式

    JAVA事件监听器的四种实现方式 JAVA事件监听器是JAVA语言中的一种机制,它允许程序员在特定的事件发生时执行某些操作。事件监听器的实现方式有多种,本篇文章将介绍四种常见的事件监听器实现方式:自身类作为事件...

    java实现监听数据库源码

    在Java编程中,监听数据库的变化是一项重要的任务,特别是在实时...通过以上分析,我们了解了Java实现数据库监听的多种方式,以及需要注意的关键点。具体实现时,应根据项目需求、数据库类型和性能要求选择合适的方法。

    监听器实现在线人数统计

    总结起来,通过监听器实现在线人数统计的核心思路是监听用户登录和登出事件,动态更新一个全局计数器。在实际项目中,可能还需要考虑并发控制、异常处理、数据持久化等复杂情况,以确保统计的准确性和稳定性。

    Java监听键盘鼠标全局事件[定义].pdf

    Java监听键盘事件可以通过使用Windows Hook机制来实现。通过设置键盘Hook,可以捕捉键盘按键事件,并将其传递给Java应用程序。Java应用程序可以通过JNI调用native方法来处理键盘事件。 四、Java监听鼠标事件 Java...

    HttpSessionBindingListener实现在线人员查看即人数统计

    这可以通过访问一个全局维护的在线用户计数器或者查询数据库中的统计信息来实现。 6. **优化与注意事项**:为了防止因用户关闭浏览器而未正确注销导致的在线人数计算错误,可以设置一个心跳机制,定期发送请求以...

    JavaWeb 用session统计在线人数

    在JavaWeb开发中,"用session统计在线人数"是一个常见的需求,主要应用于网站或应用的实时用户活动监控。本文将详细解析如何利用session这一核心技术来实现这个功能。 首先,理解session的基本概念。在Web开发中,...

Global site tag (gtag.js) - Google Analytics