public class OnLineUser implements HttpSessionBindingListener{
public OnLineUser(){
}
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() + " 系统中已经存在.") ;
}
}
package gongfei.cmc.articles.onlinecounter;
public class OnlineCounter {
private static long online = 0;
public static long getOnline() {
return onl……
[/Quote]
这个方法用过,但是用户进来时是增加,但用户关闭浏览器了没有减少。
package gongfei.cmc.articles.onlinecounter;
public class OnlineCounter {
private static long online = 0;
public static long getOnline() {
return online;
}
public static void raise(){
online++;
}
public static void reduce(){
online--;
}
}