返回上级页面方法


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)
}