【发布时间】:2021-03-08 22:20:33
【问题描述】:
如何检查现有会话是否无效? 在以下 loginBean 代码中,我检查了用户是否已登录的每次登录。 如果其他系统已经登录,请停用该会话并创建新会话。如果该会话因超时而失效,则下次 userSessionMap 包含 usedname 和错误以使其失效。那么如何检查它是否失效呢?
Map appMap = FacesContext.getCurrentInstance().getExternalContext().getApplicationMap();
Map<String, HttpSession> userSessionMap = (Map<String, HttpSession>) appMap.get("USERS");
if (userSessionMap.containsKey(getUsername())) {
log.info(getUsername() + " already loggedin. Closing existing sesssion");
HttpSession sess = userSessionMap.get(getUsername());
sess.invalidate();
}
【问题讨论】:
-
如果你没有请求,“会话”对你意味着什么?您是在谈论像 Tomcat 这样的应用程序容器上下文吗?或者这个会话是你写的?