分享

彻底搞定JSP在线人数

 sowill 2005-12-11
文件名为onLineUser.java 

欢迎访问javajia家(http://www.),由yuking制作。2001.1.1 
*/ 

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<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文件 

文件名为onLineUser.jsp 

欢迎访问javajia家(http://www.),由yuking制作。2001.1.1 
*/ 
%> 
<%@ page contentType="text/html;charset=gb2312" %>  
<%@ page import="onLineUser,java.util.*" %>  
<jsp:useBean id="onlineuser" class="onLineUser" scope="application"/> 
<html>  
<head>  
<title>搞定JSP在线人数</title> 
</head> 
<body>  
<center>  
  <p><h1>登陆成功,欢迎您访问Java家!</h1></p> 
</center> 
<%  session = request.getSession(false); %>  
<%  
 String username=request.getParameter("username"); 
 if (onlineuser.existUser(username)){ 
   out.println("用户<font color=red>"+username+"</font>已经登陆!"); 
 }else{ 
   session.setMaxInactiveInterval(50); //Sesion有效时长,以秒为单位 
   session.setAttribute(username,onlineuser);  
   out.println("欢迎新用户:<font color=red>"+username+"</font>登陆到系统!"); 
 } 
 out.println("<br>当前在线用户人数:<font color=red>"+onlineuser.getCount()+"</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>yuking制作</p> 
  <p> </p> 
<% 
 out.println("<p><a href=‘logout.jsp?username="+username+"‘>退出系统</a></p>"); 
%> 
</center>  
</body>  
</html>  

//////////////////////////////////////////////////////////////////////////////////// 
<% 
/**这是用户退出的jsp文件 

文件名为logout.jsp 

欢迎访问javajia家(http://www.),由yuking制作。2001.1.1 
*/ 
%> 
<%@ page contentType="text/html;charset=gb2312" %>  
<%@ page import="onLineUser,java.util.*" %>  
<jsp:useBean id="onlineuser" class="onLineUser" scope="application"/> 
<html>  
<head>  
<title>搞定JSP在线人数</title> 
</head> 
<body>  
<center>  
  <p><h1>登陆成功,欢迎您访问Java家!</h1></p> 
</center> 
<%  
 String username=request.getParameter("username"); 
 if(onlineuser.deleteUser(username)) 
   out.println(username+"已经退出系统!"); 
 else 
   out.println(username+"没有登陆到系统!"); 
%>  
<center>  
  <p>yuking制作</p> 
  <p> </p> 
  <p><a href="logout.jsp">退出系统</a></p> 
</center>  
</body>  
</html>  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多