jsp在线人数统计

1.用session超时,session为null就表示下线了  
 
2.也可以采用数据库中设置  临时表  来处理  
一个用户登陆时向表中插进一条记录,用户离开时候删除该记录  
如想统计在线人数,简单地执行  
select  count(*)  from  table...  即可  
 
3.application对象中可以记住现在的人数,application的生命周期和服务器的生命周期一样长。  
 
4.还有一种方法要用到一个文件global.jsa  ,方法是(在JSP中)是sessionDestroy(),其中它是以session对象为参数的。还有要把global.jsa文件必须房子和JSP程序相同的文件目录内才行。  
 
5.网页自动刷新的代码是:  
在文件头部加上  
 
刷新间隔时间是15秒  
 
 
6.在session中加入监听类,类的示例代码如下:  
 
onLineUser.java  
import  javax.servlet.http.*;  
import  javax.servlet.*;  
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               {  
                       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                               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=gb2312"  %>    
<%@  page  import="java.util.*"  %>    
 
   
   
 
   

   
     

登陆成功,欢迎访问

 
 
<%      session  =  request.getSession(false);  %>    
<%    
       String  username=request.getParameter("username");  
       if  (onlineuser.existUser(username)){  
               out.println("用户"+username+"已经登陆!");  
       }else{  
             session.setMaxInactiveInterval(50);  //Sesion有效时长,以秒为单位  
               session.setAttribute(username,onlineuser);    
               out.println("欢迎新用户:"+username+"登陆到系统!");  
       }  
       out.println("
当前在线用户人数:"+onlineuser.getCount()+"
");  
       String  ip  =  request.getRemoteAddr();  
       out.println("
IP:"+ip+"
");  
       Vector  vt=onlineuser.getOnLineUser();  
       Enumeration  e  =  vt.elements();  
       out.println("在线用户列表");  
       out.println("");  
       out.println("");  
           while(e.hasMoreElements()){  
               out.println("");  
       }  
       out.println("
用户名
");  
               out.println((String)e.nextElement()+"
");  
               out.println("
");  
             
%>    
   
     

 

 
     [关闭窗口]  
<%  
       out.println("

退出系统

");  
%>  
   
 
   

 

 

出自:http://www.home123.com.cn/FAQ/jsp/619.html 

你可能感兴趣的:(Java,jsp,string,vector,session,import,javascript)