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监听器之实现在线人数显示的主要内容,如果未能解决你的问题,请参考以下文章

Listener监听器,实现一个显示在线用户人数

07.使用Tomcat实现在线人数的监听

Java统计用户在线人数

事件监听之统计当前在线人数案例

Session统计在线人数

监听器(测试在线人数的)第一种 HttpSessionBindingListener