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);
}
}