分享

使用HttpSessionListener实现在线统计和在线时间

 Blex 2012-02-24

import javax.servlet.*;
import javax.servlet.http.*;
public final class Test2 implements HttpSessionListener {
    private int count = 1;
    private ServletContext context = null;

    public synchronized void sessionCreated(HttpSessionEvent se) {
    count++;
    se.getSession().setMaxInactiveInterval(30);//设置最长休眠时间,单位秒
    log("sessionCreated(′" + se.getSession().getId() + " count="+count);
    se.getSession().setAttribute("count",new Integer(count));
    log("it's create time:"+se.getSession().getCreationTime());    
   
    log("MaxInactiveTnterval:"+se.getSession().getMaxInactiveInterval());//最大休眠时间,以秒为单位
    System.out.println(se.getSession().getId());
    System.out.println(se.getSession().getCreationTime());
    }

    public synchronized void sessionDestroyed(HttpSessionEvent se) {
    count--;
    se.getSession().setAttribute("count",new Integer(count));
    log("one session is time out or Destroyed!");

log("it's LastAccessedTime:"+se.getSession().getLastAccessedTime());//和session创建时候的时间差就是在线时间

    }

    public int getCount() {
    return this.count;
    }

    public void addCount(){
    count++;
    }

    private void log(String message) {

    if (context != null)
        context.log("context is exists:SessionListener: " + message);
    else
        System.out.println("context is null:SessionListener: " + message);

     //没有context存在就用系统输出了

    }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多