javaweb开发关于用户重复登录的问题

来源:互联网 发布:linux vi 末行模式 编辑:程序博客网 时间:2024/06/14 12:19
package cn.ggxun.core.util;

import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import javax.servlet.http.HttpSession;
import cn.ggxun.daihao.pojo.MyUser;
public class LoginSessionSave{
    public static Map<String,HttpSession> sessionMap=new ConcurrentHashMap<String,HttpSession>();
    
    //删除同用户名的session
    public static void delectSession(MyUser myUser,HttpSession  session){
            //当前用户
            Set<String> keys=sessionMap.keySet();
            for (String key : keys) {
                if(!key.equals(session.getId())){
                    //获取上一个用户session
                    HttpSession oldSession=sessionMap.get(key);
                        MyUser oldMyUser=(MyUser)oldSession.getAttribute("erjiUser");
                                //用户存在,且用户名不为空
                                if(oldMyUser!=null&&!"".equals(oldMyUser.getUserCode())){
                                        //如果用户名一样
                                        if(oldMyUser.getUserCode().equals(myUser.getUserCode())){
                                        //删除原来的
                                        sessionMap.remove(key);
                                        //删除上次的用户session
                                        oldSession.removeAttribute("erjiUser");
                                    }
                                }
                }
            }
            //添加现在的用户
            sessionMap.put(session.getId(), session);
        }
}
在每次用户登录的时候把之前同一个用户删除了