牛骨文教育服务平台(让学习变的简单)
博文笔记

HttpSessionListener实现网站在线人数统计

创建时间:2014-11-05 投稿人: 浏览次数:2264
首先,编写一个简单的计数器,代码如下:OnlineCounter.java
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();这个方法就可以得到在线人数。 如若在前端显示,问题就不复杂了,再次不一一赘述。 (望大家交流学习,批评指正,谢谢!)






声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。