ASP.NET可以成爲一個龐大的軟件體系,與它提供了大量的對象類庫有很大的關係。這些類庫中包含許多封裝好的內置對象,開發人員能夠直接使用這些對象的方法和屬性,所以用較少的代碼量就能輕鬆完成不少對象。
這篇博客就將總結一下ASP.NET中的幾個基本對象。這些對象主要分爲兩大功能:
一是用來鏈接服務器和客戶端瀏覽器之間的聯席,包括:Page類,Request對象,Response對象和Server對象; 二是用於網站狀態管理,包括:Cookie對象,Session對象和Application對象。
(一)Page類
對於一個頁面而言,它是有本身的生命週期的,主要是如下5個階段。
頁面初始化:頁面及其控件被初始化,頁面肯定這是一個新的請求仍是一個回傳請求。
載入:若是當前頁面是回傳請求,則該頁面將從視圖狀態和控件狀態中加載控件的屬性,引起load事件。
回送事件處理:若是請求是回傳請求,任何控件的回發事件處理過程將被調用。
呈現:結果經過HTTP響應發送回客戶機。
卸載:對頁面使用過的資源進行清除,調用Unload方法。
在本身敲過的一些實例來看,最經常使用的還有一個IsPostBack屬性。這個屬性是用來識別Page對象是否處於一個回送的狀態下,也就是弄清楚請求頁面是第一個實例,仍是請求回送的原來的頁面。
(二)Request對象
當用戶在客戶端使用Web瀏覽器向Web應用程序發出請求時,就會將客戶端的信息發送到Web服務器,客戶端的請求信息就被封裝爲Request對象。
Request對象的經常使用屬性:
Request.UserAgent:用來獲取客戶端瀏覽器版本。
Request.UserHostAddress:獲取客戶端ip地址。
Request.ApplicaionPath:獲取當前網站的相對路徑。
Request.PhysicalApplicationPath:獲取當前網站的絕對路徑。
(三)Response對象
Response對象是封裝了Web服務器對客戶端請求的響應,它用來操做與HTTP協議相關的信息,並將結果返回給請求者。
兩個經常使用方法:
Write():輸出信息到瀏覽器
Redirect():地址轉向,將瀏覽器引導到新的WEB頁或網站。
(四)Server對象
它包含一些與服務器相關的信息。使用它能夠得到有關最新的錯誤信息、對HTML文本進行編碼和解碼、訪問和讀寫服務器端的文件等功能。
經常使用方法和屬性:
Server.MachineName:獲取服務器名稱
Server.HtmlEncode():將字符串進行html編碼。
Server.Transfer();終止當前頁執行,開始執行新頁。與Response.Redirect()類似。
Server.MapPath();返回物理路徑。
(五)Cookie對象
這個對象在咱們平時上網,瀏覽器中也見到過。一般都有清理Cookie記錄這一選項,可想而知,這個對象即是用來幫助咱們保存一些瀏覽記錄的,並且這些信息都是保存在咱們的客戶機上的。
使用Cookie有如下幾個優勢:
無配置到期規則。Cookie能夠在瀏覽器會話結束時到期,或者能夠在客戶端計算機上無限期存在,取決於客戶端的到期規則。
不須要任何服務器資源。Cookie存儲在客戶端並在發送後由服務器讀取。
簡單性。Cookie是一種基於文本的輕量結構。
數據持久性。Cookie一般是客戶端上持續時間最長的數據保留形式。
(六)Session對象
它能夠爲每一個用戶的會話存儲信息。Session對象中的信息只能被用戶本身使用,而不能被網站的其餘用戶訪問。因此,利用Session對象能夠在不一樣的頁面間共享數據,可是不能在不一樣的用戶間共享數據,它經常使用來對用戶的登陸狀況作判斷或存儲。
注意要點:
Session對象存儲的值,時間到了就會消失。可用TimeOut屬性設置它的生存時間。
網頁中能夠有無數多個Session對象,每一個Session都有本身獨立的SessionId,所以相互間不影響
當用戶登陸時,系統會自動爲其分配一個SessionID,這個id隨機分配,不會重複,用來區分不一樣用戶。
可在網站的配置文件web.config裏設置過時時間。<sessionState timeout="30"/>
Session.Abandon();退出登陸或註銷就須要用到此方法。
(七)Application對象
Application對象也是用來存儲信息的,與Session對象不一樣的是,它存儲的信息能夠在各個用戶間共享,Application存儲的值,一直不會消失,直到網站關閉。它主要用來統計在線人數,聊天室發言,網站訪問量等。主要有Lock()和UnLock()方法。
具備的特色:
對象中的數據能夠在程序內部被全部用戶所共享。
擁有本身的事件,能夠在須要的時候被觸發以執行相應的程序代碼。
一個應用程序中能夠存在多個Application對象,互不影響。
在服務器運行期間可以持久地保存數據。
使用Lock和UnLock方法,能夠保證多個用戶沒法同時改變它的屬性。
ASP.NET的七個基本對象看了不少遍其它書上的資料,但每次看完後,都沒有及時作總結,因此也就感受很混亂,在編寫程序的時候常常見但又不知道是什麼,經過這一次的總結,把這七個基本對象完整地梳理了一遍,也總算是清楚了不少。在之後須要用到的時候,至少想的起來什麼地方該用何種對象,用此對象的意義何在。
.Net源碼:http://www.eyesourcecode.com/f/DotNet/1html