如何防止在重定向的URL结尾添加jsessionid

gab*_*bby 5 redirect servlets response.redirect httpresponse

我试图从我的servlet重定向到外部域url.但重定向增加了; jsessionid = ghdssdf ... 在url的末尾.我不知道如何防止将jsession id附加到我的网址.我的应用程序正在Websphere上运行

resp.sendRedirect(resp.encodeRedirectURL("https://www.facebook.com/mymage"));
Run Code Online (Sandbox Code Playgroud)

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

Bal*_*usC 7

您似乎对选择不当的方法名称感到困惑encodeRedirectURL().它不会像方法名称所暗示的那样执行任何"URL编码"("处理特殊字符").它只是通过附加当前会话ID作为路径参数来执行"URL重写".这是在网页上呈现内部链接时使用的(通常通过<c:url>JSP页面中的JSTL 或<h:link>Facelets页面中的JSF ),以便在客户端禁用cookie时保持HTTP会话.

你根本不需要它.只需直接传递URL:

response.sendRedirect("https://www.facebook.com/mymage");
Run Code Online (Sandbox Code Playgroud)

也可以看看:


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

<session-config>
    <tracking-mode>COOKIE</tracking-mode>
</session-config>
Run Code Online (Sandbox Code Playgroud)