前几天看到一篇利用header中Referer信息转向的文章,测试了一下发现挺有用。
在jsp或servlet中可以利用如下代码实现转向到前一次提交的页面。
java 代码
- String retUrl = request.getHeader("Referer");
- System.out.println(retUrl);
- if(retUrl != null){
- response.sendRedirect(retUrl);
- }
测试页面1.jsp
1.jsp 代码
- <%@ page contentType="text/html;charset=GBK"%>
- <html>
- <head>
- <title>1</title>
- </head>
- <script>
- function jump() {
- document.forms[0].action="2.jsp";
- document.forms[0].submit();
- }
- </script>
- <body>
- <form>
- <button οnclick="jump();">111</button>
- </form>
- </body>
- </html>
测试页面2.jsp
2.jsp 代码
- <%
- String retUrl = request.getHeader("Referer");
- if(retUrl != null){
- response.sendRedirect(retUrl);
- }
- %>
利用Referer里的记录的上次提交的url的信息可以转向回1.jsp。这在对记录做修改删除后返回到初始页面挺有用。
需要注意的是:
必须是form提交,开始测试一直不成功,打印出所有header内容才发现开始一直在用window.location转向到新页面,根本就没有Referer头信息。
来实现转向到刚才用form提交的页面。