.Net技巧:ASP.NET擷取網站路徑

來源:互聯網
上載者:User
文章目錄
  • 1.Request.ApplicationPath->當前應用的目錄
  • 2.Request.FilePath->對應於iis的虛擬目錄
  • 3.Request.Path->當前請求的虛擬路徑
  • 4.Request.MapPath(string url)->將url映射為iis上的虛擬目錄
  • 5.Server.MapPath(string url)->將url映射為伺服器上的實體路徑

網站在伺服器磁碟上的實體路徑: HttpRuntime.AppDomainAppPath
虛擬程式路徑: HttpRuntime.AppDomainAppVirtualPath

任何於Request/HttpContext.Current等相關的方法, 都只能在有請求上下文或者頁面時使用. 即在無請求上下文時,HttpContext.Current為null. 而上面提到的方法一直可用.

對於全域Cache對象的訪問亦然.

==================================================================================

樣本:輸出asp.net 網站路徑。

private void responseHtml()
    ...{
         System.Text.StringBuilder sb = new System.Text.StringBuilder();
         sb.Append(string.Format("目前時間: {0}", Server.HtmlEncode(DateTime.Now.ToString())));
         sb.Append("<br />");
         sb.Append(string.Format("當前請求的虛擬路徑: {0}",Server.HtmlEncode(Request.CurrentExecutionFilePath)));
         sb.Append("<br />");
         sb.Append(string.Format("擷取當前應用程式的根目錄路徑: {0}", Server.HtmlEncode(Request.ApplicationPath)));
         sb.Append("<br />");
         sb.Append(string.Format("當前請求的虛擬路徑: {0}",Server.HtmlEncode(Request.FilePath)));
         sb.Append("<br />");
         sb.Append(string.Format("當前請求的虛擬路徑: {0}",Server.HtmlEncode(Request.Path)));
         sb.Append("<br />");
         sb.Append(string.Format("擷取當前正在執行的應用程式的根目錄的物理檔案系統路徑: {0}", Server.HtmlEncode(Request.PhysicalApplicationPath)));
         sb.Append("<br />");
         sb.Append(string.Format("擷取與請求的 URL 相對應的物理檔案系統路徑: {0}", Server.HtmlEncode(Request.PhysicalApplicationPath)));
         sb.Append("<br />");
         Response.Write(sb.ToString());
     }
}

輸出:目前時間: 2007-08-30 11:03:49
當前請求的虛擬路徑: /aDirectory/Sample/responseHtml.aspx
擷取當前應用程式的根目錄路徑: /aDirectory
當前請求的虛擬路徑: /aDirectory/Sample/responseHtml.aspx
當前請求的虛擬路徑: /aDirectory/Sample/responseHtml.aspx
擷取當前正在執行的應用程式的根目錄的物理檔案系統路徑: E:\Visual Studio 2005\
擷取與請求的 URL 相對應的物理檔案系統路徑: E:\Visual Studio 2005\\aDirectory\

在ASP.NET編程中經常需要用Request擷取url的有關資訊

測試的url地址是http://www.test.com/testweb/default.aspx, 結果如下:
Request.ApplicationPath:                     /testweb
Request.CurrentExecutionFilePath:       /testweb/default.aspx
Request.FilePath:          &nbsp;                     /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

當url中帶參數時可以使用:
HttpContext.Current.Request.Url.PathAndQuery.ToString()//

本頁地址:   Request.URL; 

上頁地址:  

Request.UrlReferrer  
Request.ServerViables["http_referer"]  
Request.RawUrl  
Request.RawUrl.QueryAndPath  
System.IO.Path.GetFileName(Request.FilePath.ToString()) 

HttpRequest 類型公開了以下成員。

