ASP.NET頁面對象 - Request

1、HttpRequest 成員 web

公共構造函數 算法

名稱 編程

說明 windows

HttpRequest api

初始化 HttpRequest 對象。 數組

 公共屬性 瀏覽器

名稱 安全

說明 服務器

AcceptTypes cookie

獲取客戶端支持的 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 數據傳輸方法(如 GETPOST  HEAD)。

InputStream

獲取傳入的 HTTP 實體主體的內容。

IsAuthenticated

獲取一個值,該值指示是否驗證了請求。

IsLocal

獲取一個值,該值指示該請求是否來自本地計算機。

IsSecureConnection

獲取一個值,該值指示 HTTP 鏈接是否使用安全套接字(即 HTTPS)。

Item

 CookiesFormQueryString  ServerVariables 集合中獲取指定的對象。

LogonUserIdentity

獲取當前用戶的 WindowsIdentity 類型。

Params

獲取 QueryStringFormServerVariables  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

獲取客戶端語言首選項的排序字符串數組。

 公共方法

名稱

說明

BinaryRead

執行對當前輸入流進行指定字節數的二進制讀取。

Equals 

已重載。 肯定兩個 Object 實例是否相等。 (從 Object 繼承。)

GetHashCode 

用做特定類型的哈希函數。GetHashCode 適合在哈希算法和數據結構(如哈希表)中使用。 (從 Object 繼承。)

GetType 

獲取當前實例的 Type (從 Object 繼承。)

MapImageCoordinates

將傳入圖像字段窗體參數映射爲適當的 x 座標值和 y 座標值。

MapPath

已重載。 爲當前請求將請求的 URL 中的虛擬路徑映射到服務器上的物理路徑。

ReferenceEquals 

肯定指定的 Object 實例是不是相同的實例。 (從 Object 繼承。)

SaveAs

 HTTP 請求保存到磁盤。

ToString 

返回表示當前 Object  String (從 Object 繼承。)

ValidateInput

對經過 Cookies Form  QueryString 屬性訪問的集合進行驗證。

 受保護的方法

名稱

說明

Finalize 

容許 Object 垃圾回收回收 Object 以前嘗試釋放資源並執行其餘清理操做。 (從Object 繼承。)

MemberwiseClone 

建立當前 Object 的淺表副本。 (從 Object 繼承。)

 

2、Request對象三種取得數據的方法

Request對象功能是從客戶端獲得數據,經常使用的三種取得數據的方法是:Request.FormRequest.QueryStringRequest。其第三種是前兩種的一個縮寫,能夠取代前兩種狀況。而前兩種主要對應的Form提交時的兩種不一樣的提交方法:分別是Post方法和Get方法。

Request 對象的屬性和方法比較多,經常使用的幾個爲:UserAgent 傳回客戶端瀏覽器的版本信息,UserHostAddress 傳回遠方客戶端機器的主機IP 地址,UserHostName傳回遠方客戶端機器的DNS 名稱,PhysicalApplicationPath 傳回目前請求網頁在Server端的真實路徑。

1、從瀏覽器獲取數據

利用Request方法,能夠讀取其餘頁面提交過來的數據。提交的數據有兩種形式:一種是經過Form表單提交過來,另外一種是經過超級連接後面的參數提交過來,兩種方式均可以利用Request對象讀取。

<%@ Page Language="C#"%>

<%

    string strUserName = Request["Name"];

    string strUserLove = Request["Love"];

%>

姓名:<%=strUserName%>

愛好:<%=strUserLove%>

<form action="" method="post">

<P>姓名:<input type="TEXT" size="20" name="Name"></P>

<P>興趣:<input type="TEXT" size="20" name="Love"></P>

<P><input type="submit" value=" "></P>

</form>

 

2、獲得客戶端的信息

利用Request對象內置的屬性,能夠獲得一些客戶端的信息,好比客戶端瀏覽器版本和客戶端地址等等

<%@ Page Language="C#"%>

客戶端瀏覽器:<%=Request.UserAgent %>

客戶端IP地址:<%=Request.UserHostAddress %>

當前文件服務端物理路徑:<%=Request.PhysicalApplicationPath %>

 

