通过session判断多少人在线

本文介绍如何通过实现HttpSessionListener接口来统计网站的在线用户数量。通过覆盖sessionCreated和sessionDestroyed方法,可以在用户登录和登出时分别增加和减少在线人数。
Servlet中有一个session监听接口:HttpSessionListener,我们可以通过HttpSessionListener监听接口实现对当前在线人数的监听HttpSessionListener是个session监听器,它有两个方法:public void sessionCreated(HttpSessionEvent event){}public void sessionDestroyed(HttpSessionEvent event){}前者是在session被创建的时候执行,后者是在session被销毁的时候执行,通过对当前session的监听,达到统计在线人数的效果。首先web.xml中添加如下代码:
[xml]预览复制

<!-- 用户在线数和登录数统计 -->  

<listener>  

 <listener-class>cn.wuzhuti.web.listener.CountLineListener</listener-class>   

<stener>  
新建一个Listener类CountLineListener.java,代码如下:
[java]预览复制

package cn.wuzhiti.web.listener;   

   

import javax.servlet.ServletContext;   

import javax.servlet.http.HttpSessionEvent;   

import javax.servlet.http.HttpSessionListener;   

   

public class CountLineListener implements HttpSessionListener{   

   

     /*********** 

     * 创建session时调用 

     */   

     public void sessionCreated(HttpSessionEvent event) {   

         System.out.println("创建session......");   

         ServletContext context=event.getSession().getServletContext();   

         Integer count=(Integer)context.getAttribute("count");   

         if(count==null){   

             count=new Integer(1);   

         }else{   

             int co = count.intValue( );   

             count= new Integer(co+1);   

         }   

         System.out.println("当前用户人数:"+count);   

         context.setAttribute("count", count);//保存人数   

   

     }   

   

     /************ 

     * 销毁session时调用 

     */   

     public void sessionDestroyed(HttpSessionEvent event) {   

         System.out.println("销毁session......");   

         ServletContext context=event.getSession().getServletContext();   

         Integer count=(Integer)context.getAttribute("count");   

         int co=count.intValue();   

         count=new Integer(co-1);   

         context.setAttribute("count", count);   

         System.out.println("当前用户人数:"+count);   

    }   

   

}  
这样在用户后创建Session的时候sessionCreateed会被调用,在线人数增加 1人;在退出登录删除Session时sessionDestroyed会被调用,在线人数减少1人。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值