您的位置:首页 > 数据库

一个可以实现在线用户数量查找的程序

2007-05-20 21:50 351 查看
package com.zou.servlet;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class SessionCounterListener implements HttpSessionListener {
    private static final String COUNT_ATTR = "SESSION_COUNTER";
    //求得在线的会员的数量

    public void sessionCreated(HttpSessionEvent hse) {
    int[] counter = this.getCounter(hse);
    counter[0]++;

    }

    public void sessionDestroyed(HttpSessionEvent hse) {
        int[] counter = this.getCounter(hse);
        counter[0]--;

    }
   
    public  int[] getCounter(HttpSessionEvent hse){
        HttpSession session = hse.getSession();
        ServletContext context = session.getServletContext();
        int[] counter = (int[])context.getAttribute(COUNT_ATTR);
        if(counter == null){
            counter = new int[1];
            context.setAttribute(COUNT_ATTR, counter);
        }
        return counter;
       
    }

}
在用以上这个程序的时候,你还要配置一下web.xml这个文件,具体的配置如下,在这里不做解释,只是列出代码。<listener>
    <listener-class>
    com.zou.servlet.SessionCounterListener
    </listener-class>
    </listener>
这是一个监听器,我想对于监听器的解释,自己认为就是用来监呼系统的某些操作,比如系统session的创建和结束,以及系统数据库资源的加载,以上这个程序就是实现了在线用户数量的统计。
页面上可以用以下的代码来显示用户数量
<c:out value="${SESSION_COUNTER[0]}">
这里用到了jstl标签,大家应该很熟悉吧,在此不多做说明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