版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第5章ASP.NET的常用對象,5.1 ASP.NET對象概述 5.2 Page對象 5.3 Response對象 5.4 Request對象 5.5 Server對象 5.6 Application對象 5.7 Session對象 5.8 Cookie對象 5.9 配置Global. asax文件,5.1 ASP.NET對象概述 ASP.NET中常用的內置對象及其說明如下表所示。,5.2 Page對象 Page對象其實就是Web應用程序的.aspx文件,又稱為頁面。 也就是說,每一個ASP.NET網(wǎng)頁都是一個Page對象,Page對象是由System.Web.UI命名空間中的Page類來實現(xiàn)
2、的,Page類與擴展名為.aspx的文件相關聯(lián),這些文件在運行時被編譯為Page對象,并緩存在服務器內存中。,5.2.1 ASP.NET網(wǎng)頁的處理過程,5.2.1 Page對象的屬性 Page對象的常用屬性及其說明如下表所示,除此之外,Page對象還包括Response 、Request 、Server、Session和Application對象屬性。,1. IsPostBack屬性 獲取一個布爾值,為時True表示當前網(wǎng)頁是為響應客戶端回發(fā)(PostBack,指網(wǎng)頁及操作狀態(tài)傳回服務器)而加載,為False時表示首次加載和訪問網(wǎng)頁。 在Page_Load事件處理過程中,通過該屬性可以實現(xiàn)首次
3、加載和回發(fā)時執(zhí)行不同的程序代碼,例如: void Page_Load(Object o,EventArgs e) if (!Page.IsPostBack) /如果網(wǎng)頁為首次加載,則進行一些操作 ,2. IsValid屬性 獲取一個布爾值,指示網(wǎng)頁上的驗證控件是否驗證成功。若網(wǎng)頁驗證控件全部驗證成功,該值為True,否則為False。 IsValid屬性在網(wǎng)頁驗證中起著重要作用。例如,以下事件過程通過mylabel標簽輸出驗證結果: void Button1_Click(Object Sender, EventArgs E) if (Page.IsValid) /也可寫成if (Page.Is
4、Valid = true) mylabel.Text=信息驗證成功!; else mylabel.Text=信息驗證失敗; ,5.2.2 Page對象的方法 Page對象的常用方法及其說明如下表所示。,5.2.3 Page對象的事件 Page的常用事件及其說明如下表所示,,1. Init事件 Init事件對應的事件處理過程為Page_Init。在初始化網(wǎng)頁時觸發(fā)該事件。Init事件只觸發(fā)一次。Init事件通常用來完成系統(tǒng)所需的初始化,如設置網(wǎng)頁、控件屬性的初始值。 2. Load事件 Load事件對應的事件處理過程為Page_Load。當在內存中加載網(wǎng)頁時觸發(fā)該事件。Load事件可以觸發(fā)多次。
5、不管是首次加載,還是按用戶要求回送信息再次調用網(wǎng)頁的回發(fā)加載,Page_Load事件處理過程都會被執(zhí)行。 3. Unload事件 Unload事件對應的事件處理過程為Page_Unload。當網(wǎng)頁從內存中卸載并將輸出結果發(fā)送給瀏覽器時觸發(fā)該事件。 Unload事件主要用來執(zhí)行最后的資源清理工作,如關閉文件、關閉數(shù)據(jù)庫連接和釋放對象等。由于這個事件是最后事件,網(wǎng)頁的所有內容已經(jīng)傳到客戶端瀏覽器,所以不能使用它來改變控件。這個事件并不是指用戶在瀏覽器端關閉網(wǎng)頁,而是從IIS角度講,網(wǎng)頁從內存中卸載時發(fā)生這個事件。,【例5.1】設計一個使用Page對象的IsPostBack屬性的網(wǎng)頁WForm5-1
6、。,其設計步驟如下: (1)在Myaspnet網(wǎng)站的ch5文件夾中添加一個名稱為WForm5-1的空網(wǎng)頁。 (2)其設計界面中包含一個文本框TextBox1、一個按鈕Button1和一個標簽Label1。在該網(wǎng)頁上設計如下事件過程: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Page.IsPostBack = True Then Label1.Text = TextBox1.Text 用于輸出當前的時間。 實際上Write方法將指定的字符串輸出到
7、客戶端,由客戶端瀏覽器解釋后輸出,所以這個輸出字符串中可以包含一些HTML格外輸出標記。,2. Redirect方法 使用Redirect方法可以實現(xiàn)在不同頁面之間進行跳轉的功能,也就是可以從一個網(wǎng)頁地址轉到另一個網(wǎng)頁地址,可以是本機的網(wǎng)頁,也可以是遠程的網(wǎng)頁地址。例如,輸入以下代碼: Response.Redirect( 當程序被執(zhí)行的時候,顯示的是武漢大學的主頁。,3. End方法 End方法用來輸出當前緩沖區(qū)的內容,并中止當前頁面的處理。例如: Response.Write(歡迎光臨); Response.End(); Response.Write(我的網(wǎng)站!); 只輸出“歡迎光臨”,而
8、不會輸出“我的網(wǎng)站!”。End方法常常用來幫助調試程序。,【例5.2】設計一個使用Response對象的Write方法輸出若干文字的網(wǎng)頁窗體WForm5-2。,其設計步驟如下: (1)在Myaspnet網(wǎng)站的ch5文件夾中添加一個名稱為WForm5-2的空網(wǎng)頁。圖5.5 WForm5-2網(wǎng)頁運行界面 (2)其設計界面中不包含任何內容。在該網(wǎng)頁上設計如下事件過程: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Response.Write(中華人民共和國)
9、Response.Write(中華人民共和國) Response.Write(中華人民共和國) Response.Write(中華人民共和國) End Sub,運行界面,5.4 Request對象 Request對象的主要功能是從客戶端獲取數(shù)據(jù)。 使用該對象可以訪問任何HTTP請求傳遞的信息,包括使用POST方法或者GET方法傳遞的參數(shù)、cookie和用戶驗證。,5.4.1 Request對象的屬性,5.4.2 Request對象的方法,1. MapPath方法 其使用語法格式如下: MapPath(VirtualPath) 該方法將當前請求的URL中的虛擬路徑VirtualPath映射到服務
10、器上的物理路徑。參數(shù)VirtualPath用于指定當前請求的虛擬路徑(可以是絕對路徑,也可以是相對路徑)。返回值為與VirtualPath對應的服務器端物理路徑。 例如,語句: Response.Write(Request.MapPath(aa); 在瀏覽器中輸出aa所在的物理路徑。,2. SaveAs方法 其使用語法格式如下: SaveAs(filename, includeHeaders) 該方法將客戶端的HTTP請求保存到磁盤。參數(shù)filename用于指定文件在服務器上保存的位置;布爾型參數(shù)includeHearders用于指示是否同時保存HTTP頭。 例如: Request.SaveA
11、s(H:aaa, True); 則執(zhí)行后在H盤根目錄產(chǎn)生aaa文件。,【例5.3】設計一個獲取客戶端機器和瀏覽器的信息的網(wǎng)頁WForm5-3。,(1)在Myaspnet網(wǎng)站的ch5文件夾中添加一個名稱為WForm5-3的空網(wǎng)頁。 (2)其設計界面中不包含任何內容。在該網(wǎng)頁上設計如下事件過程: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Response.Write(瀏覽器名稱和主版本號: 2. Transfer方法 用戶可能希望將用戶從一個ASP.NET
12、網(wǎng)頁重定向到另一個網(wǎng)頁。重定向頁的方法很多,使用Server.Transfer方法就是其中的一種方法,其語法格式如下: Server.Transfer(URL); Transfer方法執(zhí)行完新的網(wǎng)頁后,不再返回原網(wǎng)頁執(zhí)行。,3. Execute方法 有時用戶希望在網(wǎng)頁運行時執(zhí)行其他網(wǎng)頁的內容后繼續(xù)執(zhí)行當前網(wǎng)頁的內容,可以使用Server.Execute方法。其語法格式如下: Server.Execute(URL); Execute方法執(zhí)行完新的網(wǎng)頁后再返回原網(wǎng)頁執(zhí)行。,【例5.6】設計一個獲取服務器端相關信息的網(wǎng)頁WForm5-6。,Protected Sub Button1_Click(By
13、Val sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Label1.Text = 服務器名稱: int int1=34; Application.Add(var1,str1); Application.Add(var2,int1); 這樣Application集合中新增了var1和var2兩個對象,它們的值分別是“mystr”和34。,2. Remove和RemoveAt方法 它們都用刪除Application集合中的指定對象,其使用語法格式如下: Application.Remove(對象名); Ap
14、plication.RemoveAt(對象索引); 例如: Application.Remove(var1)/刪除var1對象 Application.RemoveAt(1); /刪除var2對象,5.6.3 Application對象的事件,【例5.7】設計一個實現(xiàn)簡單聊天功能的網(wǎng)頁WForm5-7。,其設計步驟如下: (1)在Myaspnet網(wǎng)站的ch5文件夾中添加一個名稱為WForm5-7的空網(wǎng)頁。 (2)其設計界面如下圖所示,其中包含一個標簽(Label1,用于顯示聊天內容)、兩個文本框(TextBox1和TextBox2,分別用于輸入姓名和聊天記錄,TextBox2的TextMode
15、屬性設為MultiLine)和一個命令按鈕(Button1,用于提交聊天記錄)。在該網(wǎng)頁上設計如下事件過程:,設計界面,單擊工具欄中的按鈕運行本網(wǎng)頁,輸入姓名開始聊天。再次啟動IE瀏覽器,輸入地址http:/localhost/Myaspnet/WForm5-7.aspx啟動本網(wǎng)頁,這樣兩個人就可以相互聊天了,如下圖所示。,運行界面,5.7 Session對象 當用戶請求一個ASP.NET頁面時,系統(tǒng)將自動創(chuàng)建一個Session(會話),退出應用程序或關閉服務器時該會話撤銷。 系統(tǒng)在創(chuàng)建會話時將為其分配一個長長的字符串(SessionID)標識,以實現(xiàn)對會話進行管理和跟蹤。該字符串中只包含UR
16、L中所允許的ASCII字符。SessionID具有的隨機性和唯一性保證了會話不會沖突,也不會被懷有惡意的人利用新SessionID推算出現(xiàn)有會話的SessionID。,5.7.1 Session對象的屬性,5.7.2 Session對象的方法,1. Add方法 用于將新對象添加到Session集合中。其語法格式如下: Session.Add(字符串,對象值) 其中,“字符串”指定對象名。例如: string str1=mystr; int int1=34; Session.Add(var1,str1); Session.Add(var2,int1);,2. Clear方法 用于清除Sessio
17、n集合中所有對象,其使用語法格式如下: Session.Clear();,5.7.3 Session對象的事件,【例5.8】設計一個采用Session對象在網(wǎng)頁之間傳遞數(shù)據(jù)的網(wǎng)頁WForm5-8和WForm5-8-1.aspx。 其設計步驟如下: (1)在Myaspnet網(wǎng)站的ch5文件夾中添加一個名稱為WForm5-8的空網(wǎng)頁。 (2)其設計界面如下圖所示,其中包含兩個文本框(TextBox1和TextBox2,分別用于輸入用戶名和口令,TextBox2的TextMode屬性設置為Password)和一個命令按鈕(Button1)。在該網(wǎng)頁上設計如下事件過程: Protected Sub B
18、utton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Session(uname) = TextBox1.Text Session(upass) = TextBox2.Text Server.Transfer(WForm5-8-1.aspx) End Sub,設計界面,(3)再添加一個名稱為WForm5-8-1.aspx的空網(wǎng)頁,不放置任何控件,在該網(wǎng)頁上設計如下事件過程: Protected Sub Page_Load(ByVal sender As Object, By
19、Val e As System.EventArgs) Handles Me.Load Dim mystr As String mystr = 用戶名: /新建名稱為mycookie1的Cookie對象 cookie1.Value=mystring;/其值為設為mystring Response.Cookies.Add(cookie1); /添加cookie1對象 HttpCookie cookie2 = new HttpCookie(mycookie2,good); /新建名稱為mycookie2的Cookie對象,其值為good Response.Cookies.Add(cookie2);
20、/添加cookie2對象,2. 設置多值Cookie 一個Cookie對象可以有多個值,通過子鍵區(qū)分。 例如,當一個名稱為mycookie的Cookie對象已添加到Response對象中后,可以通過以下語句設置兩個子鍵的值: Response.Cookiesmycookieuname=Smith; Response.Cookiesmycookieuage=23.ToString(); 或者在創(chuàng)建Cookie對象同時設置多個值: HttpCookie cookie=new HttpCookie(mycookie); cookie.Valuesuname=Smith; cookie.Valuesu
21、age=23.ToString(); Response.Cookies.Add(cookie);,3. 讀取Cookie對象 對于單值Cookie對象,直接用Request.CookiesCookie的Name屬性值來讀取其Cookie值。 對于多值Cookie對象,還需加上子鍵名稱,例如,以下語句將Name為mycookie1的Cookie對象的兩個子鍵值分別在兩個文本框中輸出: TextBox1.Text = Request.Cookiesmycookie1uname; TextBox2.Text = Request.Cookiesmycookie1uage;,4. Cookie的有效期
22、Cookie的Expires屬性為DateTime類型的,用來指定Cookie的過期日期和時間即Cookie的有效期。瀏覽器在適當?shù)臅r候刪除已經(jīng)過期的Cookie。如果不給Cookie指定過期日期和時間,則為會話Cookie,不會存入用戶的硬盤,在瀏覽器關閉后就被刪除 。 應根據(jù)應用程序的需要來設置Cookie的有效期,如果用來保存用戶的首選項,則可以把其設置為永遠有效(例如100年),如果用來統(tǒng)計用戶訪問次數(shù),則可以把有效期設置為半年。即使設置長期有效,用戶也可以自行決定將其全部刪除。,5. 修改和刪除Cookie 修改某個Cookie實際上是指用新的值創(chuàng)建新的Cookie,并把該Cooki
23、e發(fā)送到瀏覽器,覆蓋客戶機上舊的Cookie。 刪除Cookie是修改Cookie的一種形式。由于Cookie位于用戶的計算機中,所以無法直接將其刪除。但是,可以修改Cookie將其有效期設置為過去的某個日期,從而讓瀏覽器刪除這個已過期的Cookie。,【例5.9】設計一個說明Cookie對象使用方法的網(wǎng)頁WForm5-9。 其設計步驟如下: (1)在Myaspnet網(wǎng)站的ch5文件夾中添加一個名稱為WForm5-9的空網(wǎng)頁。 (2)其設計界面如下圖所示,其中包含兩個文本框(TextBox1和TextBox2)和兩個命令按鈕(Button1和Button2)。在該網(wǎng)頁上設計如下事件過程:,設計
24、界面,Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 寫入Cookie事件過程 Dim cookie As New HttpCookie(mycookie) cookie.Value = TextBox1.Text cookie.Expires = DateTime.Now.AddDays(3) 保存3天 Response.Cookies.Add(cookie) End Sub Protected Sub Button2_Click(By
25、Val sender As Object, ByVal e As System.EventArgs) Handles Button2.Click 讀取Cookie事件過程 If Not Request.Cookies(mycookie) Is Nothing Then TextBox2.Text = Request.Cookies(mycookie).Value Else Response.Write(alert(NULL) End If End Sub,運行界面,5.9 配置Global. asax文件 每個ASP.NET網(wǎng)頁面中都會存在許多的事件,如Page_Load等,可以在網(wǎng)頁中進行編
26、程來處理這些事件。作為一個ASP.NET應用程序也存在這樣的事件,如應用程序開始時要執(zhí)行什么操作,一個新Session被創(chuàng)建的時候要進行什么操作等等。那么對這些事件的處理要寫在什么地方呢?通常情況下這些事件處理過程應放在Global.asax和Web.config這兩個文件中。有關Web.config文件的內容在以后介紹,這里只討論Global.asax文件。 在ASP.NET中都不會自動創(chuàng)建Global.asax文件,如果要創(chuàng)建該文件,選擇“網(wǎng)站”|“添加新項”菜單命令,在打開的“添加新項”對話框中選擇“全局應用程序類”選項,單擊“添加”按鈕即可創(chuàng)建一個Global. asax文件。 該文件位于ASP.NET應用程序的根目錄下,其作用就是用來處理與應用程序相關的一些事件。,常用的應用程序相關事件及事件被觸發(fā)時間如下表所示。,【例5.10】設計一個統(tǒng)計在線人數(shù)的網(wǎng)頁WForm5-10。 其設計步驟如下: (1)打開Myaspnet網(wǎng)站。 (2)若本網(wǎng)站中沒有Global.asax文件,則添加一個,否則打開該文件,修改其內容如下(只添加黑體代碼部分,其他不變):, Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) 在應用程序啟動時運行的代碼 Application.Lock() Appli
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026湖北黃岡市黃梅縣事業(yè)單位考核招聘“三支一扶”服務期滿人員14人備考考試題庫附答案解析
- 2026福建寧德福鼎市前岐中心幼兒園招聘備考考試題庫附答案解析
- 2026年上半年黑龍江事業(yè)單位聯(lián)考省體育局招聘13人備考考試題庫附答案解析
- 2026山東工程職業(yè)技術大學高層次人才(博士)招聘2人備考考試試題附答案解析
- 2026四川成都銀行股份有限公司招聘12人備考考試試題附答案解析
- 企業(yè)生產(chǎn)安全巡查制度
- 安全生產(chǎn)法建立舉報制度
- 臺州路橋農(nóng)商銀行2026年招聘開始啦!備考考試試題附答案解析
- 領導生產(chǎn)值班制度
- 2026西藏林芝市林業(yè)和草原局招聘公益性崗位人員1人參考考試試題附答案解析
- 職業(yè)培訓機構五年發(fā)展策略
- 《小盒子大舞臺》參考課件
- 任捷臨床研究(基礎篇)
- 供應鏈危機應對預案
- DBJ41-T 263-2022 城市房屋建筑和市政基礎設施工程及道路揚塵污染防治差異化評價標準 河南省工程建設標準(住建廳版)
- 砌筑工技能競賽理論考試題庫(含答案)
- 水工鋼結構平面鋼閘門設計計算書
- JJG 291-2018溶解氧測定儀
- 《抗體偶聯(lián)藥物》課件
- 《肺癌的診斷與治療》課件
- 音響質量保證措施
評論
0/150
提交評論