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 实现在线人数统计
