防止重复在线统计在线人数通常由三种办法:通过数据库的记录 使用ServletContext类型的application 采用session
第一种做法较简单但会给数据库造成负担第二种做法还没去实现:)
本文实现了采用session的做法基本思想就是正常登陆的时候建立一个session记录登陆名字此时激发监听器
代码如下
登陆时假设登陆名loginINFO[]建立session记录登陆名字
if(rs_loginnext()){
Login_servletloggerinfo("登陆验证成功");//logj
OnLineUser OLU=new OnLineUser();//
if (!OLUexistUser(loginINFO[])){
Login_servletloggerinfo("重复登陆");
return;
}else{
sessionsetMaxInactiveInterval(); //session的生命周期
sessionsetAttribute(loginINFO[]OLU);
}
2.监听器代码OnLineUser
/*
* 创建日期
*
* 目的:
*
*/
package cnwstcommononLine;
import javaxservlet
import javaxservlet
import orgapachelogjLogger;
import javautil*;
/**
* @author wangshangting
*
* 目的:
* 用于统计在线人数防止统一帐号登陆退出取消账号