ASPNET程序設計教程第5章-ASPNET常用對象和狀態(tài)管理課件_第1頁
ASPNET程序設計教程第5章-ASPNET常用對象和狀態(tài)管理課件_第2頁
ASPNET程序設計教程第5章-ASPNET常用對象和狀態(tài)管理課件_第3頁
ASPNET程序設計教程第5章-ASPNET常用對象和狀態(tài)管理課件_第4頁
ASPNET程序設計教程第5章-ASPNET常用對象和狀態(tài)管理課件_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第5章 ASP.NET常用對象和狀態(tài)管理本章講述的主要內(nèi)容5.1 Page對象5.2 Response對象5.3 Request對象5.4 Server對象5.5 ASP.NET狀態(tài)管理5.6 實訓 使用Cookie5.1 Page對象5.1.1 Page對象的常用屬性、方法和事件 1. Page對象的屬性5.1 Page對象5.1.1 Page對象的常用屬性、方法和事件 2. Page對象的常用方法和事件5.1 Page對象5.1.2 Web窗體頁面的生命周期1) 初始化:該階段將觸發(fā)Page對象的Init事件,并執(zhí)行OnInit方法。該階段在Web窗體的生存周期內(nèi)僅此一次。2) 加載視圖狀

2、態(tài):該階段主要執(zhí)行LoadViewState()方法3) 處理回發(fā)數(shù)據(jù):該階段主要執(zhí)行LoadPostData()方法,用來檢查客戶端發(fā)回的控件數(shù)據(jù)的狀態(tài)是否發(fā)生了變化。4) 加載:該階段將觸發(fā)Load事件,并執(zhí)行Page_Load方法。5) 預呈現(xiàn):該階段要處理在最終呈現(xiàn)之前所做的各種狀態(tài)更改。6) 保存狀態(tài):該階段的任務是將當前狀態(tài)寫入ViewState屬性。7) 呈現(xiàn):該階段將對應的HTML代碼寫入最終響應的流中。8) 處置:該階段將執(zhí)行Dispose方法,釋放占用的系統(tǒng)資源。9) 卸載:這是Web窗體生命周期的最后一個階段,在這個階段中將觸發(fā)UnLoad事件,執(zhí)行OnUnLoad方法,

3、以處理Web窗體在消亡前的最后處理。5.2 Response對象5.2.1 Response對象的常用屬性和方法 Response對象的常用屬性見下表。5.2 Response對象5.2.1 Response對象的常用屬性和方法 Response對象的常用方法見下表。 5.2 Response對象5.2.2 使用Response對象輸出信息到客戶端1. 使用Write方法 Write方法的語法格式如下: Response.Write(string);2. 使用WriteFile方法 使用Response對象的WriteFile方法可以將指定的文件內(nèi)容直接寫入HTML輸出流。其語法格式如下: R

4、esponse.WriteFile(filename);5.2 Response對象5.2.3 使用Redirect方法實現(xiàn)頁面跳轉 Response對象的Redirect方法用于將客戶端重定向到新的URL,實現(xiàn)頁面間的跳轉。該方法的語法格式如下: Response.Redirect(url ,endResponse)使用Response對象的Redirect方法時應注意如下問題:1) 使用該方法實現(xiàn)跳轉時,瀏覽器地址欄中將顯示目標URL。2) 執(zhí)行該方法時,重定向操作發(fā)生在客戶端,涉及到兩個不同頁面或兩個Web服務器之間的通信,第一階段是對原頁面的請求,第二階段是對目標URL的請求。3) 該

