首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

jsp网页中统计在线人数有关问题~

2012-03-11 
jsp网页中统计在线人数问题~~~~急~~~~~~~~~~~packagecrmimportjavax.servlet.http.*importjava.util.*p

jsp网页中统计在线人数问题~~~~急~~~~~~~~~~~
package   crm;

import   javax.servlet.http.*;
import   java.util.*;    

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()+ "已经存在 ");  
        }    

        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());  
        }    
}

jsp:
<%@   page   contentType= "text/html;charset=UTF-8 "   %>  
<%@   page   import= "java.util.* "   %>  

<jsp:useBean   id= "onlineuser "   class= "crm.OnlineUser "   scope= "application "/>  
<html>  
<head>  
</head>  
<body>  
<center>  
<p> <h1> 登陆成功,欢迎访问 </h1> </p>  
</center>  
<%  
 
out.println( " <br> 当前在线用户人数: <font   color=red> "+onlineuser.getCount()+ " </font> <br> ");  
/*String   ip   =   request.getRemoteAddr();  
out.println( " <br> IP: <font   color=red> "+ip+ " </font> <br> ");   */
Vector   vt=onlineuser.getOnLineUser();  
Enumeration   e   =   vt.elements();  
out.println( "在线用户列表 ");  
out.println( " <table   border=1> ");  
out.println( " <tr> <td> 用户名 </td> </tr> ");  
while(e.hasMoreElements()){  
out.println( " <tr> <td> ");  
out.println((String)e.nextElement()+ " <br> ");  
out.println( " </td> </tr> ");  
}  
out.println( " </table> ");  

%>  
<center>  
<p>   </p>  
[ <a   href= "javascript:window.close() "> 关闭窗口 </a> ]  

</center>  

</body>  
</html>

为什么,每次得到的getCount()都是0

[解决办法]
登陆成功后加入登陆用户了吗?没看见由addUser什么的
[解决办法]
给个邮箱 发你一个阿建计数
[解决办法]
private Vector users=new Vector();


Vector vt=onlineuser.getOnLineUser();
这个方法好像返回一个新的Vector,并没有向vector中放数据.当然为0喽.
[解决办法]
关注~~~学习加顶上~~~~

[解决办法]
恭喜,恭喜,一来就看到解决问题了~~~~

热点排行