`
daoshud1
  • 浏览: 556611 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

java session统计在线人数

    博客分类:
  • java
 
阅读更多
首先创建监听器,监听器实现ServletContextAttributeListener, HttpSessionAttributeListener两个接口。
public class LoginUserListener implements ServletContextAttributeListener,
		HttpSessionAttributeListener {

	public void attributeAdded(ServletContextAttributeEvent event) {
	}

	public void attributeRemoved(ServletContextAttributeEvent event) {
	}

	public void attributeReplaced(ServletContextAttributeEvent event) {
	}

	/**
	 * session创建后触发该方法,将session信息添加到集合中
	 */
	public void attributeAdded(HttpSessionBindingEvent event) {
		if (event.getName().equals(IConstant.SESSION_TUSER)) {
			//获取session信息
			HttpSession session = event.getSession();
			if(session!=null){
				//获得用户信息
				TUser user=(TUser)event.getValue();
				//获得application信息
				ServletContext application = session.getServletContext();
				//从application中获得session列表
				HashSet<TUser> hashSet=(HashSet<TUser>)application.getAttribute(IConstant.APPLICATION_SESSION);
				//判断列表数据是否为空 如果为空 需要实例化sessionlist
				if(hashSet==null){
					hashSet=new HashSet<TUser>();
				}
				//判断用户的session是否已经存在,如果已经存在则不在添加
				hashSet.remove(user);//先删除,避免重复添加
				//将新增用户添加到list中
				hashSet.add(user);
				application.setAttribute(IConstant.APPLICATION_SESSION, hashSet);
			}
		}
	}

	/**
	 * session被清除里触发,一般用户用户退出时
	 */
	public void attributeRemoved(HttpSessionBindingEvent event) {
		if (event.getName().equals(IConstant.SESSION_TUSER)) {
			//获取session信息
			HttpSession session = event.getSession();
			//获得用户信息
			TUser user=(TUser)event.getValue();
			ServletContext application = session.getServletContext();
			//从application中获得session列表
			HashSet<TUser> hashSet=(HashSet<TUser>)application.getAttribute(IConstant.APPLICATION_SESSION);
			if(hashSet!=null){
				hashSet.remove(user);
				//将剩余的放置在application中
				application.setAttribute(IConstant.APPLICATION_SESSION, hashSet);
			}
		}
	}

	/**
	 * session被替换时触发
	 */
	public void attributeReplaced(HttpSessionBindingEvent event) {
		System.out.println("attributeReplaced");
	}

}

在web.xml中添加监听器
<listener> 
    	<listener-class>com.jz.sys.listener.LoginUserListener</listener-class> 
	</listener> 

在绑定session或清除session时会触发以上方法
分享到:
评论

相关推荐

    JavaWeb 用session统计在线人数

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

    session统计在线人数.rar

    **在线人数计数:Java Session统计实战** 在这个关于"session统计在线人数.rar"的压缩包中,包含了Java编程语言的一个示例项目,主要用于演示如何通过session对象来跟踪和统计网站或应用程序中的在线用户数量。Java...

    java统计在线人数

    在Java Web开发中,统计在线人数是一项常见的需求,它能够帮助我们了解系统当前的活跃用户量。本项目通过实现`HttpSessionListener`接口,每隔一分钟动态更新在线人数,提供了高效且可靠的解决方案。以下是对这个...

    JAVA的SESSION精准统计

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

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

    在此方法内可以实现统计在线人数的逻辑,每当一个新session创建时,在线人数计数增加。 2. `sessionDestroyed(HttpSessionEvent event)`:当HttpSession即将从与当前请求相关联的会话中移除时触发此方法。此方法适用...

    JAVA jsp统计在线人数

    在Java JSP(JavaServer Pages)环境中,统计在线人数是一项常见的需求,这通常涉及到服务器端的会话管理、数据持久化以及实时性处理。这里我们将深入探讨如何利用JSP技术来实现这一功能。 首先,我们需要理解JSP的...

    java web 统计在线人数

    在Java Web开发中,统计在线人数是一项常见的需求,它能够帮助我们了解网站或应用的实时活跃用户数量。这里我们将深入探讨如何实现这一功能。 首先,我们需要理解“在线人数”的定义。通常,它指的是在一定时间窗口...

    java web在线人数统计/监听

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

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

    在Java编程中,监听器(Listener)是一种关键的机制,它允许程序对特定事件的发生做出反应。本主题将深入探讨如何使用...理解Java监听器的概念,并结合适当的工具和技术,能帮助你构建出稳定且高效的在线人数统计系统。

    网站统计在线人数,当前年、月、日访问量JAVA代码

    在网站运营过程中,统计在线人数和访问量是至关重要的数据指标,它们可以帮助我们了解网站的活跃度、用户行为以及优化方向。本主题将详细介绍如何使用Java编程语言来实现这一功能,特别是关注当前年、月、日的访问量...

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

    本教程将深入讲解如何利用Java的监听器机制来统计在线人数,具体涉及到ServletContextListener、HttpSessionListener以及HttpSessionAttributeListener。 首先,`ServletContextListener`是Java Servlet API中的一...

    javaweb开发在线人数统计

    Java Web 开发在线人数统计 在线人数统计是 Java Web 开发中一个常见的功能,当一个用户登录后,显示欢迎信息,同时显示出当前在线的总人数和用户名单。当一个用户退出登录或者 Session 超时值发生时,从在线用户...

    在线人数统计程序(JSP)

    通过学习这个JSP在线人数统计程序示例,你可以深入了解如何在JSP中使用Session进行状态管理,并且掌握如何设计和实现一个基本的在线人数统计功能。这将有助于提升你的Web开发技能,更好地应对实际项目的需求。

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

    当用户注销、关闭浏览器或session超时时,对应的session对象将被解绑,此时应相应地更新在线人数。 5. **显示在线人数**:你可以创建一个Servlet或JSP页面,实时显示当前在线人数。这可以通过访问一个全局维护的...

    判断用户是否在线和实时统计在线人数

    在IT行业中,尤其是在Web开发领域,判断用户是否在线和实时统计在线人数是常见的需求,这有助于提供更好的用户体验和服务。这两个概念通常与Java Web和JSP技术密切相关,涉及到HTTP会话管理和数据结构的运用。 首先...

    如果统计在线人数应用程序

    根据提供的文件信息,我们可以深入探讨如何在Web应用中实现在线用户人数统计这一功能。此功能在许多场景下都非常实用,比如在线教育平台、直播系统、社区论坛等,它可以帮助管理员实时了解系统的负载情况,同时也为...

    监听器实现在线人数统计

    此外,需要注意的是,基于Session的在线人数统计可能会存在一些问题,例如用户关闭浏览器但未正式登出,此时Session可能会因浏览器关闭而意外结束,导致在线人数统计不准确。为了解决这个问题,可以结合应用服务器的...

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

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

    JSP 在线人数统计的实现

    - 除了基于Session的统计,还可以结合Cookie、数据库或其他分布式数据存储方案来实现更准确的在线人数统计。 - 可以通过异步更新或者定时任务,定期将统计信息持久化,避免因服务器重启导致数据丢失。 以上就是...

Global site tag (gtag.js) - Google Analytics