现在正在做一个用户在线列表(已登陆),想用HttpSessionListener接口实现。
但发现好像HttpSessionListener只能统计在线人数。
不知有什么方法能实现? 就像聊天室里的那个在线列表一样的。
---------------------------------------------------------------
package SessionCounter; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import com.oztime.right.UserObject; public class SessionCounter implements HttpSessionListener { private static int activeSessions = 0; private static Vector v= new Vector(); public void sessionCreated(HttpSessionEvent se) { } public static void createsession(HttpSessionEvent se ) { UserObject user1 =(UserObject)se.getSession().getAttribute("UserObject"); if(v.contains(user1)==false){ v.add(user1); activeSessions++; System.out.println("===================用户名称=================="+user1.getName()); System.out.println("===================用户数量=================="+activeSessions); } } public void sessionDestroyed(HttpSessionEvent se) { System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"); UserObject user2=(UserObject)se.getSession().getAttribute("UserObject"); if(v.contains(user2)==true){ v.remove(user2); activeSessions--; System.out.println("===================removed=================="+user2.getName()); } } public static void Destroysession(UserObject user) { //System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"); //UserObject user3=(UserObject)se.getSession().getAttribute("UserObject"); System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"+user.getName()); if(v.contains(user)==true){ v.removeElement(user); activeSessions--; System.out.println("====================================="+user.getName()+"---退出登录!!!"); } } public static int getActiveSessions() { return activeSessions; } public static Vector getVector() { return v; } } |
|
===========================================================
在用户登陆后调用的
SessionCounter.createsession(new HttpSessionEvent(session)); SessionCounter.Destroysession(user); //注user 为用户实体 |
分享到:
相关推荐
在Spring boot中通过HttpSessionListener监听器统计在线人数是一种常见的技术实现方式,适用于需要跟踪和管理用户会话状态的Web应用程序。以下是从给定文件中提炼的关键知识点。 首先,了解HttpSessionListener接口...
总结,`HttpSessionListener`可以有效地帮助我们跟踪Web应用的在线用户数,而历史访问量的统计则需要结合其他手段,如`Filter`或`Servlet`,以及适当的日志存储和分析机制。在实际项目中,你还需要考虑性能优化、...
除了Java Web,其他技术栈如Node.js、Python Flask等也有类似监听机制,如Express的中间件或者Flask的before_request/after_request装饰器,同样可以实现在线人数统计。 总结起来,通过监听器实现在线人数统计的...
**JSP 在线人数统计的实现** 在Web开发中,实时在线人数统计是一项常见的需求,它可以帮助网站管理员了解当前有多少用户正在访问网站,以便优化资源分配和服务质量。JSP(JavaServer Pages)作为Java Web开发的重要...
以上就是通过`HttpSessionListener`统计在线人数的基本原理和实现步骤。在实际应用中,你可能还需要根据项目需求进行相应的调整和优化,比如增加日志记录、异常处理等。项目中的`SessionListener`类应该包含了实现...
jsp 统计在线人数实例,是个完整的项目实例,部署即可查看效果! 通过使用:HttpSessionListener、HttpSessionBindingListener来实现. valueBound 方法登录触发。 valueUnbound 方法退出触发。
3. SessionCounter类:在本示例代码中,定义了一个SessionCounter类,该类实现了HttpSessionListener接口,用于统计在线人数。该类有三个方法:sessionCreated、sessionDestroyed和getActiveSessions,分别用于统计...
以上就是利用`HttpSessionListener`实现在线人数统计的基本步骤和原理,通过结合Java后端和JavaScript前端,可以实现动态、实时的在线用户统计功能。这种方法简单实用,但在高并发场景下可能需要优化,以避免频繁的...
总结,Java Web在线人数统计通过监听Session生命周期,结合适当的存储和显示机制,可以实现高效且实时的在线用户数量统计。理解这一机制对于提升Web应用的用户体验和优化服务器资源管理至关重要。
总结来说,使用HttpSessionListener来统计在线人数是一种有效的方法,但在实现时需要注意细节,如确保session数量的准确更新以及处理session生命周期事件。这样,我们就可以通过访问ServletContext来获取当前在线...
此类通过监听器实现了在线人数统计,其原理很简单,就是每当增加一个HttpSession时就触发了实现HttpSessionListener接口的类的SessionCreated()方法,使在线人数加1....
为了实现在线人数统计,我们首先需要创建一个监听器类`OnLineDemo.java`,该类实现了`ServletContextListener`、`HttpSessionListener`和`HttpSessionAttributeListener`接口。 1. **监听器类`OnLineDemo.java`**:...
在这个关于"session统计在线人数.rar"的压缩包中,包含了Java编程语言的一个示例项目,主要用于演示如何通过session对象来跟踪和统计网站或应用程序中的在线用户数量。Java Session是服务器端为每个客户端会话分配的...
因此,更精确的在线人数统计可能需要结合其他技术,如Cookie、数据库记录或实时推送服务。 总结,JavaWeb通过session统计在线人数是基于session生命周期管理的一种常见实践。理解session的工作原理以及如何有效地...
这两个示例可能分别演示了如何实现用户在线判断和在线人数统计的过程,通过代码实例让下载者更好地理解和应用这些技术。在实际项目中,可能还需要考虑并发控制、数据库持久化、分布式环境下的会话共享等问题,以保证...
Java监听器实现在线人数统计的知识点主要包括以下几个方面: 1. Java监听器概念:在Java Web应用程序中,监听器是一种特殊的Java类,它可以监听Web应用中的特定事件。这些事件包括:上下文初始化事件、会话创建和...
在线人数统计 当前在线人数:${onlineCount}"/> ``` 这里的`${onlineCount}`会从`OnlineCountListener`中获取并显示当前的在线人数。 当然,这种方法存在一定的局限性。例如,如果用户长时间不活动,session...
在实现在线人数统计时,可以考虑使用缓存技术,如Redis或Memcached,以减少对后台资源的压力。 综上所述,J2EE登录人数统计不仅涉及了`HttpSession`与`HttpSessionListener`的基本使用,还牵涉到了并发控制、性能...
本教程将深入讲解如何利用Java的监听器机制来统计在线人数,具体涉及到ServletContextListener、HttpSessionListener以及HttpSessionAttributeListener。 首先,`ServletContextListener`是Java Servlet API中的一...
在网站运营过程中,统计在线人数和访问量是至关重要的数据指标,它们可以帮助我们了解网站的活跃度、用户行为以及优化方向。本主题将详细介绍如何使用Java编程语言来实现这一功能,特别是关注当前年、月、日的访问量...