asp.net提供了大量的對象類庫,在這些類庫中包含了許多封裝好的內置對象,我們只需要直接使用這些對象的方法和屬性,就能簡單快速地完成很多的功能。Request對象、Response對象和Serve對象主要用來連接服務器和客戶端瀏覽器之間的聯系。Cookie對象、session對象和application對象則主要用于網站狀態管理。
(1)Response對象
Response對象可以動態的響應客戶端的需求,并將動態生成的響應結果返回給客戶端瀏覽器。Respose對象可以實現很多功能,如向客戶端輸出數據、跳轉網頁等。
Response對象的常用方法 :
1.BinaryWrite:將一個二進制字符串寫入HTTP輸出流。
2.Clear:清除緩沖區流中的所有內容輸出。
3.Close:關閉到客戶端的套接字連接。
4.End:將當前所有緩沖的輸出發送到客戶端,停止該頁的執行,并引發 Application_EndRequest 事件。
5.Flush:向客戶端發送當前所有緩沖的輸出。
6.Redirect:將客戶端重定向到新的 URL。Write將信息寫入 HTTP 輸出內容流。
7.Write:將信息寫入HTTP輸出內容流。
8.WriteFile將指定的文件直接寫入HTTP內容輸出流。
(2)Request 對象
Request 對象是System.Web.HttPRequest類的實例。當用戶在客戶端使用Web瀏覽器向Web應用程序發出請求時,就會將客戶端的信息發送到Web服務器。Web服務器就接收到一個HTTP請求,它包含了所有查詢字符串參數或表單參數、Cookie數據以及瀏覽器的信息。在ASP.NET中運行時把這些客戶端的請求信息封裝成Request對象。
Request對象的常用方法 :
1.BinaryRead:執行對當前輸入流進行指定字節數的二進制讀取。
2.MapImageCoordinates:將傳入圖像字段窗體參數影射為適當的x/y坐標值。
3.MapPath:為當前請求將請求的URL中的虛擬路徑映射到服務器上的物理路徑。
4.SaveAs:將HTTP請求保存到磁盤。
5.ValidateInput:驗證由客戶端瀏覽器提交的數據,如果存在具有潛在危險的數據,則引發一個異常。
(3)Server對象
Server對象是System.Web.HttpServerUtility類的實例,它包含了一些與服務器相關的信息。使用它可以獲得有關最新的錯誤信息、對HTML文本進行編碼和解碼、訪問和讀寫服務器端的文件等功能。
Server對象的屬性 :
1.MachineName:獲取服務器的計算機名稱。
2.ScriptTimeout:獲取或設置請求超時值(以秒計)。
(4)Session對象
Session對象實際上操作System.Web命名空間中的HttpSessionState類 。
Session對象可以為每個用戶的會話存儲信息。
Session對象中的信息只能被用戶自己使用,而不能被網站的其他用戶訪問,因此可以在不同的頁面間共享數據,但是不能在用戶間共享數據。利用Session進行狀態管理是一個ASP.NET的顯著特點。它允許程序員把任何類型的數據存儲在服務器上。
SessionID是傳播于網絡服務器和客戶端之間的唯一的一個標識信息。當客戶端出示它的SessionID,ASP.NET找到相應的Session,從狀態服務器里獲得相應的序列化數據信息,從而激活該Session,并把它放到一個可以被程序所訪問的集合里。
為了系統能夠正常工作,客戶端必須為每個請求保存相應的SessionID,獲取某個請求的SessionID的方式有兩種:
1)使用Cookies。在這種情況下,當Session集合被使用時,SessionID被ASP.NET自動轉化為一個特定的Cookie(被命名為ASP.NET_SessionID)。
2)使用改裝的URL。在這種情況下,SessionID被轉化一個特定的改裝的URL。ASP.NET的這個新特性可以讓程序員在客戶端禁用Cookies時創建Session。
ASP.NET對于Session內容的存儲也提供了多種的模式:
1)InProc(默認):Session存儲在IIS進程中(Web服務器內存)。InProc擁有最好的性能,但犧牲了健壯性和伸縮性。
2)StateServe:Session存儲在獨立的Windows服務進程asp.net_state.exe中(可以不是Web服務器)。
3)SqlServer:Session存儲在SqlServer數據庫的表中,可以用aspnet_regsql.exe配置它(SqlServer服務器)。
(5)Cookie對象
Cookie對象為Web應用程序保存用戶相關信息提供了一種有效的方法。當用戶訪問某個的站點時,該站點可以利用Cookie保存用戶首選項或其他信息,這樣當用戶下次再訪問該的站點時,應用程序就可以檢索以前保存的信息。
當用戶第一次訪問某個站點時,Web應用程序發送給該用戶一個頁面和一個包含日期和時間的Cookie。用戶的瀏覽器在獲得頁面的同時還得到了這個Cookie,并且將它保存在用戶硬盤上的某個文件夾中。以后如果該用戶再次訪問這個站點上的頁面,瀏覽器就會在本地硬盤上查找與該網站相關聯的Cookie。如果Cookie存在,瀏覽器就將它與頁面請求一起發送到網站,Web應用程序就能確定該用戶上一次訪問站點的日期和時間。
Cookie中保存的信息片斷以“鍵/值”對的形式儲存,一個“鍵/值”對僅僅是一條命名的數據。一個網站只能取得它放在用戶電腦中的信息,它無法從其他的Cookies文件中取得別的信息,也無法得到用戶電腦上的其他任何東西。
使用Cookies的優點可以歸納如下幾點:
1.可配置到期規則。Cookies可以在瀏覽器會話結束時到期,或者可以在客戶端計算機上無限期存在。
2.不需要任何服務器資源。Cookies存儲在客戶端并在發送后由服務器讀取。
3.簡單性。Cookies是一種基于文本的輕量結構,包含簡單的鍵值對。
4.數據持久性。Cookies通常是客戶端上持續時間最長的數據保留形式。
Cookies對象的屬性:
1.Domain:獲取或設置將此Cookies與其關聯的域。
2.Expires:獲取或設置此Cookie的過期日期和時間。
3.Name:獲取或設置Cookies的名稱。
4.Path:獲取或設置輸出流的HTTP字符集。
5.Secure:獲取或設置一個值,該值指示是否通過SSL(即僅通過HTTPS)傳輸Cookie。
6.Value:獲取或設置單個Cookies值。
7.Values:獲取在單個Cookies對象中包含的鍵值對的集合。
Cookies對象的方法 :
1.Add:添加一個Cookies變量。
2.Clear:清除Cookies集合中的變量。
3.Get:通過索引或變量名得到Cookies變量值。
4.GetKey:以索引值獲取Cookies變量名稱。
5.Remove:通過Cookies變量名稱來刪除Cookies變量。
對象Request和Response都提供了一個Cookies集合。可以利用Response對象設置Cookies的信息,而使用Request對象獲取Cookies的信息。
刪除Cookie是修改Cookie的一種形式。由于Cookie位于用戶的計算機中,所以無法直接將其刪除。但可以讓瀏覽器來刪除Cookie。將其有效期設置為過去的某個日期,就會刪除這個已過期Cookie。刪除一個Cookie就是利用一個過期的Cookie來代替它。
(6)Application對象
Application對象是System.Web命名空間中的HttpApplicationState類的實例。
Application對象為經常使用的信息提供了一個有用的Web站點存儲位置,Application中的信息可以被網站的所有頁面訪問,因此可以在不同的用戶間共享數據。
Application的原理是在服務器端建立一個狀態變量,來存儲所需的信息。要注意的是,首先,這個狀態變量是建立在內存中的,其次是這個狀態變量是可以被網站的所有頁面訪問的。
Application對象具有的特點:
1.數據可以在Application對象內部共享。
2.一個Application對象包含的事件,可以觸發某些Applicatin對象腳本。
3.個別Application對象可以用Internet Service Manager來設置而獲得不同屬性。
4.單獨的Application對象可以隔離出來,在它們自己的內存中運行.
5.可以停止一個Application對象而不會影響到其他應用程序。
6.一個網站可以有不止一個Application對象。
7.Application對象成員在服務器運行期間持久地保存數據。其生命周期終止于關閉IIS或使用Clear方法清除。
8.因為多個用戶可以共享一個Application對象,所以必須要有Lock和Unlock方法,以確保多個用戶無法同時改變某一屬性。
Application對象的屬性 :
1.AllKeys:獲取HttpApplicationState集合中的訪問鍵。
2.Count:獲取HttpApplicationState集合中的對象數。
(7)ViewState對象
ViewState是一種機制,ASP.NET使用這種機制來跟蹤服務器控件狀態值,否則這些值就不作為HTTP窗體的一部分而回傳。
ViewState是由ASP.NET框架管理的一個隱藏的窗體字段。當ASP.NET執行某個頁面時,該頁面上的ViewState值和所有控件將被收集并格式化成一個編碼字符串,然后被分配給隱藏窗體字段的值屬性。由于隱藏窗體字段是發送到客戶端的頁面的一部分,所以ViewState值被臨時存儲在客戶端的瀏覽器中。如果客戶端選擇將該頁面會傳給服務器,則ViewState字符串也將被會傳。
ViewState提供了一個ViewState集合屬性。該集合屬性是集合類的一個實例,集合類是一個鍵值集合,程序員可以通過鍵來為ViewState增加或者去除項。
|
新聞熱點
疑難解答