为什么';t HttpRequest.getSession(true)在旧会话为空/无效时获取新会话
当我运行这段java代码时,有谁能解释一下:为什么';t HttpRequest.getSession(true)在旧会话为空/无效时获取新会话,session,websphere,httprequest,Session,Websphere,Httprequest,当我运行这段java代码时,有谁能解释一下: 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:
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());
当当前请求会话为null且无效时,为什么不从request.getSession(true)获取新会话?我在日志中看到:
请求会话ID为:0000MYF8m5fpUjrzUHIp93yshSh:5e7fcdcf-2274-43bb-83d9-4d9b9a1d766a
请求isRequestedSessionIdValid():false
新会话是:MYF8m5fpUjrzUHIp93yshSh它是被重用的会话ID。正在使实际会话无效并重新创建
可以通过将属性值设置为false来更改此行为。此外,当我在调试模式下通过运行Websphere App Server的Eclipse运行应用程序时,它会获得预期的新会话。但是,当我在eclipse之外以非调试模式运行Websphere时,它不会获得新会话。我通过将server.xml设置为have尝试了这一点,但它仍然重用会话id。我还尝试了使用,但也没有成功。