📄 onlineuser.java
字号:
package com.comingnet.onLineUser;
import javax.servlet.http.*;
import org.apache.log4j.*; //引入日志工具包
import org.apache.log4j.BasicConfigurator;
import java.util.*;
import com.comingnet.bean.InserOnlineUser;
public class OnLineUser implements HttpSessionBindingListener{
static Logger logger = Logger.getLogger(OnLineUser.class.getName());
public OnLineUser(){
}
private static Vector users=new Vector(); //静态变量!!!!!!!!!!!!
private int i=1;
public int getCount(){
users.trimToSize();
return users.capacity();
}
public boolean existUser(String userName){
users.trimToSize();
boolean existUser=true;
for(int i=0;i<users.capacity();i++)
{
if(userName.equals((String)users.get(i)))
{
existUser=false;
//logger.info(new Date()+"用户:"+userName+"重复登录!");
break;
}
}
return existUser;
}
public boolean deleteUser(String userName) {
users.trimToSize();
if(!existUser(userName)){
int currUserIndex=-1;
for(int i=0;i<users.capacity();i++){
if(userName.equals((String)users.get(i))){
currUserIndex=i;
break;
}
}
if (currUserIndex!=-1){
users.remove(currUserIndex);
users.trimToSize();
return true;
}
}
return false;
}
public Vector getOnLineUser()
{
return users;
}
/**
* 继承HttpSessionBinddingListener接口的两个方法
*/
public void valueBound(HttpSessionBindingEvent e) {
users.trimToSize();
users.add(e.getName());
logger.info(new java.util.Date()+",用户:"+e.getName()+"登录本系统!");
i++;
for(int i = 0;i < users.size();i++){
}
logger.info(new java.util.Date()+"在线用户数为:"+getCount());
}
public void valueUnbound(HttpSessionBindingEvent e) {
users.trimToSize();
String userName=e.getName();
deleteUser(userName); //删除session数据
InserOnlineUser iou=new InserOnlineUser();
iou.deleteZXB(userName); //删除在线表中的数据
logger.info(new java.util.Date()+",用户:"+userName+"退出本系统!");
logger.info(new java.util.Date()+"在线用户数为:"+getCount());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -