rebirth
发贴: 17
|
于 2005-10-14 10:23
1、可以设置一个静态的session注册器,类型可以是Map等。如 static Map reg_session=new HashMap(); key 是 userId ,value是一个自定义的java类型 这个java类型至少下面一些属性 public class SessionType(){ private java.util.Date opertime;//最近一次动作时间 private Long timeout;//超时时间。 private HttpSession session;//用户session } 然后写个类提供方法: register(...) //用户登录时将新的session注册进去, 如果已经存在,将session置无效,从map中去掉。这样可以防止重复登录。 unregister(...)//用户退出时将session从map中去掉。 updateoper(...)//用户做了动作后更新他的最近一次动作时间 scan(...)//每隔一定的时间扫描一次(可以在刷新时做,不过做得太频繁可能影响效率),将超时的用户用Map中去掉。 (写方法时注意同步控制)
2、在聊天室的主页面的unload方法调用一个logout.jsp,在这个jsp中调用unregister(...)方法将注册的session去掉。
3、显示在线列表是通过遍历reg_session来进行。
4、如果是session自动超时时也要调用logout.jsp将该session从reg_session中去掉。
|