Request獲取url各類信息的方法

一、Request獲取url各類信息的方法

  測試的url地址:http://www.test.com/testweb/default.aspx, 結果以下:

  Request.ApplicationPath: /testweb
  Request.CurrentExecutionFilePath: /testweb/default.aspx
  Request.FilePath: /testweb/default.aspx
  Request.Path: /testweb/default.aspx
  Request.PathInfo:
  Request.PhysicalApplicationPath: E:\WWW\testweb\
  Request.PhysicalPath: E:\WWW\testweb\default.aspx
  Request.RawUrl: /testweb/default.aspx
  Request.Url.AbsolutePath: /testweb/default.aspx
  Request.Url.AbsoluteUri: http://www.test.com/testweb/default.aspx
  Request.Url.Host: www.test.com
  Request.Url.LocalPath: /testweb/default.aspx


二、Request.UrlReferrer的使用

Request.UrlReferrer能夠獲取客戶端上次請求的url的有關信息,這樣咱們就能夠經過這個屬性返回到「上一頁」。
示例以下:
1. 首先在Page_load中得到並儲存該信息
Page_load(object obj,EventArgs e)
{
  if(!IsPostBack)
  {
    if(Request.UrlReferrer!=null) 

    {
      ViewState["UrlReferrer"]=Request.UrlReferrer.ToString();
    }
  }
}
l        頁面回發後會改變Request.UrlReferrer,將其指向當前頁面,因此須要進行判斷:只有在第一次請求頁面的時候才儲存該信息;
l        由於可能「上一次」的url不存在,因此須要進行判斷,只有在Request.UrlReferrer存在的狀況下才進行儲存;

2. 而後在返回函數中使用該信息
void Return()
{
  if(ViewState["UrlReferrer"]!=null)
  Response.Redirect(ViewState["UrlReferrer"].ToString();
}
在使用Request.UrlReferrer時還要注意:
(1) 若是上一頁面使用document.location方法導航到當前頁面,Request.UrlReferrer返回空值;
(2) 若是有A,B兩個頁面,在瀏覽器中直接請求A頁面,在A頁面的中Page_Load事件中導航到B 頁面,則 Request.UrlReferrer返回空。由於 在Page_load事件中頁面還未初始化,因此沒法記錄當前頁的信息,導航到b頁面也就沒法得到上一頁面的信息;
(3) 點擊刷新按鈕不會改變Request.UrlReferrer;

web

相關文章
相關標籤/搜索