彻底搞定JSP在线人数/**这是管理user信息的类文件名为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<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*/
%>
<%@ 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>登陆成功,欢迎您访问!</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>elapsed制作</p>
   <p> </p>
<%
    out.println("<p><a href='logout.jsp?username="+username+"'>退出系统</a></p>");
%>
</center> 
</body> 
</html> ////////////////////////////////////////////////////////////////////////////////////
<%
/**这是用户退出的jsp文件文件名为logout.jsp*/
%>
<%@ 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>登陆成功,欢迎您访问!</h1></p>
</center>
<% 
    String username=request.getParameter("username");
    if(onlineuser.deleteUser(username))
        out.println(username+"已经退出系统!");
    else
        out.println(username+"没有登陆到系统!");
%> 
<center> 
   <p>elapsed制作</p>
   <p> </p>
   <p><a href="logout.jsp">退出系统</a></p>
</center> 
</body> 
</html>  

解决方案 »

  1.   

    <%@ page contentType="text/html; charset=gb2312" %>
                      <%@ page 
                      import="java.io.*,java.lang.*,java.util.*,java.awt.*,com.caucho.sql.*"%>                  <html>
                      <head>
                      <style>
                      <!--                  body{font-family:宋体;font-size:9pt;color:black}
                      A:link {color:#789819;text-decoration:none} 
                      A:visited {color:#789819;text-decoration:none} 
                      A:active {color:#000000;text-decoration:underline} 
                      -->
                      </style>                  </hean>
                      <body>
                      <tr>
                      <td>
                      已经有
                      <%try{
                      long counter;
                      RandomAccessFile file=new 
                      RandomAccessFile("/usr/local/resin/doc/cristian/counter","rw");
                      if(file.length()==0)
                      counter=0;
                      else counter=file.readLong();
                      counter+=10L;
                      boolean head=false;
                      if(counter%10000/1000!=0)
                      {
                      long number=counter%10000/1000;
                      out.println(number);
                      head=true;
                      }
                      if((counter%1000/100!=0)||(head==true))
                      {                  long number=counter%1000/100;
                      out.println(number);
                      head=true;
                      }
                      if((counter%100/10!=0)||(head=true))
                      {
                      long number=counter%100/10;
                      out.println(number);
                      head=true;
                      }
                      file.seek(0);
                      file.writeLong(counter);
                      file.close();
                      }catch(IOException e){out.println(e);}
                      %>
                      人访问过本网站
                      </body>
                      </html>