已经更换<jsp:forward page="URL">了response.sendRedirect("URL");,我觉得我知道一旦重定向发生丢失会话。有没有一种方法可以通过重定向保留会话,或者重新构造会话cookie并将其与重定向一起发送?
<jsp:forward page="URL">
response.sendRedirect("URL");
我知道我可以通过使用JavaScript window.location = "URL";,但这远非理想!
window.location = "URL";
有什么帮助吗?
您不必重新发送cookie,因为如果您建立了会话,则cookie应该已经在客户端(浏览器)上。
确定要丢失会话吗?您如何检测到这一点?您重定向到的网址所代表的页面中是否有新会话?
浏览器接受cookie吗?否则,您应该使用url重写。这是最可能的原因。您可以HttpServletResponse.encodeRedirectURL在将url传递到之前尝试使用response.sendRedirect。
HttpServletResponse.encodeRedirectURL
response.sendRedirect