利用HttpSessionListener实现网站在线人数统计功能
为什么80%的码农都做不了架构师?>>>
在网站中经常需要进行在线人数的统计。过去的一般做法是结合登录和退出功能,即当用户输入用户名密码进行登录的时候计数器加1,然后当用户点击退出按钮退出系统的时候计数器减1。这种处理方式存在一些缺点,例如:用户正常登录后,可能会忘记点击退出按钮,而直接关闭浏览器,导致计数器减1的操作没有及时执行;网站上还经常有一些内容是不需要登录就可以访问的,在这种情况下也无法使用上面的方法进行在线人数统计。 我们可以利用Servlet规范中定义的事件监听器(Listener)来解决这个问题,实现更准确的在线人数统计功能。对每一个正在访问的用户,J2EE应用服务器会为其建立一个对应的HttpSession对象。当一个浏览器第一次访问网站的时候,J2EE应用服务器会新建一个HttpSession对象,并触发HttpSession创建事件,如果注册了HttpSessionListener事件监听器,则会调用HttpSessionListener事件监听器的sessionCreated方法。相反,当这个浏览器访问结束超时的时候,J2EE应用服务器会销毁相应的HttpSession对象,触发HttpSession销毁事件,同时调用所注册HttpSessionListener事件监听器的sessionDestroyed方法。 可见,对应于一个用户访问的开始和结束,相应的有sessionCreated方法和sessionDestroyed方法执行。这样,我们只需要在HttpSessionListener实现类的sessionCreated方法中让计数器加1,在sessionDestroyed方法中让计数器减1,就轻松实现了网站在线人数的统计功能。 下面就是利用HttpSessionListener实现在线人数统计的一个例子,这个例子已经在中创软件的J2EE应用服务器InforWeb中测试通过。 首先,编写一个简单的计数器,代码如下:
然后,编写HttpSessionListener实现类,在这个实现类的sessionCreated方法中调用OnlineCounter的raise方法,在sessionDestroyed方法中调用OnlineCounter的reduce方法,代码如下:
再然后,把这个HttpSessionListener实现类注册到网站应用中,也就是在网站应用的web.xml中加入如下内容:
|
转载于:https://my.oschina.net/hpujsj/blog/6821
利用HttpSessionListener实现网站在线人数统计功能相关推荐
- 利用监听器实现网站在线人数统计
ServletContextListenerImpl.java代码 public class ServletContextListenerImpl implements ServletContextL ...
- java怎么快速创建监听类_java_利用java监听器实现在线人数统计,1.在工程中创建监听类SessionLi - phpStudy...
利用java监听器实现在线人数统计 1.在工程中创建监听类SessionListener 并且实现HttpSessionListener接口,代码如下 import javax.servlet.htt ...
- Java监听器实现网站在线人数统计
1.监听器定义 监听器也叫Listener,是Servlet的监听器,它可以监听客户端的请求.服务端的操作等.通过监听器,可以自动激发一些操作,比如监听在线的用户的数量. 2.常见的监听器 1)Ser ...
- 使用监听器Listener实现在线人数统计功能
使用监听器Listener实现在线人数统计功能 目录树及使用的文件 1.首先创建一个CountListener类实现HttpSessionListener接口,实现接口的两个方法:sessionCre ...
- php页面在线人数,也谈php网站在线人数统计
也谈php网站在线人数统计 function checkOnline($userid,$tempid=null) { $conn = connect(); //对于所有用户 //先设置自己为在线 $s ...
- Session实现网站在线人数统计
Session统计网站在线人数 模仿一个B站左下角的人数在线统计: 1.实现一个Session监听器的接口,里面重写了俩个方法,一个是获取Session的方法,一个是销毁Session的方法. 2 ...
- 一分钟为网站添加统计功能
首先我们需要选择第三方平台,推荐使用腾讯分析或者百度统计 为什么使用这些平台呢? 1.首先省事高效,我们不需要自己去开发这些功能,只需要一行代码粘贴到自己的网站中,就可以生效使用了: 2.第二点大公司 ...
- php redis 签到,如何利用 Redis 快速实现签到统计功能
@这是小豪的第十一篇文章 上篇文章 已经对 Redis 基础命令进行了一个大致的学习,接下来我们就需要解决 Issue "增加用户活跃度统计" 啦! 其实当我看到这个 Issue ...
- c语言网络在线人数统计,教你用ASP程序实现网站在线人数统计
欢迎来到小编的文章进行学习阅读,想必大家又有很多问题吧,在这里会有你想要收获的答案,请大家慢慢学习吧!计算机编程语言 在浏览网页的时侯,常常可以看见一些"当前网站上的人数是XXX人" ...
最新文章
- 集成学习-Adaboost
- php删除指定图片吗,PHP 去除图片指定颜色
- linux无显卡运行程序,Ubuntu中在应用程序菜单添加未显示的应用程序启动器
- Leetcode1702. 修改后的最大二进制字符串[C++题解]:思维题
- 简单的jQuery扩展函数-让函数缓冲执行
- JAVA 编程开发入门-张晨光-专题视频课程
- WEB前端 基础知识汇总
- 浏览器的一个请求从发送到返回都经历了什么?
- android UI布局
- JAVA进阶开发之(异常练习题)
- php微信支付接口开发程序(一)
- ActivityGroup 例子
- java管理员登录_登录界面的java代码,分别有教师登录,管理员登录,学生登录,右边是用户名和密码,见图。...
- 有谁知道iphone XR的“R”到底是什么意思?答案可能会让你们无奈
- 常见神经系统疾病的临床诊断及处理原则题库【2】
- 硕士毕业论文写不出来导致严重焦虑,怎么办?
- 首次揭秘 | 淘宝新发布的躺平如何做3D场景化导购?
- 《Cocos Creator游戏实战》滚动数字
- 拥有有趣灵魂的程序员们,程序员访谈(一)
- 镜头分辨率的计算和理解