建構函式
名稱 說明
HttpRequest 基礎結構。初始化 HttpRequest 對象。
頁首
方法
名稱 說明
BinaryRead 執行對當前輸入資料流進行指定位元組數的二進位讀取。
Equals 確定指定的 Object 是否等於當前的 Object。 (繼承自 Object。)
Finalize 允許 Object 在“記憶體回收”回收 Object 之前嘗試釋放資源並執行其他清理操作。 (繼承自 Object。)
GetHashCode 用作特定類型的雜湊函數。 (繼承自 Object。)
GetType 擷取當前執行個體的 Type。 (繼承自 Object。)
MapImageCoordinates 將傳入映像欄位表單參數映射為適當的 x 座標值和 y 座標值。
MapPath 已重載。 為當前請求將請求的 URL 中的虛擬路徑映射到伺服器上的實體路徑。
MemberwiseClone 建立當前 Object 的淺表副本。 (繼承自 Object。)
SaveAs 將 HTTP 要求儲存到磁碟。
ToString 返回表示當前 Object 的 String。 (繼承自 Object。)
ValidateInput 對通過 Cookies 、Form 和 QueryString 屬性訪問的集合進行驗證。
頁首
屬性
名稱 說明
AcceptTypes 擷取用戶端支援的 MIME 接受類型的字串數組。
AnonymousID 擷取該使用者的匿名標識符(如果存在)。
ApplicationPath 擷取伺服器上 ASP.NET 應用程式的虛擬應用程式根路徑。
AppRelativeCurrentExecutionFilePath 擷取應用程式根的虛擬路徑,並通過對應用程式根使用波狀符號 (~) 標記法(例如,以“~/page.aspx”的形式)使該路徑成為相對路徑。
Browser 擷取或設定有關正在請求的用戶端的瀏覽器功能的資訊。
ClientCertificate 擷取當前請求的用戶端安全性憑證。
ContentEncoding 擷取或設定實體主體的字元集。
ContentLength 指定用戶端發送的內容長度(以位元組計)。
ContentType 擷取或設定傳入請求的 MIME 內容類型。
Cookies 擷取用戶端發送的 Cookie 的集合。
CurrentExecutionFilePath 擷取當前請求的虛擬路徑。
FilePath 擷取當前請求的虛擬路徑。
Files 擷取採用多部分 MIME 格式的由用戶端上傳的檔案的集合。
Filter 擷取或設定在讀取當前輸入資料流時要使用的篩選器。
Form 擷取表單變數集合。
Headers 擷取 HTTP 頭集合。
HttpMethod 擷取用戶端使用的 HTTP 資料轉送方法(如 GET、POST 或 HEAD)。
InputStream 擷取傳入的 HTTP 實體主體的內容。
IsAuthenticated 擷取一個值,該值指示是否驗證了請求。
IsLocal 擷取一個值,該值指示該請求是否來自本機電腦。
IsSecureConnection 擷取一個值,該值指示 HTTP 串連是否使用安全通訊端(即 HTTPS)。
Item 從 Cookies、Form、QueryString 或 ServerVariables 集合中擷取指定的對象。
LogonUserIdentity 擷取目前使用者的 WindowsIdentity 類型。
Params 擷取 QueryString、Form、ServerVariables 和 Cookies 項的組合集合。
Path 擷取當前請求的虛擬路徑。
PathInfo 擷取具有 URL 副檔名的資源的附加路徑資訊。
PhysicalApplicationPath 擷取當前正在執行的伺服器應用程式的根目錄的物理檔案系統路徑。
PhysicalPath 擷取與請求的 URL 相對應的物理檔案系統路徑。
QueryString 擷取 HTTP 查詢字串變數集合。
RawUrl 擷取當前請求的原始 URL。
RequestType 擷取或設定用戶端使用的 HTTP 資料轉送方法(GET 或 POST)。
ServerVariables 擷取 Web 服務器變數的集合。
TotalBytes 擷取當前輸入資料流中的位元組數。
Url 擷取有關當前請求的 URL 的資訊。
UrlReferrer 擷取有關用戶端上次請求的 URL 的資訊,該請求連結到當前的 URL。
UserAgent 擷取用戶端瀏覽器的原始使用者代理程式資訊。
UserHostAddress 擷取遠程用戶端的 IP 主機地址。
UserHostName 擷取遠程用戶端的 DNS 名稱。
UserLanguages 擷取用戶端語言喜好設定的排序字串數組。

1.Request.ApplicationPath->當前應用的目錄

樓主沒有接觸過jsp吧,如果接觸過jsp就會非常清楚,ApplicationPath指的是當前的application(應用程式)的目錄
對應的--例如我的伺服器上有兩個web應用網域名稱都是MySite.com 一個映射到目錄MySite.com/1/ 另一個影射到 http://MySite.com/2/
那麼 MySite.com/1/就是第一個應用的ApplicationPath 同理 MySite.com/2/就是第二個應用的ApplicationPath

2.Request.FilePath->對應於iis的虛擬目錄

如 URL http://MySite.com/1/index.html/pathinfo
FilePath = /1/index.html

3.Request.Path->當前請求的虛擬路徑

Path 是 FilePath 和 PathInfo 尾部的串聯。例如 URL http://MySite.com/1/index.html/pathinfo
那麼Path = /1/index.html/pathinfo

4.Request.MapPath(string url)->將url映射為iis上的虛擬目錄

這個目錄都是相對於application的根目錄的
於Server.MapPath相比,不會包含類似c:/這樣的路徑
可以理解為是相對路徑(對比的Server.MapPath就是絕對路徑)

5.Server.MapPath(string url)->將url映射為伺服器上的實體路徑

例如 http://MySite.com/1/index.html 假設你的應用程式在c:/iis/MySite中
那麼 就是 c:/iis/MySite/1/index.html

Requst.FilePath擷取當前請求的虛擬路徑。FilePath 屬性不包含 PathInfo 尾部。例如,對於 URL http://www.contoso.com/virdir/page.html/tail,FilePath 值為 /virdir/page.html。

===============================================================================================================================

Request.Path 擷取當前請求的虛擬路徑。Path 是 FilePath 和 PathInfo 尾部的串聯。例如,對於 URL http://www.contoso.com/virdir/page.html/tail,Path 為 /virdir/page.html/tail。

===============================================================================================================================

Request.MapPath 方法將指定的虛擬路徑映射到實體路徑。
下面的程式碼範例使用 MapPath 方法將虛擬路徑轉換為伺服器上完整實體路徑。此樣本包括兩個部分:

.aspx 頁映射路徑、讀取檔案並顯示讀取操作的結果。

UpperCaseFilterStream 類,該類將通過它傳遞的所有字元都更改為大寫。

樣本的第一部分顯示如何使用 MapPath 方法將虛擬路徑轉換為完整實體路徑。之後,將此實體路徑傳遞給 StreamReader 對象,該對象包含該檔案的內容。然後,調用 Write 方法,以在頁面上顯示檔案的內容。Filter 屬性用於將篩選器附加到響應流,該響應流使頁面上顯示的文本全部大寫。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.