HttpSessionListener实现网站在线人数统计
首先,编写一个简单的计数器,代码如下:OnlineCounter.java
然后,编写HttpSessionListener实现类,在这个实现类的sessionCreated方法中调用OnlineCounter的raise方法,在sessionDestroyed方法中调用OnlineCounter的reduce方法,代码如下:MySessionListener.java
以上两个Java文件放到同一个包下。 再然后,把这个HttpSessionListener实现类,即MySessionListener.java,注册到网站应用中,也就是在网站应用的web.xml中加入如下内容:
这样,基本功能已经实现。
在后台 调用OnlineCounter.getOnline();这个方法就可以得到在线人数。 如若在前端显示,问题就不复杂了,再次不一一赘述。 (望大家交流学习,批评指正,谢谢!)
package com.common.session; public class OnlineCounter { private static long online = 0; public static long getOnline() { return online; } public static void raise(){ online++; } public static void reduce(){ online--; } }
然后,编写HttpSessionListener实现类,在这个实现类的sessionCreated方法中调用OnlineCounter的raise方法,在sessionDestroyed方法中调用OnlineCounter的reduce方法,代码如下:MySessionListener.java
package com.common.session; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class MySessionListener implements HttpSessionListener { public void sessionCreated(HttpSessionEvent event) { OnlineCounter.raise(); } public void sessionDestroyed(HttpSessionEvent event) { OnlineCounter.reduce(); } }
以上两个Java文件放到同一个包下。 再然后,把这个HttpSessionListener实现类,即MySessionListener.java,注册到网站应用中,也就是在网站应用的web.xml中加入如下内容:
<web-app> ...... <listener> <listener-class> com.common.session.MySessionListener </listener-class> </listener> ............ </web-app>注意:web.xml中如果存在一个其他的
<listener>
..........
<pre name="code" class="html" style="font-weight: bold;"></listener>不要管它,把中间这段代码复制进去就行,都是相对独立的部分。
这样,基本功能已经实现。
在后台 调用OnlineCounter.getOnline();这个方法就可以得到在线人数。 如若在前端显示,问题就不复杂了,再次不一一赘述。 (望大家交流学习,批评指正,谢谢!)
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 关于创建String对象过程的内存分配
- 下一篇: jsp 实现在线人数统计