【问题标题】:JSESSIONID getting twice in cookieJSESSIONID 在 cookie 中获得两次
【发布时间】:2012-08-01 09:58:14
【问题描述】:

我正在使用 jboss 5.1 服务器和 struts 框架。以下是用例

用例 1

1) 清除浏览器缓存并使用我的应用程序 url 加载浏览器
(比如说 /loadLogin.do)

2) 在代码httpSession = request.getSession(false); 中,当我检查 httpSession 它不为空并且有一些 jessionid 说 123

3)现在我使会话无效httpSession.invalidate();

4)我再次创建一个新会话httpSession = request.getSession();现在这一次创建了一个新的 jessionid 说 456

5)最后,当我检查我的 cookie 时,它​​显示 2(两个)jessionid's

Set-Cookie: JSESSIONID=123.node1; Path=/loadLogin  
Set-Cookie: JSESSIONID=456.node1; Path=/loadLogin

用例 2

1)不清除缓存

2)假设浏览器已经有url(即登录到应用程序然后注销然后再次尝试登录,这次浏览器在其下拉菜单中显示url)

3)这次我检查 cookie 时只有 1 个 jessionid 存在..

有人可以告诉我,服务器的行为如何,或者与应用程序中处理会话的方式有关

【问题讨论】:

    标签: java jakarta-ee servlets jboss struts


    【解决方案1】:

    半年前我也处理过这个问题。这是一个非常令人沮丧的问题。但我解决了。 您首先取消新创建的会话,然后创建新会话。

    if (getHttpRequest().getSession(false).isNew() == false) {
      getHttpRequest().getSession(false).invalidate();
      getHttpRequest().getSession(true);
    }
    

    【讨论】:

      猜你喜欢
      • 2016-02-03
      • 1970-01-01
      • 2016-01-04
      • 2013-11-01
      • 2017-11-09
      • 2017-02-04
      • 2016-09-01
      • 2018-12-07
      • 2021-06-28
      相关资源
      最近更新 更多