我正在尝试从我的servlet重定向到外部域url。但重定向会在网址末尾添加; jsessionid = ghdssdf ... 。我不知道如何防止将jsession id附加到我的网址。我的应用程序在Websphere上运行
resp.sendRedirect(resp.encodeRedirectURL("https://www.facebook.com/mymage"));
结束定向网址可以在浏览器中看作https://www.facebook.com/mymage;jsessionid=dfsdfsd
答案 0 :(得分:5)
您似乎对选择不当的方法名称encodeRedirectURL()
感到困惑。它不执行任何&#34; URL编码&#34; (&#34;处理特殊字符&#34;),如方法名称所示。它只是执行&#34; URL重写&#34;通过附加当前会话ID作为路径参数。这是为了在网页上呈现内部链接时使用(通常通过JSP页面中的JSTL <c:url>
或Facelets页面中的JSF <h:link>
),以便在客户端保持HTTP会话已禁用Cookie。
你根本不需要它。只需直接传递URL:
response.sendRedirect("https://www.facebook.com/mymage");
无关:可以通过将以下条目添加到webapp&#39; s web.xml
来关闭网址重写,该条目指示容器使用&#34;仅限Cookie&#34;关于维护HTTP会话的策略。
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>