onlineuser.java
来自「功能是公安和学校的管理系统,用struts+hibernate+spring等匡」· Java 代码 · 共 91 行
JAVA
91 行
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 + =
减小字号Ctrl + -
显示快捷键?