版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第2章ASP.NET常用內(nèi)置對象本章學(xué)習(xí)目標(biāo)了解頁面的生命周期掌握Page,Server對象用法掌握Application,Session,ViewState與Cookie的應(yīng)用掌握Request,,Response用法2.1Page內(nèi)置對象
2.1.1頁面的生命周期2.1.2Page對象常用屬性與方法2.1.1頁面的生命周期1)建立階段2)回發(fā)階段3)結(jié)束階段2.1.2Page對象常用屬性與方法屬性說明Request獲取當(dāng)前Web請求獲取HttpRequest對象Response獲取與該P(yáng)age對象關(guān)聯(lián)的HttpResponse對象。Server獲取Server對象,它是HttpServerUtility類的實(shí)例。Session獲取ASP.NET提供的當(dāng)前Session對象。Validators獲取請求的頁上包含的全部驗(yàn)證控件的集合屬性說明ViewState獲取狀態(tài)信息的字典IsPostBack判斷頁面是否為首次加載。IsValid判斷頁面中的所有輸入的內(nèi)容是否應(yīng)經(jīng)通過驗(yàn)證IsCrossPagePostBack判斷頁面是否使用跨頁提交,它是一個(gè)布爾值的屬性。ViewState獲取狀態(tài)信息的字典Page對象常用方法方法說明MapPath(virtualPath)將virtualPath指定的虛擬路徑轉(zhuǎn)換成實(shí)際路徑ResolveUrl(relativeUrl)將relativeUrl指定的相對路徑轉(zhuǎn)換成實(shí)際路徑DataBind()將數(shù)據(jù)源連接到網(wǎng)頁上的服務(wù)器控件Dispose()釋放連接到網(wǎng)頁上的服務(wù)器控件的數(shù)據(jù)源對象FindControl(id):在頁面上搜索標(biāo)識(shí)名稱為id的控件Validated()執(zhí)行頁面上的所有驗(yàn)證控件HasControls()判斷Page對象是否含有控件2.2Application內(nèi)置對象
2.2.1Application對象常用屬性和方法2.2.2Application對象的應(yīng)用2.2.1Application對象常用屬性與方法屬性說明AllKeys獲取HttpApplicationState集合中的訪問鍵Count獲取HttpApplicationState集合中的對象數(shù)Add新加一個(gè)Application對象的變量AllKeys獲取HttpApplicationState集合中的訪問鍵Count獲取HttpApplicationState集合中的對象數(shù)Application對象常用方法方法說明Clear()清除全部Application對象的變量Get()使用索引或者變量名稱獲取變量值GetKey()使用索引獲取變量名稱Lock()鎖定全部變量Remove()使用變量名刪除一個(gè)Application對象的變量2.2.2Application對象的應(yīng)用1.使用Application對象保存信息(1).使用Application對象保存信息Application[“鍵名”]=值
或Application(“鍵名”,值)(2).獲取Application對象信息
變量名=Application[“鍵名”]
或:變量名=Application.Item[“鍵名”]
或:變量名=Application.Get(“鍵名”)(3).更新Application對象的值A(chǔ)pplication.Set(“鍵名”,值)使用Application對象保存信息(續(xù))(4).刪除一個(gè)鍵Application.Remove(“鍵名”,值)(5).刪除所有鍵Application.RemoveAll()
或Application.Clear()2.使用鎖定與解鎖Lock和Unlock解決對Application對象的訪問同步問題,一次只允許一個(gè)線程訪問應(yīng)用程序狀態(tài)變量。
鎖定:Application.Lock()
訪問:Application[“鍵名”]=值
解鎖:Application.Unlock()
注意:Lock方法和UnLock方法應(yīng)該成對使用。3.使用Application事件
在應(yīng)用程序啟動(dòng)時(shí)運(yùn)行 voidApplication_Start(objectsender,EventArgse)
在應(yīng)用程序關(guān)閉時(shí)運(yùn)行 voidApplication_End(objectsender,EventArgse)
在出現(xiàn)未處理的錯(cuò)誤時(shí)運(yùn)行 voidApplication_Error(objectsender,EventArgse)2.3Session內(nèi)置對象
2.3.1Session對象的標(biāo)識(shí)2.3.2Session的常見屬性和方法2.3.3Session的存儲(chǔ)2.3.4Session對象的應(yīng)用2.3.1Session對象的標(biāo)識(shí)會(huì)話由一個(gè)120位的唯一標(biāo)識(shí)符標(biāo)識(shí),這個(gè)特殊的標(biāo)識(shí)符稱為SessionID可使用Session的SessionID屬性讀取此標(biāo)識(shí)符。ASP.NET中利用專有算法來生成這個(gè)標(biāo)識(shí)符的值,每次會(huì)話產(chǎn)生的標(biāo)識(shí)均不相同,從而保證(統(tǒng)計(jì)上的)這個(gè)值是獨(dú)一無二的,有足夠的隨機(jī)性,能夠保證惡意用戶不能利用逆向工程或“猜測”獲得某個(gè)客戶端的標(biāo)識(shí)符的值。2.3.2Session對象常用屬性與方法屬性說明Count 獲取會(huì)話狀態(tài)下Session對象的個(gè)數(shù)TimcOut Session對象的生存周期SessionlD 用于標(biāo)識(shí)會(huì)話的唯一編號(hào)Count 獲取會(huì)話狀態(tài)下Session對象的個(gè)數(shù)TimcOut Session對象的生存周期方法說明Count 獲取會(huì)話狀態(tài)下Session對象的個(gè)數(shù)TimcOut Session對象的生存周期SessionlD 用于標(biāo)識(shí)會(huì)話的唯一編號(hào)Count 獲取會(huì)話狀態(tài)下Session對象的個(gè)數(shù)TimcOut Session對象的生存周期2.3.3Session的存儲(chǔ)1.在客戶端的存儲(chǔ)SessionID值存儲(chǔ)在瀏覽器的不過期會(huì)話Cookie中,這是默認(rèn)情況,另外也可以通過在Web.config文件的sessionState節(jié)中將cookieless屬性設(shè)置為true,可以指定不將會(huì)話標(biāo)識(shí)符存儲(chǔ)在Cookie中。<configuration>
<system.web>
<sessionStatecookieless="true"regenerateExpiredSessionId="true"/>
</system.web>
</configuration>2.在服務(wù)器端存儲(chǔ)InProc模式,此模式將會(huì)話狀態(tài)存儲(chǔ)在Web服務(wù)器上的內(nèi)存中。InProc模式是默認(rèn)值。StateServer模式,此模式將會(huì)話狀態(tài)存儲(chǔ)在一個(gè)名為ASP.NET狀態(tài)服務(wù)的單獨(dú)進(jìn)程中。SQLServer模式,此模式將會(huì)話狀態(tài)存儲(chǔ)到一個(gè)SQLServer數(shù)據(jù)庫中。2.3.3Session對象的應(yīng)用使用Session進(jìn)行存儲(chǔ)的方法:Session["UserName"]=txtUser.Text;從Session讀取數(shù)據(jù):lblWelcome.Text="Welcome:"+Session["UserName"];2.4Cookie內(nèi)置對象
2.4.1Cookie的存儲(chǔ)位置2.4.2Cookie對象的使用2.4.1Cookie存儲(chǔ)位置
保存cookie數(shù)據(jù)有2中形式:瀏覽器的內(nèi)存中,瀏覽器所在的電腦硬盤中。以IE為例查看cookie在硬盤中存放位置方法2.4.1Cookie對象的使用1)將cookie寫入瀏覽器端HttpCookiecookie=newHttpCookie("id","234");Response.Cookies.Add(cookie);2)讀出cookie中存放的數(shù)據(jù)Response.Write(Request.Cookies["id"].Value);3)cookie文件的有效期設(shè)置HttpCookiecookie=newHttpCookie("id","234");cookie.Expires=DateTime.Now.AddMonths(5);Response.Cookies.Add(cookie);2.5ViewState內(nèi)置對象
2.5.1ViewState的用法2.5.2設(shè)置ViewState2.5.1ViewState的用法ViewState提供一個(gè)ViewState集合(Collection)屬性。該集合是集合(Collection)類的一個(gè)實(shí)例,集合類是一個(gè)鍵值集合,幵發(fā)人員可以通過鍵來為ViewState增加或者去除項(xiàng)。例如下面的代碼:ViewState["Count"]=2;2.5.2設(shè)置ViewState
如果要使用ViewState,則在ASPX頁面中必須要有一個(gè)服務(wù)器端窗體標(biāo)記(<formrunat="server">)。窗體字段也是必須的,這樣包含ViewState信息的隱藏字段才能被傳回服務(wù)器。而且,該窗體還必須是服務(wù)器端的窗體,這樣在服務(wù)器上執(zhí)行該頁面時(shí),ASP.net頁面框架才能添加隱藏字段。另外page的EnableViewState屬性值必須為true。控件的EnableViewState屬性值也須為true2.6Request內(nèi)置對象
2.6.1Request對象主要屬性與方法2.6.2Request對象的應(yīng)用2.6.1Request對象主要屬性屬性說明
ApplicationPath
獲取服務(wù)器上應(yīng)用程序的虛擬應(yīng)用程序根路徑
Browser獲取有關(guān)正在請求的客戶端的瀏覽器功能的信息ContentEncoding獲取或設(shè)置實(shí)體主體的字符集ContentLength指定客戶端發(fā)送的內(nèi)容長度ContentType獲取或設(shè)置傳入請求的MIME內(nèi)容類型Request對象主要方法方法說明MapPath(VirtualPath)將當(dāng)前請求的URL中的虛擬路徑virtualPath映射到服務(wù)器上的物理路徑。參數(shù)virtualPath指定當(dāng)前請求的虛擬路徑,可以是絕對路徑或相對路徑。該方法的返回值為由virtualPath指定的服務(wù)器物理路徑。SaveAs(Filename,includeHeaders)將http請求保存到磁盤。參數(shù)filename指定物理驅(qū)動(dòng)器路徑,includeHeaders是一個(gè)布爾值,指定是否應(yīng)將HTTP標(biāo)頭保存到磁盤。2.6.2Request對象的應(yīng)用(1)使用Request.Form屬性讀取窗體變量Request.Form["txtUserName"];Request.Form["txtPassword"](2)使用Request.QueryString屬性讀取窗體變量Request.QueryString["txtUserName"];Request.QueryString["txtPassword"](3)使用Request.Params屬性讀取窗體變量(4)通過服務(wù)器控件的屬性直接讀取窗體變量2.7Response內(nèi)置對象
2.7.1Response對象主要屬性與方法2.7.2Response對象的應(yīng)用2.7.1Response對象主要屬性屬性說明Cookies獲取響應(yīng)Cookie集合Expires獲取或設(shè)置在瀏覽器上緩存的頁過期之前的分鐘數(shù).如果用戶在頁過期之前返回同一頁,則顯示緩存的版本ExpiresAbsolute獲取或設(shè)置將緩存信息從緩存中移除時(shí)的絕對日期和時(shí)間Filter獲取或設(shè)置一個(gè)包裝篩選器對象,該對象用于在傳輸之前修改HTTP實(shí)體主體IsClientConnected獲取一個(gè)值,通過該值指示客戶端是否仍連在服務(wù)器上Response對象主要方法方法說明Write()向客戶端發(fā)送字符串信息Clear()清除緩存Flush()強(qiáng)制輸出緩存的所有數(shù)據(jù)Redirect()網(wǎng)頁重定向End()終止當(dāng)前頁的運(yùn)行2.7.2Reponse對象的應(yīng)用1)將信息寫入客戶端網(wǎng)頁Response對象可以將一些動(dòng)態(tài)生成的信息插入到網(wǎng)頁中,需要使用如下形式:Response.write其中不管表達(dá)式的結(jié)果是什么類型,最終都作為字符串插入到網(wǎng)頁中。Response.Write("專業(yè)名稱列表:");2)Response用于緩沖輸出
ASP.NET提供了緩沖機(jī)制,能夠?qū)⒁敵龅娇蛻舳藬?shù)據(jù)首先保存在服務(wù)器的緩存區(qū)域,當(dāng)處理完整個(gè)Response響應(yīng)之后再一次性地發(fā)給客戶端,這樣能夠大大加快訪問和處理數(shù)據(jù)的速度。3)輸出內(nèi)容指定
瀏覽器請求一網(wǎng)頁時(shí),服務(wù)器會(huì)將一個(gè)HTML文檔發(fā)送給客戶端瀏覽器,服務(wù)器也可以使用Response對象的ContentType屬性指明向?yàn)g覽器發(fā)送的是其他類型的文檔。指明發(fā)送給客戶端瀏覽器的是什么類型的文檔Response.ContentType=內(nèi)容類型4)頁面的重新定向使用Response對象的Redirect方法可以把用戶引導(dǎo)到指定的某個(gè)網(wǎng)頁。Response.Redirect("網(wǎng)頁地址")5)向?yàn)g覽器輸出文件Response.WriteFile(FileName)其中:FileName指需向?yàn)g覽器輸出的文件名。作用是直接將文件中的內(nèi)容嵌入到頁面中2.8Server內(nèi)置對象
2.8.1Server對象的常用屬性與方法2.8.2Server對象的應(yīng)用2.8.1Server對象主要屬性屬性說明ScriptTimeout獲取和設(shè)置請求超時(shí)(以秒計(jì))MachineName 服
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 羊毛衫協(xié)議合同
- 網(wǎng)店代理協(xié)議書
- 商品混技術(shù)協(xié)議書
- 聘任教官協(xié)議書
- 商家的調(diào)解協(xié)議書
- 中醫(yī)藥專家臨床技術(shù)職稱考試備考資料
- 采購成本分析考試題庫
- 聘請人員協(xié)議書
- 簽訂門合同范本
- 約煤炭合同范本
- 液壓升降平臺(tái)技術(shù)協(xié)議模板
- 統(tǒng)編版語文三年級上冊期末作文專項(xiàng)復(fù)習(xí) 課件
- 2024年高考英語 (全國甲卷)真題詳細(xì)解讀及評析
- DB36-T 1865-2023 濕地碳匯監(jiān)測技術(shù)規(guī)程
- 福建省部分地市2025屆高中畢業(yè)班第一次質(zhì)量檢測 化學(xué)試卷(含答案)
- JJF(陜) 036-2020 單相機(jī)攝影測量系統(tǒng)校準(zhǔn)規(guī)范
- 藥物化學(xué)-001-國開機(jī)考復(fù)習(xí)資料
- 電力工程施工方案1
- 運(yùn)營助理述職報(bào)告
- 保安臨時(shí)用工合同范例
- 期中測試(試題)-2024-2025學(xué)年四年級上冊數(shù)學(xué)人教版
評論
0/150
提交評論