1.Response對象
Response對象是HttpResponse類的一個對象,與一個HTTP響應相對應,通過該對象的屬性和方法可以控制如何將服務器端的數據發送到客戶端瀏覽器。
(1)Response對象的屬性
Buffer:表明頁輸出是否被緩衝。
BufferOutput:是否緩衝輸出並在完成處理整個頁之後將其發送。
Cache :獲取Web頁的緩存策略(過期時間、保密性、變化子句)。
Charset :獲取或設置輸出流的HTTP字符集。
ContentEncoding:獲取或設置內容的編碼格式。
ContentType:獲取或設置輸出流的HTTP MIME類型。
Expires:獲取或設置在瀏覽器上緩存的頁過期之前的分鐘數。如果用戶在頁過期之前返回同一頁,則顯示緩存的版本。提供Expires是爲了與以前的ASP版本兼容。
ExpiresAbsolute:獲取或設置將緩存信息從緩存中移除時的絕對日期和時間。提供ExpiresAbsolute是爲了與以前的ASP版本兼容。
Filter:獲取或設置一個包裝篩選器對象,該對象用於在傳輸之前過濾HTTP實體主體。
IsClientConnected:指示客戶端是否仍連接在服務器上。
Output:返回輸出HTTP響應流的文本輸出。
OutputStream:返回輸出Http內容主體的二進制輸出流。
Status:設置返回到客戶端的狀態欄。
StatusCode:獲取或設置返回給客戶端的輸出HTTP狀態代碼,通過HTTP狀態代碼客戶端可以知道服務器端運行情況。
StatusDescription:獲取或設置返回給客戶端的輸出的HTTP狀態字符串。
SuppressContent :是否將HTTP內容發送到客戶端。
(2)Response對象的方法
BinaryWrite:將一個二進制字符串寫入HTTP輸出流。
Clear:清除緩衝區流中的所有內容輸出。
ClearContent:清除緩衝區流中的所有內容。
ClearHeaders:清除緩衝區流中的所有頭信息。
Close:關閉到客戶端的套接字連接。
End:將當前所有緩衝的輸出發送到客戶端,停止該頁的執行,並引發Application_EndRequest事件。
Flush:向客戶端發送當前所有緩衝的輸出。Flush方法和End方法都可以將緩衝的內容發送到客戶端顯示,但是Flush與End的不同之處在於,Flush不停止頁面的執行。
Write:用於將信息寫入輸出流,輸出到客戶端顯示。
WriteFile:直接將指定的文件寫入到輸出流顯示。
Redirect:將瀏覽器轉到指定的另外一個網頁。
2. Request對象
Request對象實際上是System.Web命名空間中的HttpRequest類的對象。當客戶發出請求執行ASP.NET程序時,客戶端的請求信息會包裝在Request對象中,這些請求信息包括請求報頭(Header)、客戶端的機器信息,客戶端瀏覽器信息,請求方法(如POST、GET)、提交的窗體信息等。
(1)Request對象的屬性
AcceptTypes:客戶端支持的MIME接受類型的字符串數組。
ApplicationPath:服務器上ASP.NET應用程序的虛擬應用程序根路徑。
Browser:有關正在請求的客戶端的瀏覽器功能的信息。
ClientCertificate:當前請求的客戶端安全證書。
ContentEncoding:或設置實體主體的字符集。
ContentLength:指定客戶端發送的內容長度(以字節計)。
ContentType:傳入請求的MIME內容類型。
Cookies:客戶端發送的cookie的集合。
CurrentExecutionFilePath:當前請求的虛擬路徑。
FilePath:當前請求的虛擬路徑。
Form:窗體變量集合。
Headers:HTTP頭集合
IsAuthenticated:是否驗證了用戶。
HttpMethod:客戶端使用的HTTP數據傳輸方法(如GET、POST或HEAD)。
IsSecureConnection:HTTP連接是否使用安全套接字(即HTTPS)。
Path:當前請求的虛擬路徑。
PhysicalApplicationPath:當前正在執行的服務器應用程序的根目錄的物理文件系統路徑。
QueryString:HTTP查詢字符串變量集合。
PhysicalPath:獲取與請求的URL相對應的物理文件系統路徑。
RawUrl:當前請求的原始URL。
RequestType:客戶端使用的HTTP數據傳輸方法(GET或POST)。
ServerVariables:獲取Web服務器變量的集合。
Url:有關當前請求的URL的信息。
UserAgent:客戶端瀏覽器的用戶代理信息
UserHostAddress:客戶端的主機地址。
UserHostName:客戶端的DNS名稱。
UserLanguages:客戶端語言首選項的排序字符串數組。
(2)Request對象應用(1)——獲取客戶端表單信息
在Web應用程序中,經常會在一個頁面中填入一些信息,然後提交該頁面到服務器。通過Request對象可以獲得提交的客戶端表單的信息。根據用於提交信息方法的不同,Request對象可以分別使用QueryString和Form屬性獲取客戶端的表單信息。
1.當用戶通過POST方法提交表單信息時,通過Form屬性可以獲取表單信息。
使用方法:Request.Form[“控件名”]
2.當用戶通過GET方法提交表單信息時,通過QueryString可以獲取表單信息。
使用方法:Request.QueryString[“控件名”]
3.Request對象應用(2)——獲取客戶端瀏覽器信息
通過Request對象的Browser屬性可以獲得客戶端瀏覽器的信息,該屬性實際爲一個HttpBrowserCapabilities對象。HttpBrowserCapabilities對象的屬性見示例 演示。
4.Request對象應用(3)——獲取客戶端其它信息
通過Request對象的屬性還可以獲取客戶端的其它信息,例如通過UserAgent屬性獲取客戶端瀏覽器的用戶代理信息,通過UserHostAddress屬性獲取客戶端的主機地址等。
另外通過Request對象Headers屬性可以獲取HTTP的頭部信息。
3.Server對象
Server對象的屬性反映了Web服務器的各種信息,它提供了服務器可以提供的各種服務。
Server對象的主要屬性和方法:
MachineName屬性:獲取服務器的計算機名稱。
ScriptTimeout屬性:獲取和設置請求超時(以秒計)的時間。
GetLastError方法:可以獲得前一個異常,當發生錯誤時可以通過該方法訪問錯誤信息。通過ClearError方法可以清除前一個異常。
Transfer方法:用於終止當前頁的執行,併爲當前請求開始執行新頁。
MapPath方法:應用返回與Web服務器上的指定虛擬路徑相對應的物理文件路徑。
HTMLEncode方法:對要在瀏覽器中顯示的文本進行編碼。
HTMLDecode方法:是HTMLEncode方法的反操作。
UrlEncode方法:對超連接字符串進行編碼。
UrlDecode方法:UrlEncode方法的反操作
4. Application對象
Application對象是一個集合對象,並在整個ASP.NET網站內可用,不同的用戶在不同的時間都可以訪問Application對象的變量。由於它是一個內置對象,所以使用它的時候與使用Response對象和Request對象類似,不需要進行任何對象的實例化,就可以直接使用。
Application對象用來存儲變量或對象,以便在網頁再次被訪問時(不管是不是同一個連接者或訪問者),所存儲的變量或對象的內容還可以被重新調出來使用,也就是說Application對於同一網站來說是公用的,可以在各個用戶間共享。
(1)Application對象的屬性和方法
Count:取得Application對象變量的數量。
Get:使用索引或變量名稱獲取變量的值。
GetKey:使用索引獲取對象變量的值。
Add(name,value):新增一個名稱爲name,值爲value的Application對象變量。
Set(name,value):更新名爲name的Application對象變量的值。
Clear:清除全部的Application對象變量。
Remove(name):刪除名稱爲name的Application對象變量。
Lock:鎖定所有Application對象變量。
UnLock:解除鎖定所有Application對象變量。
(2)Application對象的重要事件
OnStart事件:是當第一個客戶請求ASP.NET文件的時候,由ASP.NET調用執行;
OnEnd事件:在服務器關閉的時候,由ASP.NET調用執行,通常是把所有需要永久保存的信息寫入到磁盤中,以便在服務器重新啓動並被訪問的時候重新加。
使用Application對象存取變量時需要注意以下幾點:
Application對象變量應該是經常使用的數據,如果只是偶爾使用,可以把信息存儲在磁盤的文件中或者數據庫中。
Application對象是一個集合對象,它除了包含文本信息外,也可以存儲對象。
5.Session對象
ASP.NET提供了內置對象Session負責存儲、讀取和改變一個特定用戶的會話信息。對於每個用戶的每次訪問Session對象是唯一的,這主要體現在:
1)對於某個用戶的某次訪問,Session對象在訪問期間唯一,可以通過Session對象在頁面間共享信息。只要Session沒有超時,或者Abandon方法沒有被調用,Session中的信息就不會丟失。Session對象不能在用戶間共享信息,而Application對象可以在不同的用戶間共享信息。
2)對於用戶的每次訪問其Session都不同,兩次訪問之間也不能共享數據。
(1)Session對象的屬性和方法
SessionID:表示一個會話的存在,當用戶與服務器建立連接時服務器就自動給用戶分配一個SessionID,SessionID可以區分不同的會話(Session)。
TimeOut:表示在一個會話結束之前會等待用戶沒有任何活動的最大時間,單位是分鐘。
Abandon:調用該方法用於消除用戶的Session對象並釋放其所佔的資源。調用Abandon方法後會觸發Session_OnEnd事件。
Add(name,value):新增名字爲name,值爲value的Session變量。
Clear:清除所有Session變量。
RemoveAll:清除所有Session變量。
Remove(name):清除名字爲name的Session變量。
RemoveAt(index):刪除索引爲index的Session變量。
CopyTo:將當前會話狀態值集合複製到一個一維數組中。
(2)Session對象的兩個事件
Session_OnStart事件:在創建一個Session時被觸發;
Session_OnEnd事件:在用戶Session結束時(可能是因爲超時或者調用了Abandon方法)被調用。
6. Cookie對象
在Web程序設計中,它表示一個長度不超過4K的一個普通的文本文件。這個文件在用戶的硬盤上,可以由Web瀏覽器進行訪問。
Cookie有兩種形式:會話Cookie和永久Cookie。
會話Cookie是臨時性的,保存在用戶的內存中而不是硬盤上,只在瀏覽器打開的時候才存在,一旦會話結束或會話超時,這個Cookie就被刪除。
永久Cookie則是永久性地存儲在客戶的硬盤上,並且在指定的過期日期之前一直可以使用。
因此,爲了能夠長期地保存Cookie信息,需要設置Cookie的過期日期,這樣才能讓Cookie成爲永久性Cookie。
(1)Cookie對象的屬性和方法
Expires:獲取或設置此Cookie的過期日期和時間。默認爲1000分鐘。
Name:獲取或設置Cookie的名稱。
Value:獲取或設置單個Cookie值。
Values:獲取單個Cookie對象中包含的鍵值對的集合。
Add:向Cookie中添加一個名字、值對。
(2)Cookie的實用方法
Cookies對象不屬於Page對象,用法與Application及Session對象不同。
1)創建一個Cookie
HttpCookie Cookie對象名=new HttpCookie(Cookie名);
2)向Cookie中添加名字、值對
Cookie對象名. values. Add(名字,值);
3)將Cookie寫入到客戶端
Response.AppendCookie(Cookie對象名);
4)獲取Cookie對象
HttpCookie Cookie對象名=Request.Cookies[“Cookie名”];
5)獲取Cookie對象中的值
Cookie.values[“關鍵字名”];
(3)設置Cookie的過期時間
Cookie對象的Expires屬性用於獲取或設置Cookie對象的到期日及時間。到期日及時間以客戶端的計算機爲準。
例如:
設置過期時間爲2011-09-09:
myCookie.Expires =Convert.ToDateTime("2011-09-09");
設置永不過期:
myCookie.Expires = DateTime.MaxValue;