3、Request對象包括:

 報頭

 客戶端的基本信息(如瀏覽器類型、版本號、用戶所用的語言及編碼方式等)

 請求方法(PostGet

 參數名

 參數值

 

Request對象的調用方法:

Request.Collection["Variable"]

其中,CollectionQueryStringFormCookiesServerVariables四種集合。Collection能夠省略,如用Request["Variable"]調用,但這樣會下降效率。

 

如下是這四種集合:

1QueryString集合

 QueryString集合收集的信息來自於請求Url中「?」號後面的數據,這些數據一般稱爲「Url附加信息」:

 http://www.aspcn.com/show.asp?id=111

 在此Url中,QueryString收集到的信息是「Show.asp?」後的附加數據「id=111

 此時,取得參數id的參數值的語句是:

 Request.QueryString["id"]

QueryString集合主要用於收集Http協議中的Get請求發送的數據,若是一個請求事件中被請求的程序Url中出現「?」號後的數據,則表示這次請求方式爲Get。最經常使用的超連接,就是經過Get發送請求。也能夠經過Form發送Get請求。

那麼,在show.asp頁面中,就能夠用Request.QueryString["id"]得到id的參數值。

 

2Form集合

Form集合與QueryString相似,但它用於收集Post方法發送的請求數據(Get方法通常只能傳遞256字節的數據,而Post能夠達到2M)。

Post請求必須由Form來發送。那麼,在show.asp頁面中,就能夠用Request.Form["id"]得到id的參數值。

 

3Cookies集合

 

4ServerVariable集合

 ServerVariable(環境變量)集合中包含了服務器和客戶端的系統信息。

 ---客戶端:

 (1)獲取客戶端瀏覽器版本號: Request.ServerVariable["HTTP_USER_AGENT"]

 (2)獲取客戶端IP地址:  Request.ServerVariable["REMOTE_ADDR"]

 (3)獲取客戶端所使用的語言:  HTTP_ACCEPT_LANGUAGE

 (4)獲取請求的方法:   REQUEST_METHOD

 (5)獲取請求信息的內容的總符數:  CONTENT_LENGTH

 (6)獲取請求信息的類型   CONTENT_TYPE

 (7)獲取URL的附加信息:   QUERY_STRING

 (8)獲取網關接口:   GATEWAY_INTERFACE

 ---服務器:

 (1)獲取服務器的IP地址:  Request.ServerVariable["LOCAL_ADDR"]

 (2)獲取服務器的主機名:  Request.ServerVariable["SERVER_NAME"]

 (3)獲取當前執行程序的虛擬目錄:   PATH_INFO

 (4)獲取當前執行程序的絕對路徑:   PATH_TRANSLATED

 (5)獲取當前程序的文件名(包含虛擬路徑): SCRIPT_NAME

 (6)獲取服務器接受請求的端口:   SERVER_PORT

 (7)獲取服務器聽從的協議及版本號:  SERVER_PROTOCAL

 

Browser對象

 ASP.netBrowser對象是經過調用RequestBrowser屬性直接得到的,它能夠得到瀏覽器的更深刻的信息

 檢測瀏覽器的類型:  Request.Brower.Brower 顯示結果,例如 IE

 檢測瀏覽器的版本:  Requet.Brower.Version 顯示結果,例如 6.0b

 檢測瀏覽器是否支持ActiveX控件:  ActiveXControls

 檢測瀏覽器是否支持Cookies  Cookies

 檢測瀏覽器是否支持VBScript  VBSCript

 

其它Request屬性、方法:

 * FilePath 取得當前請求的文件路徑,例: String filePath = Request.FilePath;

 * HttpMethod 取得當前請求的方法

 * Files

 * Params 得到 QueryString + Form + ServerVariable + Cookies 的集合。

 * TotalBytes 請求內容的大小

 * Url  得到Url信息,例:

    HttpUrl objUrl = Request.URL;

    string sPort = objUrl.Port;

    string sProtocol = objUrl.Protocol;

 * UserHostAddress(用戶IP)、UserHostNameUserLanguages

 

4、Request獲取url信息的各類方法比較

ASP.NET編程中常常須要用Request獲取url的有關信息,Request中有多種方法獲取url信息,但我常常忘了各類方法的具體做用,今天我就寫了個測試程序,將各類方法獲得的結果列出來,之後用時直接參考一下就好了。

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

 

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: [url]http://www.test.com/testweb/default.aspx[/url]

 

Request.Url.Host: [url]www.test.com[/url]

 

Request.Url.LocalPath: /testweb/default.aspx

 

6、獲取客戶端信息

Response.Write("客戶端計算機名:" + Request.UserHostName + "<BR />");  

Response.Write("客戶端IP" + Request.UserHostAddress + "<BR />");  

Response.Write("瀏覽器:" + Request.Browser.Browser + "<BR />");  

Response.Write("瀏覽器版本:" + Request.Browser.Version + "<BR />");  

Response.Write("瀏覽器類型:" + Request.Browser.Type + "<BR />");  

Response.Write("客戶端操做系統:" + Request.Browser.Platform + "<BR />");  

Response.Write("是否支持Java" + Request.Browser.JavaApplets + "<BR />");  

Response.Write("是否支持框架網頁:" + Request.Browser.Frames + "<BR />");  

Response.Write("是否支持Cookie" + Request.Browser.Cookies + "<BR />");  

Response.Write("客戶端.NET Framework版本:" + Request.Browser.ClrVersion + "<BR />");  

Response.Write("JScript版本:" + Request.Browser.JScriptVersion + "<BR />");  

 

Response.Write("請求的虛擬路徑:" + Request.Path + "<BR />");  

//Response.Write("title" + Request.He + "<BR />");  

for(int i=0;i<Request.Headers.Count;i++){  

Response.Write(Request.Headers.Keys[i]+":"  + Request.Headers[Request.Headers.Keys[i]]+ "<BR />");  

}  

Response.Write("請求的物理路徑:" + Request.PhysicalPath + "<BR />");  

 

Response.Write("瀏覽器類型和版本:" + Request.ServerVariables["HTTP_USER_AGENT"] + "<BR />");  

Response.Write("用戶的IP地址:" + Request.ServerVariables["REMOTE_ADDR"] + "<BR />");  

Response.Write("請求的方法:" + Request.ServerVariables["REQUEST_METHOD"] + "<BR />");  

Response.Write("服務器的IP地址:" + Request.ServerVariables["LOCAL_ADDR"] + "<BR />");

相關文章
相關標籤/搜索