在jsp中,我想对在线的用户进行统计,通过session去统计,这个怎么去做啊??或者不通过session还有什么别的方法吗????谢谢。。急急急

解决方案 »

  1.   

    session 不可以应该用 application
      

  2.   

    如果有登陆之类的话,可以用session,登陆成功,你加个一不就可以啦,退出时,写个session监听器,减一,如果客户端断电那没办法啦,
      

  3.   

    可以考虑用Session监听统计连接的人数:
      javax.servlet.http.HttpSessionListener;这个接口  public void sessionCreated(HttpSessionEvent sessionEvent);
      public void sessionDestroyed(HttpSessionEvent sessionEvent);  这两个方法可以,连接一个加一,断开一个减一。如果要统计在线的登录用户人数,感觉用这个就可能不大合适了。
      有一种方法好像是用application、数据库来着。
      在数据库里建一张临时表,登录一个插入一条记录。注销时删除记录。
      

  4.   

    但是对于那些不是注销session的人怎么统计啊??如果有些人不是正常退出大的话,怎么办啊??那样的话统计的数量不准确哦!!还有什么方法能让这个统计更准确点吗??
      

  5.   


    你可以这么想嘛,如果这个人只是登录,然后什么都不做,出去玩去了,这种效果是不是和这个人登录了之后,直接关闭窗口(非正常退出)一样呢?!在服务器端感觉肯定是一样的撒,所以你没有必要在乎这个,session你设置了失效时间,在一定时间之后自动就会过期清除掉的,除非你特殊需求一定要在乎客户端用户现在在干什么
      

  6.   

    你可以利用HttpSessionListener;ServleteContext--->application 属性来保存人数(count);
    用监听器来实现这个操作!具体方法百度知道!
      

  7.   

    对session进行监听.每次创建一个新的Session就表示进入一个新用户,人数+1,每当一个session失效表示退出一个人,人数-1
      

  8.   

    提供一个思路在application里创建一个HashTable,将每次请求的sessionId和请求时间放到HashTable里
    如果用户正常退出就把HashTable里对应的sessionId清除 在线用户数-1
    如果非正常退出,定时检查这个HashTable里sessionId对应的时间是否超过session的过期时间其它的就不多说了
      

  9.   

    1.你可以记录登录成功的写一个计数让它+1.
    2.退出或注销的让它-1.
    3.你可以设置session的失效时间,如果失效也让它-1.如果你想要更好的计数,我建议还是使用application.
      

  10.   

    http://zhidao.baidu.com/question/104942760.html?fr=ala2 
      这个地址 看看去吧