为什么不HttpRequest.getSession(真)获得新的会话时,旧的空/无效
问题描述:
任何人都可以解释,当我运行这个Java代码:为什么不HttpRequest.getSession(真)获得新的会话时,旧的空/无效
HttpSession session = request.getSession(false);
if (session != null)
{
s_log.debug("Session has id: " + session.getId());
session.invalidate();
}
s_log.debug("Request Session ID is: "+ request.getRequestedSessionId());
s_log.debug("Request isRequestedSessionIdValid(): " + request.isRequestedSessionIdValid());
HttpSession _session = request.getSession(true);
s_log.debug("New Session is :" + _session.getId());
为什么我没有得到一个新的会话request.getSession(true)当前请求会话为空且无效时?我看到这在日志中:
请求会话ID是:0000MYF8m5fpUjrzUHIp93yshSh:5e7fcdcf-2274-43bb-83d9-4d9b9a1d766a
请求isRequestedSessionIdValid():假
新的会话:MYF8m5fpUjrzUHIp93yshSh
答
这是正在重用的会话ID。实际会话正在失效并重新创建。
此行为可以通过将HttpSessionIdReuse属性值设置为false来更改。
+0
我试图通过设置server.xml有
另外,当我通过运行Websphere App Server的Eclipse以调试模式运行应用程序时,它会按预期得到一个新的会话。但是,当我在eclipse外以非调试模式运行Websphere时,它不会获得新的会话。 –