5、方法執(zhí)行后內(nèi)部控件保存的所有信息將丟失,因此當從A頁面跳轉到B頁面后,在頁面B中無法訪問A頁面提交的數(shù)據(jù)。若需從A頁面?zhèn)鬟f數(shù)據(jù)到B頁面,只能通過url參數(shù)中的“?”來實現(xiàn)。5.3 Request對象5.3.1 Request對象的常用屬性和方法 1. Request對象的常用屬性 5.3 Request對象5.3.1 Request對象的常用屬性和方法 2. Request對象的常用方法1) MapPath(VirtualPath):該方法將當前請求的URL中的虛擬路徑VirtualPath映射到服務器上的物理路徑。參數(shù)VirtualPath用于指定當前請求的虛擬路徑(可以是絕對路徑,也可以是

6、相對路徑)。返回值為與VirtualPath對應的服務器端物理路徑。2) SaveAs(filename, includeHeaders):該方法將客戶端的HTTP請求保存到磁盤。參數(shù)filename用于指定文件在服務器上保存的位置;布爾型參數(shù)includeHearders用于指示是否同時保存HTTP頭。 5.3 Request對象5.3.1 Request對象的常用屬性和方法 3. 通過查詢字符串實現(xiàn)跨頁數(shù)據(jù)傳遞 Request對象的QueryString屬性用于接收來自用戶請求URL地址中“?”后面的數(shù)據(jù),通常將這些數(shù)據(jù)稱為“查詢字符串”,也稱為“URL附加信息”,常被用來在不同網(wǎng)頁中傳遞

7、數(shù)據(jù)。使用Response對象的Redirect屬性可以同時傳遞多個參數(shù),其語法格式如下: Response.Redirect(目標網(wǎng)頁?參數(shù)1 & 參數(shù)2& 參數(shù)n);5.3 Request對象5.3.1 Request對象的常用屬性和方法 4. 使用Browser屬性獲取客戶瀏覽器信息 Request對象的Browser屬性包含有眾多子屬性,用來返回客戶端瀏覽器的信息和客戶端操作系統(tǒng)的信息等。5.3 Request對象5.3.2 處理HTML表單 在Web窗體頁面中,往往包含有許多Web服務器控件(文本框、單選按鈕、復選框等)或HTML表單。這些控件的值存放在窗體變量中,當用戶提交頁面時,

8、這些窗體變量被發(fā)送到服務器端。使用Request對象的Form屬性可以訪問被提交到服務器的窗體變量。其語法格式如下: Request.Formelement | index Request對象的Browser屬性包含有眾多子屬性,用來返回客戶端瀏覽器的信息和客戶端操作系統(tǒng)的信息等。 參閱源代碼:ex5-15.4 Server對象5.4.1 Server對象的常用屬性和方法 Server對象的常用屬性有: MachineName屬性和 ScriptTimeout屬性常用方法見下表。5.4 Server對象5.4.2 Execute、Transfer和MapPath方法 1. Execute和Tr

9、ansfer方法 Server對象的Execute方法和Transfer方法都可以實現(xiàn)從當前頁面跳轉到另一頁面的功能。但需要注意的是:Execute方法在新頁面中的程序執(zhí)行完畢后自動返回到原頁面,繼續(xù)執(zhí)行后續(xù)代碼;而Transfer方法在執(zhí)行了跳轉后不再返回原頁面,后續(xù)語句也永遠不會被執(zhí)行。但跳轉過程中Request、Session等對象中保存的信息不變,也就是說從A頁面使用Transfer方法跳轉到B頁面后,可以繼續(xù)使用A頁面中提交的數(shù)據(jù)。 此外,由于Execute方法和Transfer方法都是在服務器端執(zhí)行的,客戶端瀏覽器并不知道已進行了一次頁面跳轉,所以其地址欄中的URL仍然是原頁面的數(shù)

10、據(jù)。這一點與Response對象Redirect方法實現(xiàn)的頁面跳轉是不同的。5.4 Server對象5.4.3 Execute、Transfer和MapPath方法 2.MapPath方法 在Web應用程序執(zhí)行時可能需要訪問存放在服務器中的某一文件,此時就需要將文件的虛擬路徑轉換成服務器端對應的物理路徑。而Server對象的MapPath方法就是用來完成這一任務的。MapPath()方法的語法格式為: Server.MapPath(虛擬路徑);5.5 ASP.NET的狀態(tài)管理5.5.1 創(chuàng)建和使用Cookie對象 1. 創(chuàng)建Cookie 瀏覽器負責管理客戶機上的Cookie,Cookie需要通

