1. 程式人生 > >BS系統解決只能一個使用者登陸系統

BS系統解決只能一個使用者登陸系統

 //session 當前登入的session

private void checkOneLogin(HttpSession session) {
     ServletContext context = session.getServletContext();

       //得到session列表
        List<HttpSession> sessionList = (List<HttpSession>)context.getAttribute(SemConsts.USER_SESSION_LIST);
        if(sessionList == null){
            sessionList = new ArrayList<HttpSession>();
            sessionList.add(session);
            context.setAttribute(SemConsts.USER_SESSION_LIST, sessionList);
        }else{
            if(sessionList != null){
                Iterator<HttpSession> it = sessionList.iterator();
                while(it.hasNext()){
                    HttpSession sessionOne = it.next();
                    if(!session.getId().equals(sessionOne.getId())){
                        try{
                            sessionOne.invalidate();
                        }catch (Exception e) {
                            logger.warn(e.getMessage());
                        }

                         //移除舊session
                        it.remove();
                    }
                }
            }

           //添加當前新session
            sessionList.add(session);
        }
    }