java监听器之实现在线人数显示
Posted 桔子桑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java监听器之实现在线人数显示相关的知识,希望对你有一定的参考价值。
在码农的世界里只有bug才能让人成长,The more bugs you encounter, the more efficient you will be!
java中的监听器分为三种:ServletRequestListener、HttpSessionListener、ServletContextListener;
ServletRequest--请求,在客户端对服务器发生请求(访问)时发生,请求一次发生一次(不考虑请求转发),
请求结束,该对象销毁;
HttpSession--会话,单个用户在某段时间内(Tomcat默认为30min,可以设置),自第一次发生请求(访问)
时创建,直到过期,该对象销毁;
ServletContext--上下文,该对象存在于服务器端,自服务器开启时创建,直到服务器关闭该对象销毁。
那么,就有这样一个思路:一个用户持续对网站的访问,请求数会很多,但是该用户多次请求的Session却一
直都是一个(唯一性)。我们可以在第一次访问时把Session对象的ID存到服务器(上下文),后面每一次请求的
时候,我们可以检查,该请求的Session对象是否已经在服务器(上下文),如果在,说明这次请求和之前的某次
请求是同一个用户,如果不在,那么将这个请求产生的新Session对象的ID存到服务器(上下文)。Session对象到
期,自然就被销毁(可以看做用户长时间每活动,被迫下线了),那么将这个SessionID所在的整条信息删除,也
就是可以看做,当前访问用户减少一个。其实除了多次请求产生的Session具有唯一性之外,发出请求的设备也是
具有唯一性的,我们可以通过获得设备的IP进行标识。我们可以将这两个信息存到用户类中,每个用户对象都有这
两个属性,并且是唯一的。
1.ServletRequest
以上是关于java监听器之实现在线人数显示的主要内容,如果未能解决你的问题,请参考以下文章