返回上级页面方法

来源:互联网 发布:淘宝卖家后台运费 编辑:程序博客网 时间:2024/04/30 00:14

referer是浏览器在用户提交请求当前页面中的一个链接时,将当前页面的URL放在头域中提交给服务端的,
如当前页面为a.html,它里面有一个b.html的链接,当用户要访问b.html时浏览器就会把a.html作为referer发给服务端.

errorpage 根本不是用户去访问的,绝对大多数errorPage是forward,由服务端直接调用http连接访问errorpage将结果发给用户.
用户根本没有访问errorPage.

对于location="aaa.jsp"这样用js访问没有referer,是因为当执行location="aaa.jsp"时,当前页面的URL已经是aaa.jsp,
真的要取上一级当然可以从history中取到发给服务端,但那已经不是Referer的本意了..可以以如下代码来代替:
function jump(url){
    var e = document.createElement("a");
    e.href = url;
    document.body.appendChild(e);
    e.click();
}

 

//JAVA 中
String currentURL = request.getRequestURL().toString();
String preURL = request.getHeader("referer");

if (currentURL.equals(preURL) ) {
 return new RedirectingActionForward(preURL);
} else {
 return new RedirectingActionForward(currentURL)
}

 

在login.jsp中添加代码

Java代码 复制代码
  1. String referer = request.getHeader("Referer");  
  2. session.setAttribute("returnURL", referer);  


记录登陆前页面url

login.do 从session中取得returnURL ,然后跳转

Java代码 复制代码
  1. if( loginSuccess ){  
  2.     String returnURL = (String)request.getSession().getAttribute("returnURL");  
  3.     response.sendRedirect(returnURL );  
  4. }  



呵呵 就这么简单轻松搞定

对了最后别忘了session.removeAttribute(returnURL);

原创粉丝点击