package com.wen;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
/**
* <p>Title: </p>
* <p>Description:统计在线人数 </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author explorer
* @version 1.0
*/
public class OnlineuserNum {
public OnlineuserNum() {
}
private Vector users = new Vector();
public int getCount() {
users.trimToSize();
return users.capacity();
}
public boolean existUser(String userName) {
users.trimToSize();
boolean existUser = false;
for (int i = 0; i < users.capacity(); i++) {
if (userName.equals( (String) users.get(i))) {
existUser = true;
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;
}
public void valueBound(HttpSessionBindingEvent e) {
users.trimToSize();
if (!existUser(e.getName())) {
users.add(e.getName());
System.out.print(e.getName() + "/t 登入到系统/t" + (new Date()));
System.out.println(" 在线用户数为:" + getCount());
}
else {
System.out.println(e.getName() + "已经存在");
}
}
public void valueUnbound(HttpSessionBindingEvent e) {
users.trimToSize();
String userName = e.getName();
deleteUser(userName);
System.out.print(userName + "/t 退出系统/t" + (new Date()));
System.out.println(" 在线用户数为:" + getCount());
}
}