返回上級頁面方法


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