代码之家  ›  专栏  ›  技术社区  ›  Humphrey Bogart

JSP重定向:会话丢失问题

  •  3
  • Humphrey Bogart  · 技术社区  · 16 年前

    取代 <jsp:forward page="URL"> response.sendRedirect("URL");

    我知道我可以通过 window.location = "URL"; ,但这远非理想!

    2 回复  |  直到 16 年前
        1
  •  2
  •   Ronald Wildenberg    16 年前

    您不必重新发送cookie,因为如果建立了会话,cookie应该已经在客户端(浏览器)上。

    你确定你会输吗?你是如何发现的?在重定向到的url表示的页面中是否有新会话?

    浏览器是否接受cookies?否则,您应该使用url重写。这是最可能的原因。你可以试着用它 HttpServletResponse.encodeRedirectURL response.sendRedirect .

        2
  •  2
  •   Cerryk    14 年前

    要求 对象指向标记指示的URL。实际上,您正在转发请求对象。

    回答

    如果数据是请求的一部分,则数据丢失;因此,如果在设置会话的username属性之前尝试重定向,则会发生这种情况。

    如果您真的正在丢失会话,这可能表明以下几点: 2) 如果新URL位于cookie路径之外,则不会发送cookie。 3) 浏览器未设置为允许cookie。在这种情况下,当您使用jsp:forward时,您必须对URL进行编码,因此如果是这种情况,我会感到惊讶。