Java JSESSIONID在cookie中获得两次
我正在使用JBoss5.1服务器和struts框架。以下是用例 用例1 1) 清除浏览器缓存,并用我的应用程序url加载浏览器Java JSESSIONID在cookie中获得两次,java,jakarta-ee,servlets,jboss,struts,Java,Jakarta Ee,Servlets,Jboss,Struts,我正在使用JBoss5.1服务器和struts框架。以下是用例 用例1 1) 清除浏览器缓存,并用我的应用程序url加载浏览器 (say/loadLogin.do) 2) 在codehttpSession=request.getSession中(false)当我检查httpSession时,它不是空的,并且有一些jessionid,比如123 3) 现在我使会话无效httpSession.invalidate() 4) 我再次创建一个新会话httpSession=request.getSessi
(say/loadLogin.do) 2) 在code
httpSession=request.getSession中(false)代码>当我检查httpSession时,它不是空的,并且有一些jessionid,比如123
3) 现在我使会话无效httpSession.invalidate()代码>
4) 我再次创建一个新会话httpSession=request.getSession()
;现在这一次创建了一个新的jessionid,比如456
5) 最后,当我检查我的cookie时,它显示了2(两)个jessionid
Set-Cookie: JSESSIONID=123.node1; Path=/loadLogin
Set-Cookie: JSESSIONID=456.node1; Path=/loadLogin
用例2
1) 不清除缓存
2) 假设浏览器已经有url(即登录到应用程序,然后注销,然后再次尝试登录,这次浏览器在其下拉列表中显示url)
3) 这一次,当我检查cookie时,只有1个jessionid
有人能告诉我,服务器是如何工作的,或者与应用程序中处理会话的方式有关吗?半年前我也处理过这个问题。这是一个非常令人沮丧的问题。但我解决了。
首先取消新创建的会话,然后创建新会话
if (getHttpRequest().getSession(false).isNew() == false) {
getHttpRequest().getSession(false).invalidate();
getHttpRequest().getSession(true);
}
半年前我也处理过这个问题。这是一个非常令人沮丧的问题。但我解决了。
首先取消新创建的会话,然后创建新会话
if (getHttpRequest().getSession(false).isNew() == false) {
getHttpRequest().getSession(false).invalidate();
getHttpRequest().getSession(true);
}