0

JSP1 链接到 JSP2。

JSP2 调用一个 servlet,它做一些事情并以:

response.sendRedirect(request.getHeader("referer"));
return;

在这一点上,我回到了 JSP2。问题是从那里按下浏览器后退按钮,页面只是重新加载自身而不是返回到 JSP1。这是正确的,因为 sendRedirect 在历史记录中添加了一个条目。

但我想回到 JSP1。有小费吗?

4

1 回答 1

6

出于各种敏感原因,您根本不应该在控制器操作中依赖引荐来源标头。你至少已经发现了一个。此标头并不总是由客户端发送,或者它的值可能实际上并不代表真正的引荐来源网址。某些浏览器、代理甚至防病毒配置可能会隐藏、更改甚至混淆引荐来源标头。最高使用它用于统计目的。

而是将其from作为请求参数传递,

<input type="hidden" name="from" value="${pageContext.request.requestURI}" />

使用此逻辑(省略验证)

response.sendRedirect(request.getParameter("from"));

或者,更好的是,如果它始终是基于其他请求参数的同一个 JSP,则只需在服务器端完全硬编码/配置它。

于 2012-05-29T02:13:57.407 回答