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隨機分配,不會重復,用來區分不同用戶??稍诰W站的配置文件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/1
新聞熱點
疑難解答