当前位置: 代码迷 >> Java相关 >> 用户重复登录有关问题
  详细解决方案

用户重复登录有关问题

热度:3573   发布时间:2013-02-25 21:50:45.0
用户重复登录问题
我现在要实现这种功能:
当用户在一台机器上登录以后,就不能在其他机子上再次登录。用户正常退出后,才可以在其他地方登陆。
哪位大虾给分析分析,要怎么才能实现!

------解决方案--------------------------------------------------------
用一个集合保存好登录的用户名,将集合保存到application范围内,
当用户登入时,判断集合中是否有该用户,有就不能登入
用户正常退出时从集合中remove掉该用户名就可以了
------解决方案--------------------------------------------------------
探讨
用一个集合保存好登录的用户名,将集合保存到application范围内,
当用户登入时,判断集合中是否有该用户,有就不能登入
用户正常退出时从集合中remove掉该用户名就可以了

------解决方案--------------------------------------------------------
关于非法退出:

在服务器端设置一个属性,记录每个用户此次登陆的时间,如果登录时间超过一定时间,就从保存用户名的集合中将此用户删除

这是我的想法,不知道可不可行
------解决方案--------------------------------------------------------
SESSION失效处理 

Java code
package com.java91.common.manager;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSessionEvent;import org.apache.log4j.Logger;import com.java91.common.auto.beans.SessionLog;import com.java91.common.auto.dao.SessionLogDao;import com.java91.common.framework.Framework;import com.java91.common.framework.webutil.WebUtil;public class SessionListenerImpl implements javax.servlet.http.HttpSessionListener {        Logger log=Framework.getImportLog();         public synchronized void sessionCreated(HttpSessionEvent se) {               log.info("----------session监听sessionCreated---sessionid:"+se.getSession().getId()+"---");         //System.out.println("----------session监听sessionCreated---sessionid:"+se.getSession().getId()+"---");     }    public synchronized void sessionDestroyed(HttpSessionEvent se) {               log.info("----------session监听Destroyed----"+se.getSession().getId()+"--");        String sessionId = se.getSession().getId();        UserManager.removeLogonUser(sessionId);                  }}
  相关解决方案