JSP转发后没有立即显示Cookie

JSP doesn't show the Cookie immediatly after forwarding

我遇到以下问题:我有几个 JSP 页。当我在主页上时,我可以添加一个 Cookie。在 CookieAdd 页面中,我添加了一个 Cookie 并使用 jsp:forward 将自己重定向到主页。然后添加的 Cookie 应该会出现,但不会立即出现。我必须重新加载页面才能看到新添加的 cookie。我怎样才能立即看到它? 谢谢,汤姆。

<% Cookie c = new Cookie(request.getParameter("name"), ""); c.setMaxAge(0); response.addCookie(c); %> <html> <body>

`<jsp:forward page="Cookiemanager.jsp" />`

</body> </html>

您没有重定向到主页。您正在转发到主页。转发完全发生在服务器端。服务器未收到新请求:相同的原始请求仅由另一个 JSP 处理。因此,原始请求中不存在的 cookie,在第二个 JSP.

处理同一个请求时仍然不存在

重定向完全不同。重定向包括要求浏览器转到另一个 URL。如果您这样做,那么浏览器将接收 cookie 作为重定向响应的一部分,然后将包含 cookie 的新请求发送到新的 JSP.

请注意,您发布的代码不应在 JSP 中。 JSP 是一个视图组件。它的目标不是设置 cookie 或 forward/redirect。它的目标是生成HTML。这样的代码应该放在一个servlet中,写成Java.