




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第8章ASP.NET內(nèi)建組件對象
在ASP.NET3.5中提供了一些內(nèi)建組件對象,主要用來動態(tài)保存客戶端狀態(tài),這些內(nèi)建對象可以被開發(fā)人員通過程序動態(tài)配置、提取及檢索。在ASP.NET3.5中提供的內(nèi)置對象包括Response、Request、Application、Session等,用來保存用戶信息和獲取用戶信息。章節(jié)內(nèi)容8.1Response對象和Request對象8.2Application對象和Session對象8.3Server對象8.4ViewState對象
8.1Response對象和Request對象Response對象是HttpResponse類的實例,Request對象是HttpRequest類的實例。HttpResponse類用來封裝頁面操作的HTTP響應(yīng)信息,而Request對象主要用來讀取客戶端發(fā)送的HTTP值。8.1.1Response對象Response對象主要用來封裝頁面操作的HTTP響應(yīng)信息,它與ASP.NET服務(wù)器控件一樣,自身封裝了一些屬性和方法。Response對象常用的屬性如表所示。屬性描述Cache獲取Web頁面的緩存策略Charset獲取或設(shè)置輸出流的HTTP字符集類型ContentEncoding獲取或設(shè)置輸出流的HTTP字符集BufferOutput獲取或設(shè)置一個值,該值指示是否緩沖輸出并在完成處理整個頁面之后將其發(fā)送IsClientConnected獲取一個值,通過該值指示客戶端是否仍連接在服務(wù)器上TrySkipIisCustomErrors獲取或設(shè)置一個值,指定是否支持IIS7.0自定義錯誤輸出ContentType獲取或設(shè)置輸出流的HTTPMIME類型8.1.1Response對象在Response對象中還包含一些方法,這些方法用來向客戶端輸出HTTP數(shù)據(jù)流,可以使用cookie對象來保存客戶端的信息,也可以將數(shù)據(jù)流輸出到頁面中,還可以重定位頁面。Response對象常用的方法如表所示。方法描述AddHeader()將一個HTTP頭添加到輸出流BinaryWrite()將一個二進制字符串寫入HTTP輸出流Write()將信息寫入HTTP響應(yīng)流,輸出到客戶端WriteFile()將指定的文件數(shù)據(jù)寫入到HTTP響應(yīng)流,輸出到客戶端End()停止頁面執(zhí)行8.1.1Response對象Write方法此方法用來將指定的數(shù)據(jù)輸送到客戶端瀏覽器,是Response對象中常用的方法之一,其使用格式如下。Response.Write("字符串/表達式")End方法此方法用來終止向客戶端瀏覽器中輸出字符串,其使用格式如下。Response.End()8.1.1Response對象Clear方法此方法用來將頁面緩沖區(qū)中的數(shù)據(jù)清除,其使用格式如下。Response.Clear()Redirect方法此方法主要用來實現(xiàn)頁面的跳轉(zhuǎn),當(dāng)程序執(zhí)行到帶有此方法的代碼行時,會將頁面跳轉(zhuǎn)到Redirect方法指定的頁面中,其使用格式如下。Response.Redirect()8.1.2Request對象瀏覽器在請求服務(wù)器時,會將客戶端的信息發(fā)送到服務(wù)器。在ASP.NET中運行時把這些用戶請求信息封裝在Request對象中。Request對象成員列表如表所示。屬性描述Cookies獲取客戶端發(fā)動的Cookie集合QueryString獲取HTTP數(shù)據(jù)流中查詢字符串集合Browser獲取發(fā)起請求的瀏覽器的功能信息URL獲取當(dāng)前請求的URL信息UserHostAddress獲取遠程客戶端IP主機的地址Path獲取當(dāng)前請求的虛擬路徑MapPath()映射請求URL中的虛擬路徑到服務(wù)器上的物理路徑8.1.2Request對象QueryString集合QueryString集合收集的信息來自于請求Url中“?”號后面的數(shù)據(jù),這些數(shù)據(jù)通常稱為“Url附加信息”。QueryString集合主要用于收集HTTP協(xié)議中的Get請求發(fā)送的數(shù)據(jù),如果一個請求事件中被請求的程序Url中出現(xiàn)“?”號后的數(shù)據(jù),則表示此次請求方式為Get。最常用的超鏈接就是通過Get發(fā)送請求。在超鏈接中,往往需要從一個頁面跳轉(zhuǎn)到另外一個頁面,跳轉(zhuǎn)的頁面需要獲取HTTP的值來進行相應(yīng)的操作,如產(chǎn)品頁面的products.aspx?id=1。為了獲取傳遞過來的ID值,則可以使用Request的QueryString屬性。Request.QueryString["id"];8.1.2Request對象Path獲取路徑通過使用Path的方法可以獲取當(dāng)前請求的虛擬路徑。使用Path屬性來獲取客戶端請求頁面地址。 protectedvoidPage_Load(objectsender,EventArgse) { //頁面請求地址 Response.Write("頁面請求地址為:"+Request.Path.ToString()); }8.1.2Request對象UserHostAddress獲取IP記錄通過使用UserHostAddress的方法,可以獲取遠程客戶端IP主機的地址。獲取客戶端主機IP地址,同時輸出到屏幕中。 protectedvoidPage_Load(objectsender,EventArgse) { //獲取客戶端IP地址 Response.Write("客戶端IP地址為:"+Request.UserHostAddress); }8.1.2Request對象Browser獲取瀏覽器信息使用Browser的方法,可以判斷正在瀏覽網(wǎng)站其客戶端瀏覽器的版本,以及瀏覽器的一些信息。使用Browser屬性獲取客戶端瀏覽器的版本信息。protectedvoidPage_Load(objectsender,EventArgse){ //獲取客戶端瀏覽器信息Response.Write("客戶端瀏覽器信息:"+Request.Browser.Type.ToString());}8.2Application對象和Session對象Application對象和Session對象是ASP.NET中用于狀態(tài)管理的內(nèi)建組件,用來維護和瀏覽器實例或整個網(wǎng)站相關(guān)的一些信息。8.2.1Application對象Application對象是HttpApplication類的實例,Application通常用來存儲網(wǎng)站的一些公共信息,在服務(wù)器內(nèi)存中存戶數(shù)量較少又獨立于客戶請求的數(shù)據(jù)。它的特點是訪問速度快而且主要應(yīng)用程序不停止它就一直存在。8.2.1Application對象通常在網(wǎng)站項目中可以新建一個Global.asax文件,用來全局管理應(yīng)用程序事件,在Global.asax文件中會自動生成以下代碼。<scriptrunat="server">voidApplication_Start(objectsender,EventArgse){//在應(yīng)用程序啟動時運行的代碼}voidApplication_End(objectsender,EventArgse){//在應(yīng)用程序關(guān)閉時運行的代碼}voidApplication_Error(objectsender,EventArgse){//在出現(xiàn)未處理的錯誤時運行的代碼}voidSession_Start(objectsender,EventArgse){//在新會話啟動時運行的代碼}voidSession_End(objectsender,EventArgse){
}</script>8.2.2Session對象Session對象是HttpSessionState的一個實例,是用來存儲跨頁程序的變量或?qū)ο?,功能基本同Application對象一樣。Session對象主要用于維護客戶端的用戶信息,如將客戶登錄用的用戶名和密碼存儲到Session中,這樣就可以通過判斷Session對象中的指定成員來判斷用戶是否登錄,如果登錄可以獲取用戶的用戶名和密碼等數(shù)據(jù)。8.2.2Session對象Session對象的Contents.Remove("變量名")和Contents.Removeall()方法與Application對象的基本上沒什么區(qū)別,這里要說明一下的是Contents.Removeall()和Abandon()的區(qū)別。執(zhí)行這兩個方法都會釋放當(dāng)前用戶會話的所有Session變量,不同的是Contents.Removeall()單純地釋放Session變量的值而不終止當(dāng)前的會話,而Abandon()除了釋放Session變量外還會終止會話引發(fā)Session_OnEnd事件,希望大家注意兩者的區(qū)別。8.2.2Session對象Session對象使用起來也非常方便,在第4章中我們就使用它來存儲過用戶名和密碼等信息,在向Session對象中存儲信息的代碼如下。Session["變量名"]=字符串/變量;如果想清空Session中的內(nèi)容,可以使用Clear()方法,其調(diào)用方法如下。 Session.Clear();8.3Server對象Server對象是HttpServerUtility的一個實例,該對象可以對服務(wù)器上的方法和屬性進行訪問。成員描述MachineName獲取遠程服務(wù)器的名稱ScriptTimeout獲取和設(shè)置請求超時CreatObject()創(chuàng)建COM對象的一個服務(wù)器實例Execute()使用另一頁執(zhí)行當(dāng)前請求Transfer()終止當(dāng)前頁面的執(zhí)行,并為當(dāng)前請求開始執(zhí)行新頁面HtmlDecode()對已被編碼的消除Html無效字符的字符串進行解碼HtmlEncode()對要在瀏覽器中顯示的字符串進行編碼MapPath()返回與Web服務(wù)器上的執(zhí)行虛擬路徑相對應(yīng)的物理文件路徑UrlDecode()對字符串進行解碼,該字符串為了進行HTTP傳輸而進行編碼并在URL中發(fā)送到服務(wù)器UrlEncode()編碼字符串,以便通過URL從Web服務(wù)器到客戶端瀏覽器的字符串傳輸8.3Server對象MachineName屬性通過Server對象的MachineName屬性來獲取服務(wù)器計算機的名稱。使用MachineName屬性獲取服務(wù)器計算機名稱,并輸出到屏幕中。lession08文件夾下MachineName.apsx中的代碼如下。protectedvoidPage_Load(objectsender,EventArgse){Response.Write("遠程服務(wù)器名為:"+Server.MachineName);}8.3Server對象MapPath屬性使用MapPath方法可以將指定的相對或虛擬路徑映射到服務(wù)器上相應(yīng)的物理目錄上。在lession08網(wǎng)站項目中新建一個名為test.doc的word文檔,然后使用MapPath方法來獲取文檔所在服務(wù)器的路徑。lession08文件夾下MapPath.apsx中的代碼如下。protectedvoidPage_Load(objectsender,EventArgse){Response.Write(Server.MapPath("document/test.doc"));}8.3Server對象HtmlEncode和HtmlDecode方法當(dāng)想在網(wǎng)頁上顯示HTML標(biāo)簽時,若在網(wǎng)頁中直接輸出則會被瀏覽器解譯為HTML的內(nèi)容,所以要通過Server對象的HtmlEncode方法將它編碼再輸出;若要將編碼后的結(jié)果譯碼回原本的內(nèi)容,則使用HtmlDecode方法。下列程序代碼使用HtmlEncode方法將“<B>HTML內(nèi)容</B>”編碼后輸出至瀏覽器,再利用HtmlDecode方法將把編碼后的結(jié)果譯碼還原。8.3Server對象利用HtmlEncode和HtmlDecode方法,可以對網(wǎng)頁內(nèi)容編碼。lession08文件夾下HtmlEncode.apsx中的代碼如下。 protectedvoidPage_Load(objectsender,EventArgse){Stringstr;str=Server.HtmlEncode("<B>HTML內(nèi)容</B>");Response.Write(str);Response.Write("<P>");str=Server.HtmlDecode(str);Response.Write(str);}8.4ViewState對象ViewState對象主要用來存放和視圖有關(guān)的一些狀態(tài)。ViewState常用于保存單個用戶的狀態(tài)信息,有效期等于頁面的生存期,在用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程項目合同管理八步走
- 產(chǎn)品使用說明功能操作與維護指南
- 外墻涂料施工合同書
- Unit1生活中的日常用語:初一英語日常會話教學(xué)教案
- 2025年大慶c1貨運上崗證模擬考試
- 2025年唐山貨運上崗證考試題庫答案
- 委托抵押擔(dān)保協(xié)議
- 數(shù)據(jù)安全與隱私保護作業(yè)指導(dǎo)書
- 合同房地產(chǎn)轉(zhuǎn)讓合同5篇
- 2025年高中化學(xué)新教材同步 必修第一冊 第2章 階段重點突破練(四)
- 銀行承兌匯票和商業(yè)承兌匯票課件
- 特朗普貿(mào)易戰(zhàn)的基本邏輯、本質(zhì)及其應(yīng)對
- 經(jīng)口鼻吸痰法護理課件
- 《園林生態(tài)學(xué)》課件
- 初中化學(xué)實驗報告單(上)
- 貨物質(zhì)量與安全控制方案
- 高中物理多普勒效應(yīng)練習(xí)題
- 交通事故授權(quán)委托書樣本(通用)
- 鹽酸利多卡因應(yīng)用于無痛導(dǎo)尿術(shù)的臨床效果觀察
- 保障性住房資格申請表
- PEP五年級上冊Unit3-字母組合ow的發(fā)音
評論
0/150
提交評論