asp.net中的n種path(轉)

在web服務器端開發中經常會遇到各種不同形式的path,而且經常記不清楚如何獲取到某種特定格式,今天抽了點時間把常用的path獲取方法與格式做了一個簡單的對照表,以備日後查用。
1、Request獲取的信息
Request.AppRelativeCurrentExecutionFilePath                  ~/SysOption/BillingSetup1.aspx
Request.ApplicationPath                                                 /
Request.CurrentExecutionFilePath                                   /SysOption/BillingSetup1.aspx
Request.FilePath                                                            /SysOption/BillingSetup1.aspx
Request.Path                                                                /SysOption/BillingSetup1.aspx
Request.PathInfo                                                          什麼都沒有(待測其他用法)
Request.PhysicalApplicationPath                                      D:/VssWorkFolder/British_School_MIS/src/WebSite/
Request.PhysicalPath                                                      D:/VssWorkFolder/British_School_MIS/src/WebSite/SysOption/BillingSetup1.aspx
Request.UserHostAddress                                              192.168.1.6
Request.UserHostName                                                  192.168.1.6
Request.Url.ToString()                                                    http://192.168.1.6/SysOption/BillingSetup1.aspx?x=d
Request.UrlReferrer                                                        空引用或者跳轉源頁面地址        

2、Request.ServerVariables集合中獲取到的相關信息:
左列是服務器變量名,右側是值,值是通過Request.ServerVariables[服務器變量名]獲取的
APPL_MD_PATH : /LM/W3SVC/894523/Root
APPL_PHYSICAL_PATH : D:/VssWorkFolder/British_School_MIS/src/WebSite/
INSTANCE_META_PATH : /LM/W3SVC/894523
LOCAL_ADDR : 192.168.1.6
PATH_INFO : /SysOption/BillingSetup1.aspx
PATH_TRANSLATED : D:/VssWorkFolder/British_School_MIS/src/WebSite/SysOption/BillingSetup1.aspx
REMOTE_ADDR : 192.168.1.6
REMOTE_HOST : 192.168.1.6
SCRIPT_NAME : /SysOption/BillingSetup1.aspx
SERVER_NAME : 192.168.1.6
URL : /SysOption/BillingSetup1.aspx

Request.ServerVariables是一個很強大的工具,可以幫助我們獲取很多client和web宿主的信息,有興趣的朋友可以通過以下代碼看看它到底包含什麼信息

        foreach (string s in Request.ServerVariables)
        {
            Response.Write(s 
+ "  :  " + Request.ServerVariables[s] + "<br /><br />");
        }


3、path轉換
①轉換爲服務器端路徑(Server.MapPath)
web服務器端開發設計一個有趣的問題就是,地址轉換。比如http地址/images/a.txt,如果你想在服務器端通過io讀取這個文件,就得有這個文件的“本機地址(形如c:/windows/system32/xx.dll)”,這時Server.MapPath就很有用了
Response.Write(Server.MapPath(Request.Path));        輸出爲 :/VssWorkFolder/British_School_MIS/src/WebSite/SysOption/BillingSetup1.aspx
②轉換爲http地址(Page.ResolveClientUrl或Page.ResolveUrl)
Response.Write(Page.ResolveClientUrl("~/a/a.jpg"));      輸出爲 ../a/a.jpg
Response.Write(Page.ResolveUrl("~/a/a.jpg"));              輸出爲 /a/a.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章