我现在要实现这种功能:
当用户在一台机器上登录以后,就不能在其他机子上再次登录。用户正常退出后,才可以在其他地方登陆。
哪位大虾给分析分析,要怎么才能实现!
------解决方案--------------------------------------------------------
用一个集合保存好登录的用户名,将集合保存到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); }}