您的位置:首页 > 编程语言 > Java开发

java web项目监听session查看在线人数

2017-01-14 14:48 363 查看
Servlet中有一个session监听接口:HttpSessionListener,我们可以通过HttpSessionListener监听接口实现对当前在线人数的监听

HttpSessionListener是个session监听器,它有两个方法:

public void sessionCreated(HttpSessionEvent event){}

public void sessionDestroyed(HttpSessionEvent event){}

前者是在session被创建的时候执行,后者是在session被销毁的时候执行,通过对当前session的监听,达到统计在线人数的效果。

首先web.xml中添加如下代码:

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


新建一个Listener类CountLineListener.java,代码如下:

package cn.wuzhiti.web.listener;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;      ublic 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人。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java java web session