Zoo*_*ork 12
请参阅HttpServletResponse encodeURL()和encodeRedirectURL().
如果浏览器不支持cookie,这些功能将适当地重写您的URL以包含会话信息.根据您正在使用的Java Web框架,可以自动调用这些函数(只要您使用框架的URL编写方法).
请注意,由于在链接中显示会话ID的安全性和缓存含义,这在所有情况下可能都不可取. 此页面在这个简短的空间中总结了比我更好的问题,并提供了一种禁用此功能的方法.
您需要将jsessionidWeb应用程序中涉及的所有URL 附加到客户端应该调用的URL中.这包括重定向URL和JSP页面中的链接.
如果是重定向网址,则需要先使用HttpServletResponse#encodeRedirectURL():
response.sendRedirect(response.encodeRedirectURL("page.jsp"));
Run Code Online (Sandbox Code Playgroud)
对于JSP页面中的链接,您基本上需要首先传递这些URL HttpServletResponse#encodeURL().您可以帮助做到这一点JSTL的(刚落,JSTL-1.2.jar中/WEB-INF)<c:url>标签,它会在幕后通过上述方法传递的网址:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<a href="<c:url value="page1.jsp" />">link1</a>
<a href="<c:url value="page2.jsp" />">link2</a>
...
<form action="<c:url value="servlet" />" method="post">
...
</form>
Run Code Online (Sandbox Code Playgroud)