如何检查会话是否无效

发布于 2024-07-15 10:07:20 字数 200 浏览 14 评论 0原文

如何检查会话是否无效? API 中没有方法。

它和isNew()一样吗? 如果不是的话有什么区别?

How to check if a session is invalid or not?
There is no method in the API.

Is it the same as isNew()? And what is the difference if not?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

顾冷 2024-07-22 10:07:20

如果您想知道它是否基于请求有效:

request.isRequestedSessionIdValid()

  or

HttpSession sess = request.getSession(false);
if (sess != null) {
   // it's valid
}

如果您存储了对会话的引用并且需要验证,我会

try {
  long sd = session.getCreationTime();
} catch (IllegalStateException ise) {
  // it's invalid
}

If you want to know whether it valid based on a request:

request.isRequestedSessionIdValid()

  or

HttpSession sess = request.getSession(false);
if (sess != null) {
   // it's valid
}

If you have stored a reference to the session and need to validate I would

try {
  long sd = session.getCreationTime();
} catch (IllegalStateException ise) {
  // it's invalid
}
爱本泡沫多脆弱 2024-07-22 10:07:20

仅当客户端尚未接受此会话时,isNew() 才为 true(即,它刚刚创建,并且 JSESSIONID 尚未发送,或者即使发送了,客户端也没有发送它)返回,所以服务器不知道它并创建了另一个会话)

isNew() is true only if this session wasn't yet accepted by client (i.e. it was just created, and JSESSIONID wasn't sent yet, or if it was sent, client didn't send it back, so server doesn't know about it and created another session)

征﹌骨岁月お 2024-07-22 10:07:20

出于所有意图和目的,是的。 但是,如果在同一请求响应周期中无效的会话上调用,它将抛出 IllegalStateException。

For all intents and purposes, yes. However, it will throw an IllegalStateException if called on a session invalidated in the same request-response cycle.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文