为什么';t HttpRequest.getSession(true)在旧会话为空/无效时获取新会话

为什么';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:

当我运行这段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: "+  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。我还尝试了使用,但也没有成功。