http://www.javaresearch.org/article/showarticle.jsp?column=106&thread=406

解决方案 »

  1.   

    package net.htjs.onlineusers;import java.util.*;
    import javax.servlet.*; 
    import javax.servlet.http.*; public class OnLineUsers implements HttpSessionListener 
    {     private static Hashtable hmUserList = new Hashtable();
    private static boolean active = false;     public synchronized int getUserCount()
        {
            return hmUserList.size();
        }
       
        public synchronized void addUser(String sessionID,String userName)
        {
        //System.out.println("addUser");
            hmUserList.put(sessionID,userName);
        }
       
        public synchronized boolean existUser(String userName)
        {
        //System.out.println("existUser");
            Set set = hmUserList.keySet();
            Iterator iterator = set.iterator();
            while(iterator.hasNext())
            {
            String user = (String)hmUserList.get(iterator.next());
                if(userName.equals(user))
                {
                    return true;
                }
            }
           
            return false;
        }    public synchronized void deleteUser(String sessionID) 
        {
        //System.out.println("deleteUser:"+sessionID);
    hmUserList.remove(sessionID);
        }    public synchronized Iterator getOnLineUser()
        {
            Set set = hmUserList.keySet();
            return set.iterator();
        }

    public void sessionCreated(HttpSessionEvent se) 

    active = true;
    }  public void sessionDestroyed(HttpSessionEvent se) 

    deleteUser(se.getSession().getId());
    active = false;
    }  public static boolean getActiveSession()

    return active; 

    } web.xml中加入
      <listener>
        <listener-class>net.htjs.onlineusers.OnLineUsers</listener-class>
      </listener>
      

  2.   

    http://www.javaresearch.org/article/showarticle.jsp?column=106&thread=406