複製鏈接
請複製以下鏈接發送給好友

Request對象

鎖定
Request對象的作用是與客户端交互,收集客户端的Form、Cookies、超鏈接,或者收集服務器端的環境變量。request對象是從客户端向服務器發出請求,包括用户提交的信息以及客户端的一些信息。客户端可通過HTML表單或在網頁地址後面提供參數的方法提交數據,然後服務器通過request對象的相關方法來獲取這些數據。request的各種方法主要用來處理客户端瀏覽器提交的請求中的各項參數和選項。
中文名
請求對象
外文名
Request Object
作    用
與客户端交互
收    集
服務器端的環境變量
對應的類
System、Web、HttpRequest類
惟一屬性
TotalBytes

Request對象簡介

Request對象,又稱為請求對象,該對象派生自HTTPResponse類,是ASP中重要的服務器內置對象,它連接着Web服務器和Web客户端程序。該對象用來獲取客户端在請求一個頁面或者傳送一個Form時提供的所有信息,包括能夠標識瀏覽器和用户的HTTP變量、存儲在客户端Cookie信息以及附在URL後面的值、查詢字符串或頁面中Form段HTML控件內的值、Cookie、客户端證書、查詢字符串等 [1]  。如瀏覽器和用户的變量,客户端表單中的數據、變量或者客户端的cookie信息等,Request對象對應的類是System、Web、HttpRequest類。

Request對象Request對象的屬性與方法

Request對象的屬性
Request對象唯一的屬性是TotalBytes,它提供關於用户請求的字節數量的信息:返回由客户端發出的請求信息的字節數。使用中通常關注客户端各項請求信息的值而非整個請求字符串,因此該屬性很少被用於ASP頁。
Request對象的方法
Request對象唯一的方法是BinaryRead,它允許訪問從用户頁面<FORM>段中傳遞給服務器的請求信息的完整內容。其語法格式為:
Request.BinaryRead(count)
説明:
① count表示當數據作為POST請求的一部分發往服務器時,從客户請求中獲得數據的字節數。
② 該方法返回一個Variant數組(或者SafeArray)。
③ 如果ASP代碼已經引用了Request.Form集合,這個方法就不能再用。同樣,如果用了BinaryRead方法,也不能再訪問Request.Form集合。
Request對象的使用
在ASP中,當客户端請求一個頁面或傳遞一個表單時,Request對象為腳本提供了客户端瀏覽器所提供的全部信息,包括用户請求的所有信息、用户為該域名存放在瀏覽器下的Cookie、使用Secure Socket Layer(SSL)或其它加密通信協議的授權訪問以及對連接進行管理的屬性等。Request對象可以利用集合、屬性、方法等來進行參數的傳遞。其語法格式為:
Request.[ 集合 | 屬性 | 方法 ] ( 變量 )

Request對象語法

Request對象的語法如下:
Request[.collectionlpropertylmethod](variable)
collection集合
clientcertificate 得到在HTTP請求中傳遞在客户端認證域的值
cookies 使用此集合,可得到cookies值
form 得到form對象中元素的值
querystring 得到變量的值
servervariables 得到預置的環境變量的值
property屬性
totalbytes (只讀)指定從客户端傳遞總字節數
buffer 表明頁面輸出是否有緩衝
cachecontrol 決定代理服務器是否能夠對asp的輸出進行快取
property屬性
charset 字符集
contenttype 指定response的HTTP內容類型
expires 定義一個瀏覽器緩存中的頁面在多長時間後過期
expiresabsolute 定義一個瀏覽器緩存中的頁面什麼日期時間後過期
isclientconnected 用户是否連接到服務器
pics 設置pics-label response標題的值,標示pics內容等級
status 由服務器返回的狀態行
説明:
1、其中collection表示集合,它和數組很類似,是由若干元素組成的集合。不過數組一般只能用索引(下標)來引用每一個元素,而集合不僅可以用索引來引用每一個元素的值,還可以用元素的名稱來引用,如Request.Form("txtA")。事實上,後者是常用的方法。
2、variable又稱參數,它就是要獲取的元素的名稱,可以是字符串常量或字符串變量。例如,對表單信息來説,variable就是每一個表單元素的名稱。
3、“【”和“】”之間的參數可以省略,如Request("txtA")。此時因為沒有指定集合,所以ASP將會依次在QueryString、Form、Cookies、ServerVariables、ClientCertificate這5種集合中檢查是否有信息傳入。如果有信息傳入,則會返回獲取的信息。
4、請注意上面的第二個例子,其中前面的strB是定義的一個變量名稱,而後面的strB則是集合中一個元素的名稱,兩者不是一回事。
method方法:binaryread 得到從客户端傳給服務器端的數據,Request對象是ASP中常用的對象,用於獲取客户端的信息,可以使用Request對象訪問任何基於HTTP請求傳遞的所有信息。通過Request對象能夠獲得客户端發送給服務器的信息,不能將服務器端的數據發送給客户端的瀏覽器。Request對象的屬性TotalBytes的功能是取得客户端響應數據字節大小。Request對象的方法BinaryRead的功能是以二進制方式讀取客户端post的數據。

Request對象對象集合

request對象有五個集合,下面予以介紹:
QueryString
:用以獲取客户端附在url地址後的查詢字符串中的信息。
例如:stra=Request.QueryString ["strUserld"]
Form
:用以獲取客户端在FORM表單中所輸入的信息。(表單的method屬性值需要為POST)
例如:stra=Request.Form["strUserld"]
Cookies
:用以獲取客户端的Cookie信息。
例如:stra=Request.Cookies["strUserld"]
ServerVariables
:用以獲取客户端發出的HTTP請求信息中的頭信息及服務器端環境變量信息。
例如:stra=Request.ServerVariables["REMOTE_ADDR"],返回客户端IP地址
ClientCertificate
:用以獲取客户端的身份驗證信息
例如:stra=Request.ClientCertificate["VALIDFORM"],對於要求安全驗證的網站,返回有效起始日期。

Request對象動態服務器頁面

ASP即Active Server Pages,是Microsoft公司開發的服務器端腳本環境,可用來創建動態交互式網頁並建立強大的web應用程序。當服務器收到對ASP文件的請求時,它會處理包含在用於構建發送給瀏覽器的HTML(Hyper Text Markup Language,超文本置標語言)網頁文件中的服務器端腳本代碼。除服務器端腳本代碼外,ASP文件也可以包含文本、HTML(包括相關的客户端腳本)和com組件調用 [2]  。ASP簡單、易於維護 , 是小型頁面應用程序的選擇 ,在使用DCOM(Distributed Component Object Model)和MTS(Microsoft Transaction Server)的情況下,ASP甚至可以實現中等規模的企業應用程序。
參考資料
  • 1.    郭素芳,崔鳳梅,孟冬梅主編,ASP.NET實用技術,南開大學出版社,2010.05
  • 2.    沈才梁,李志奎,唐科萍,姚爭兒.ASP網頁設計:清華大學出版社,2006年01月