java - 如何检查现有 session 是否无效?

标签 java session

如何检查现有 session 是否无效? 在下面的 loginBean 代码中,我检查了用户是否已经登录的每个登录。 如果已经由其他系统登录,请停用该 session 并创建新的。如果该 session 因超时而无效,则下一次 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();
}

最佳答案

尝试将 false 作为参数传递给 getSession(boolean) .这将返回一个 session (如果它存在),否则它将返回 null

HttpSession session = request.getSession(false);
if (session == null || !request.isRequestedSessionIdValid()) {
    //comes here when session is invalid.        
}

Returns the current HttpSession associated with this request or, if there is no current session and create is true, returns a new session. If create is false and the request has no valid HttpSession, this method returns null.

关于java - 如何检查现有 session 是否无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17183847/

相关文章:

java - 如何在selenium中模拟真实的按键输入 Action ?

php - PHP Mysql Codeigniter 应用程序中的 session 变量大小增加

JavaRDD 从 IgniteRDD 需要很长时间

java - 如何从 picocli 命令正确启动 micronaut 网络服务器?

java - 如何为 Android Fragment(Tabs Activity) 实现 onBackPressed

java - 跟踪用户是否在无状态 Web 应用程序中登录?

python - 将预构建的查询附加到 SQLAlchemy 中的scoped_session

jquery - JQuery 和 Node.js 中的 session 处理

node.js - 连接+ session Socket.io+通行证 : Could not look up session by key

java - 打开 zip 文件时出错或缺少 : C:/Program 的 JAR list