Sim*_*nti 0 http-referer jsp servlets back
JSP1链接到JSP2.
JSP2调用一个servlet,它执行一些操作并以以下结尾:
response.sendRedirect(request.getHeader("referer"));
return;
Run Code Online (Sandbox Code Playgroud)
此时我又回到了JSP2.问题是从那里按下浏览器后退按钮,页面只是重新加载自己而不是返回到JSP1.这是正确的,因为sendRedirect会在历史记录中添加一个条目.
但是我想回到JSP1.有小费吗?
出于各种敏感原因,您不应完全依赖控制器操作中的referrer标头.你已经找到了至少一个.此标头并非始终由客户端发送,或者其值实际上可能并不代表真正的引荐来源.某些浏览器,代理甚至防病毒配置可能隐藏,更改甚至混淆引用者标头.最高限度使用它用于统计目的.
而是传递from作为请求参数,
<input type="hidden" name="from" value="${pageContext.request.requestURI}" />
Run Code Online (Sandbox Code Playgroud)
有了这个逻辑(省略了验证)
response.sendRedirect(request.getParameter("from"));
Run Code Online (Sandbox Code Playgroud)
或者,更好的是,如果它始终是基于其他请求参数的同一个JSP,则只需在服务器端硬编码/配置它.
| 归档时间: |
|
| 查看次数: |
10886 次 |
| 最近记录: |