`

转载: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>


分享到:
评论

相关推荐

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

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

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

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

    JAVA的SESSION精准统计

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

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

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

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

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

    HttpSessionListener监听session的创建及销毁,实现在线用户统计

    用户登录时,调用LoginServlet,将用户名写入application的在线用户列表中,用户退出时,调用LogoutServlet,调用session.invalidate(),交给HttpSessionListener的sessionDestroyed()方法,将用户从在线列表中删除。...

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

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

    Java实现时间监听

    在Java中,我们可以使用`java.util.Timer`类、`java.util.TimerTask`类以及Java 8引入的`java.time`包中的接口来实现时间监听功能。下面将详细介绍这些方法。 1. **使用Timer和TimerTask** `java.util.Timer`类...

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

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

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

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

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

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

    JAVA USB监听器

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

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

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

    监听器实现在线人数统计

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

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

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

    JavaWeb 用session统计在线人数

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

    基于Session的在线用户统计实现

    综上所述,实现基于Session的在线用户统计涉及多个方面,包括Session管理、事件监听、配置文件设置、页面交互和数据处理。通过合理利用这些技术和文件,可以有效地统计并展示网站的在线用户情况。

    监听session的创建到销毁

    - **统计在线用户**:通过监听Session创建和销毁,可以实时统计网站上的在线用户数量。 - **资源释放**:在Session销毁时,可以清理与之关联的数据库连接或其他资源。 - **安全控制**:检测长时间未活动的Session...

    jsp+servlet+java 实现统计在线人数,在线用户.txt

    根据提供的文件信息,我们可以分析出该系统通过JSP、Servlet以及Java技术实现了一个简单的在线用户统计功能。下面将从以下几个方面进行详细解析: ### 一、项目架构与技术栈 本项目主要使用了JSP(Java Server ...

    监听器显示登陆用户列表,并实现踢人功能

    在Java Web开发中,监听器(Listener)是用于监听特定事件的重要组件,它们可以扩展应用程序的功能,例如跟踪用户会话、管理应用上下文等。在本主题中,我们将深入探讨如何利用`HttpSessionAttributeListener`来实现...

Global site tag (gtag.js) - Google Analytics