11、過Response對象發(fā)送到瀏覽器,發(fā)送前需要將其添加到Cookie集合中。 Cookie有3個重要的參數(shù):名稱、值和有效期。如果沒有設置Cookie的有效期,它仍可被創(chuàng)建,但不會被Response對象發(fā)送到客戶端,而是將其作為用戶會話的一部分進行維護,當用戶關閉瀏覽器(會話結束)時該Cookie將被釋放。這種非永久性Cookie十分適合用來保存只需要短暫保存或由于安全原因不能保存在客戶機上的信息。 創(chuàng)建Cookie的語法格式如下: Response.Cookies名稱.Value = 值; 5.5 ASP.NET的狀態(tài)管理5.5.1 創(chuàng)建和使用Cookie對象 2. 讀取Cookie 使用R

12、equest對象的Cookies屬性可以讀取保存在客戶機上指定Cookie的值,其語法格式如下: 變量 = Request.Cookies名稱.Value;5.5 ASP.NET的狀態(tài)管理5.5.1 創(chuàng)建和使用Cookie對象 3. 使用多值Cookie 例如,下列語句創(chuàng)建了一個名為“Person”的Cookie集合,其中包含有3個子屬性,對于瀏覽器來說,只相當于一條Cookie。 使用下列語句可從上述多值Cookie中讀取數(shù)據(jù)。參閱源代碼:ex5-25.5 ASP.NET的狀態(tài)管理5.5.2 創(chuàng)建和使用Session對象 1. Session的工作原理 當用戶請求一個ASP.NET頁面時,系

13、統(tǒng)將自動創(chuàng)建一個Session,退出應用程序時該會話撤銷。系統(tǒng)創(chuàng)建會話時將為其分配一個標識(SessionID),以實現(xiàn)對會話進行管理和跟蹤。 SessionID具有的隨機性和惟一性保證了會話不會沖突,也不能利用新SessionID推算出現(xiàn)有會話的SessionID。 通常情況下,SessionID會存放在客戶端的Cookies內(nèi),當用戶訪問ASP.NET網(wǎng)站中任何一個頁面時,SessionID將通過Cookie傳遞到服務器端,服務器根據(jù)SessionID的值對用戶進行識別,以返回對應該用戶的Session信息。5.5 ASP.NET的狀態(tài)管理5.5.2 創(chuàng)建和使用Session對象 2. S

14、ession對象的常用屬性及方法Session對象的常用屬性見下表。5.5 ASP.NET的狀態(tài)管理5.5.2 創(chuàng)建和使用Session對象 2. Session對象的常用屬性及方法Session對象的常用方法見下表。5.5 ASP.NET的狀態(tài)管理5.5.2 創(chuàng)建和使用Session對象 3. 使用Session對象 (1) 將數(shù)據(jù)保存到Session對象中 向Session對象中存入數(shù)據(jù)的方法十分簡單,下面的語句使用戶單擊按鈕時將3個字符串分別存入2個Session中。5.5 ASP.NET的狀態(tài)管理5.5.2 創(chuàng)建和使用Session對象 3. 使用Session對象 (2) 從Sess

15、ion對象中取出數(shù)據(jù) 下面的語句表示了當目標頁面裝入時如何從Session對象中取出數(shù)據(jù)的方法。protected void Page_Load(object sender, EventArgs e) Label1.Text = (string)(SessionMyVal1); Label2.Text = Session“MyVal2”.ToString();5.5 ASP.NET的狀態(tài)管理5.5.3 使用PreviousPage屬性 1. PreviousPage與Session的比較 PreviousPage與Session相似,都可以實現(xiàn)跨頁數(shù)據(jù)傳遞。二者主要的不同有以下幾點: PreviousPage主要用來傳遞控件的屬性值。Session不僅可以傳遞控件屬性值,也可以方便地傳遞變量值。 PreviousPage與Session相比不需要一直占用服務器內(nèi)存資源,特別適合跨頁面?zhèn)鬟f較多數(shù)據(jù)的情況。 2. PreviousPage使用示例 參閱源代碼:ex

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論