如何防止在重定向的末尾添加 jsessionid url

How to prevent adding jsessionid at the end of redirected url

我正在尝试从我的 servlet 重定向到外部域 url。但是重定向在url的末尾添加了;jsessionid=ghdssdf...。我不知道如何防止将 jsession id 附加到我的 url。我的应用程序在 Websphere

上 运行
resp.sendRedirect(resp.encodeRedirectURL("https://www.facebook.com/mymage"));

结束定向 url 在浏览器中可以看到 https://www.facebook.com/mymage;jsessionid=dfsdfsd

您似乎对错误选择的方法名称感到困惑 encodeRedirectURL()。正如方法名称所暗示的那样,它不执行任何 "URL encoding" ("dealing with special characters")。它只是通过附加当前会话 ID 作为路径参数来执行 "URL rewriting"。这旨在在网页上呈现内部链接时使用(通常通过 JSP 页面中的 JSTL <c:url>,或 Facelets 页面中的 JSF <h:link>),以便保持 HTTP 会话如果客户端禁用了 cookie。

你在这里根本不需要它。直接通过 URL:

response.sendRedirect("https://www.facebook.com/mymage");

另请参阅:

  • In the context of Java Servlet what is the difference between URL Rewriting and Forwarding?

与具体问题无关:URL重写可以通过将以下条目添加到 webapp 的 web.xml 来关闭,它指示容器使用"Cookie only" 维护 HTTP 会话的策略。

<session-config>
    <tracking-mode>COOKIE</tracking-mode>
</session-config>