如果要实现在线用户数量统计,可以在WEB.xml配置Session的监听器:
<!-- Session 监听器 --> <listener> <listener-class> com.cpic.ryx.servlet.SessionCounterListener </listener-class> </listener>
在这个类中,可以实现对Session创建时 和 销毁时候的操作:
public class SessionCounterListener implements HttpSessionListener {
/**
* 新用户登录,累加器加1
*/
public void sessionCreated(HttpSessionEvent hse) {
SessionCounter.raise();
}
/**
* 用户登出,累加器减1
*/
public void sessionDestroyed(HttpSessionEvent hse) {
//当用户退出时,将该用户移除用户列表
Object obj=hse.getSession().getAttribute(Constant.USER_KEY);
if(obj!=null){
UserContainer.getInstaice().delUser(((TUser)obj).getPersonId());
}
SessionCounter.reduce();
}
}