在JSP版查找“在线”就有答案。

解决方案 »

  1.   

    看看:http://www.csdn.net/expert/topic/366/366150.xml?temp=.1292536
    注意其中的private int count = 0;
    应该为static private int count = 0;   
      

  2.   

    大侠,那么如何找到javax.servlet和javax.servlet.http包啊。救命
      

  3.   

    to: shine_car(I can do) (
    大侠,这个类该怎么用啊,是不是用userbean?该怎么设置?
    大侠帮忙。
      

  4.   

    /**这是管理user信息的类文件名为onLineUser.java欢迎访问javajia家(http://www.javajia.com),由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.javajia.com),由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.javajia.com),由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> 
      

  5.   

    各位大侠,怎样在服务器端监听这个session的创建和销毁事件呢?
      

  6.   

    各位大侠,怎样在服务器端监听这个session的创建和销毁事件呢?
    比如用tomcat3.2.1或者用EASserver。