取得URL

1.request.getRrmoteAddr() ;獲得本地客戶端的IP地址,可能會IPv4可能會IPv6,取決於c盤中的host文件。
2.request.getRequestURL() ; 獲得本網頁的URL(所請求的地址的URL) ,stringbuffer型。

3.request.getHeader(“Referer”); 獲得上一個來源網頁的URL;

request.getHeader(“referer”)獲取來訪者地址。只有通過鏈接訪問當前頁的時候,才能獲取上一頁的地址;

否則request.getHeader(“referer”)的值爲null,通過window.open打開當前頁或者直接輸入地址,也爲null。

若從 http://xxx/a.jsp 上 點擊 a標籤 至 http://XXXX/b.jsp

b.jsp 獲取 request.getHeader(“referer”) 返回 http://xxx/a.jsp
(轉自http://blog.csdn.net/zhanghaipeng1989/article/details/19477753

request.getHeader(“Referer”)用於獲取來源頁地址,但有時卻爲空值,這是怎麼回事。原因如下:

 getHeader(“Referer”)要走http協議時纔有值,也就是說要通過< a href=”url”>a< /a >標記才能獲得那個值,而通過改變location或是< a href=”javascript:location=’url’”>a< / a > 都是得不到那個值的。

使用request.getHeaders(“Referer”)返回的Enumeration 玫舉本身就只有一個元素,也就是request.getHeader(“Referer”)的返回值。

以前有這樣一個帖子目的是如何獲取上一級頁面的地址

如果發送頁面以POST方式提交,這個request.getHeader(“referer”) 完全沒有問題。但是如果發送頁面以get方式提交 ,或許還帶有參數,request.getHeader(“referer”) 會返回空值(可以防止用戶在地址裏粘貼鏈接,因爲在地址欄裏貼地址是數據get提交方式)。那麼該如何解決呢?
說下我的具體情況吧

比如在每個JSP頁面都包含 如果出現任<% page errorPages=”../error.jsp”%>

何問題 ,都會跳到error.jsp頁面。error.jsp 有一個back的按鈕 要求實現返回上一級頁面

其實利用history.back() 就可以實現 ,但是由於代理服務器原因 去掉了緩存的原因所以需要另一種方式來實現此功能。
referer是瀏覽器在用戶提交請求當前頁面中的一個鏈接時,將當前頁面的URL放在頭域中提交給服務端的,如當前頁面爲a.html,它裏面有一個b.html的鏈接,當用戶要訪問b.html時瀏覽器就會把a.html作爲referer發給服務端.
errorpage 根本不是用戶去訪問的,絕對大多數errorPage是forwaord,由服務端直接調用http連接訪問errorpage將結果發給用戶.用戶根本沒有訪問errorPage.
對於location=”aaa.jsp”這樣用js訪問沒有referer,是因爲當執行location=”aaa.jsp”時,當前頁面的URL已經是aaa.jsp,真的要取上一級當然可以從history中取到發給服務端,但那已經不是Referer的本意了.可以以如下代碼來代替:`function jump(url){
var e = document.createElement_x(“a”);
e.href = url;
document.body.appendChild(e);
e.click();
}

然後你調用:
jump(“http://host/aaa.jsp“);看看肯定能取到.

referer的意圖是判斷訪問來源,比如你想知道用戶是通過google還是baidu找到你的頁面的,就可以判斷referer。很多下載站點也用它防止盜鏈,所以flash get之類的軟件會自動把當前頁作爲referer字段發給下載地址以僞裝成站內點擊

(轉自http://blog.csdn.net/liyunyun6/article/details/8961808

1、獲取上一個網頁的URL:

String url=request.getHeader(“Referer”);

2、獲取本網頁的URL:

String url=request.getScheme()+”://”+ request.getServerName()+request.getRequestURI();

==即是 String url=request.getRequestURL() ;

發佈了29 篇原創文章 · 獲贊 13 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章