2014-02-27 103 views
3

我正在开发一个单页的Web应用程序。我已经包含一个java过滤器来拦截html页面请求。因此,在此过滤器中,我使用request.getSession()创建了一个会话。 然后我明确设置JSESSIONID cookie,因为我必须在响应标头Set-Cookie中设置HttpOnly标志,以防止客户端通过document.cookie发生XSS攻击。为什么request.getsession()不返回相同的会话

现在登录后我需要会话,所以我使用request.getSession()访问会话。并根据HttpServletRequest的Javadoc HttpServletRequest javadoc

request.getSession()返回与此请求相关联的当前会话,或者如果请求不具有会话,创建一个。

但是我登录后得到不同的会话。

+0

定义“不同”会话?与您期望的不同的实例或...? – nablex

+0

@ user1109519一个不同的会话ID正在被创建,因此一个不同的'JSESSIONID' cookie被发送到浏览器,而不是前一个。 – tiger

+0

你是否每次都在过滤器中设置'JSESSIONID'?显示过滤器的一些代码。 –

回答

0

如果您使用同一浏览器请求应用程序,如果您从另一个浏览器请求它将返回新会话,我将重试同一会话。

相关问题