




已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
狀態(tài)管理,本資料由-大學(xué)生創(chuàng)業(yè)|創(chuàng)業(yè)|創(chuàng)業(yè)網(wǎng)/提供資料 在線代理|網(wǎng)頁(yè)代理|代理網(wǎng)頁(yè)| 減肥藥排行榜|淘寶最好的減肥藥|什么減肥藥效果最好|減肥瘦身藥|,狀態(tài)管理概述 基于客戶端的狀態(tài)管理 基于服務(wù)器的狀態(tài)管理,大綱,狀態(tài)管理概述,狀態(tài)管理概述,ASP.NET工作原理 客戶請(qǐng)求Web 頁(yè) Web 服務(wù)尋找指令文件(.aspx) ASP.NET 代碼被發(fā)送給公共語(yǔ)言運(yùn)行時(shí)進(jìn)行編譯 HTML 流返回給瀏覽器和指令 瀏覽器處理HTML 并顯示頁(yè)面,狀態(tài)管理概述,Http協(xié)議“無(wú)狀態(tài)協(xié)議” Web服務(wù)器每分鐘對(duì)上千個(gè)用戶進(jìn)行管理的一種方式就是執(zhí)行所謂的“無(wú)狀態(tài)”連接。只要有一個(gè)希望瀏覽器返回一個(gè)頁(yè)面、圖象或其他資源的請(qǐng)求,就發(fā)生以下事情: 連接到服務(wù)器 告訴服務(wù)器想要的頁(yè)面、圖象或者其他項(xiàng) 服務(wù)器發(fā)送請(qǐng)求的資源 服務(wù)器切斷連接,把用戶忘的干干凈凈。,狀態(tài)管理概述,WEB頁(yè)面處理過(guò)程 頁(yè)面的一次往返處理:用戶對(duì)Server Control的一次操作,就可能引起頁(yè)面的一次往返處理:頁(yè)面被提交到服務(wù)器端,執(zhí)行響應(yīng)的事件處理代碼,重建頁(yè)面,然后返回到客戶端 頁(yè)面重建:每一次頁(yè)面被請(qǐng)求,或者頁(yè)面事件被提交到服務(wù)器,運(yùn)行環(huán)境將執(zhí)行必要的代碼,重建整個(gè)頁(yè)面,把結(jié)果頁(yè)面送到瀏覽器,然后拋棄頁(yè)面的變量、控件的狀態(tài)和屬性等等頁(yè)面信息。 頁(yè)面處理內(nèi)部過(guò)程: Page_load :IsPostBack屬性判定頁(yè)面是否為第一次被請(qǐng)求 事件處理:這一階段處理表單的事件 Page_Unload :這個(gè)階段頁(yè)面已經(jīng)處理完畢,需要做些清理工作。 一般地,你可以在這個(gè)階段關(guān)閉打開(kāi)的文件和數(shù)據(jù)庫(kù)鏈路,或者釋放對(duì)象,狀態(tài)管理概述,ASP.NET Web Form的“連續(xù)”和“有狀態(tài)”假象 ASP.NET 的設(shè)計(jì)者們,從實(shí)際訪問(wèn)者的角度重新考慮了這一過(guò)程:訪問(wèn)者打開(kāi)一個(gè)頁(yè)面,點(diǎn)擊一個(gè)按鈕,看到新的畫面這一切似乎都是連續(xù)的。 這種連續(xù)性假象是由ASP.NET 頁(yè)框架、頁(yè)及其控件實(shí)現(xiàn)的?;匕l(fā)后,控件的行為必須看起來(lái)是從上次Web 請(qǐng)求結(jié)束的地方開(kāi)始的。 另一方面,對(duì)于Web Form 中的TextBox,ASP.NET 也讓它們具有了狀態(tài),可以知道上一個(gè)loop 和這一個(gè)loop 之間的TextBox 值的變化;如果變化,可能會(huì)觸發(fā)TextBox 的TextChanged事件。這同樣是ASP.NET 特意實(shí)現(xiàn)的一個(gè)假象。,大綱,狀態(tài)管理概述 基于客戶端的狀態(tài)管理 基于服務(wù)器的狀態(tài)管理,基于客戶端的狀態(tài)管理,基于客戶端的狀態(tài)管理,視圖狀態(tài) 隱藏的窗體域 Cookie 查詢字符串,視圖狀態(tài),視圖狀態(tài),ASP.NET 使用了ViewState 視圖狀態(tài),是所有控件的一個(gè)屬性。如果你查看Web Form 產(chǎn)生的HTML 代碼,可以看到一個(gè)名為_(kāi)ViewState 的隱藏字段,ASP.NET 將狀態(tài)信息以Hash 的方式存儲(chǔ)在這里。通過(guò)它,可以在下一次回發(fā)時(shí)知道回發(fā)前各控件的狀態(tài)。,視圖狀態(tài),ASP.NET 服務(wù)器控件的生命周期 1. 初始化- Init 事件(OnInit 方法) 2. 加載視圖狀態(tài)- LoadViewState 方法 3. 處理回發(fā)數(shù)據(jù)- LoadPostData 方法 4. 加載- Load 事件(OnLoad 方法) 5. 發(fā)送回發(fā)更改通知-RaisePostDataChangedEvent 方法 6. 處理回發(fā)事件- RaisePostBackEvent 方法 7. 預(yù)呈現(xiàn)- PreRender 事件(OnPreRender 方法) 8. 保存視圖狀態(tài)- SaveViewState 方法 9. 呈現(xiàn)- Render 方法 10. 處置- Dispose 方法 11. 卸載- UnLoad 事件(OnUnLoad 方法),視圖狀態(tài), 啟用視圖狀態(tài) EnableViewState = “true”默認(rèn)為true,如果為false,那么該控件和子控件的視圖狀態(tài)就不會(huì)被串行化。 可以在視圖狀態(tài)中存儲(chǔ)的類型 Int32,Bool,String,Color,Array,ArrayList,Unit及其以上類型的HashTable對(duì)象。 視圖狀態(tài)與安全 視圖狀態(tài)串行化的字符串表達(dá)式作為明文來(lái)往返傳送。這是不安全的。在視圖狀態(tài)中決不能保存任何信息(例如口令、連接字符、文件路徑) 。,視圖狀態(tài),ViewState,隱藏域,隱藏域,隱藏域不會(huì)顯示在用戶的瀏覽器中,但我們可以象設(shè)置標(biāo)準(zhǔn)控制的屬性那樣設(shè)置其屬性。當(dāng)一個(gè)網(wǎng)頁(yè)被提交給服務(wù)器時(shí),隱藏域的內(nèi)容和其他控制的值一塊兒被送到HTTP Form集合中。隱藏域可以是任何存儲(chǔ)在網(wǎng)頁(yè)中的與網(wǎng)頁(yè)有關(guān)的信息的存儲(chǔ)庫(kù),隱藏域在其value屬性中存儲(chǔ)一個(gè)變量,而且必須被顯性地添加在網(wǎng)頁(yè)上。 ASP.NET中的HtmlInputHidden控制提供了隱藏域的功能。,隱藏域,Hidden,隱藏域,隱藏域使用注意事項(xiàng) 隱藏域在其值屬性中存儲(chǔ)單個(gè)變量,并且必須被顯式添加到頁(yè)上。然后可以將值插入到隱藏域。 為了在頁(yè)處理期間隱藏域的值可供使用,必須使用HTTP POST 方法提交該頁(yè)。 惡意用戶可以很容易地查看和修改隱藏域的內(nèi)容。請(qǐng)不要在隱藏域中存儲(chǔ)任何敏感信息或保障應(yīng)用程序正確運(yùn)行的信息。,Cookie集合,Cookie集合,什么是Cookie? 由網(wǎng)絡(luò)服務(wù)器發(fā)送出來(lái)以存儲(chǔ)在網(wǎng)絡(luò)瀏覽器上的小量信息 Cookie是把與用戶和網(wǎng)站相關(guān)的信息存儲(chǔ)比會(huì)話時(shí)間還長(zhǎng)的一種方式 Cookie存儲(chǔ)在用戶的硬盤上(一般存儲(chǔ)在Web瀏覽器軟件所在的文件夾上,稱為Cookies),Cookie集合,Cookie的用途 用戶的個(gè)人配置 注冊(cè)和“Remember me” 彈出窗口,Cookie集合,Cookies是如何工作的 IE存儲(chǔ)在C:Documents andSettingsCookies下 IE選項(xiàng)中的“隱私”選項(xiàng)下修改cookie設(shè)置,也可以在“常規(guī)”選項(xiàng)卡下選擇“刪除cookie”,Cookie集合,如何使用Cookie 使用Response對(duì)象設(shè)置Cookie狀態(tài) Response.Cookies“UserName”.Value = “張三”; 使用Request對(duì)象讀取已有的Cookie string strName = Request.Cookies“UserName.Value; 清除: Response.Cookies“UserName”.Value=null; Response.Cookies“UserName”.Expires= new System.DateTime(2006,10,12);,Cookie集合,Cookie的屬性 Value:值,是String類型的 Domain:設(shè)置這個(gè)屬性后,只有在這個(gè)域下才能 訪問(wèn)該Cookie。 例如: Response.Cookies“UserName”.Domain = “.W”;/指定只有以“. W”結(jié)尾的域可以訪問(wèn)本Cookie Path:該屬性指定哪些路徑下的頁(yè)面可以訪問(wèn)此 Cookie。 Expires:指定Cookie過(guò)期的日期,Cookie集合,Cookie,查詢字符串, 查詢字符串提供了一種簡(jiǎn)單而受限制的維護(hù)狀態(tài)信息的方法,我們可以方便地將信息從一個(gè)網(wǎng)頁(yè)傳遞給另一個(gè)網(wǎng)頁(yè)。 帶有查詢字符串的URL如下所示:/list.aspx?categoryid=1,查詢字符串,使用查詢字符串的注意事項(xiàng) 大多數(shù)瀏覽器和客戶端裝置都把URL的長(zhǎng)度限制在255個(gè)字符長(zhǎng)。 查詢值是通過(guò)URL傳遞給互聯(lián)網(wǎng)的,因此,在有些情況下,安全就成了一個(gè)大問(wèn)題。 我們只能使用HTTP-Get提交該互聯(lián)網(wǎng)網(wǎng)頁(yè),否則就不能從查詢字符串獲得需要的值。,查詢字符串,QS,狀態(tài)管理概述 基于客戶端的狀態(tài)管理 基于服務(wù)器的狀態(tài)管理,大綱,基于服務(wù)器的狀態(tài)管理,基于服務(wù)器的狀態(tài)管理,信息存儲(chǔ)在服務(wù)器上,盡管其安全性較高,但會(huì)占用較多的web服務(wù)器資源。服務(wù)器端通常用以下方式實(shí)現(xiàn)狀態(tài)管理: Aplication對(duì)象 Session對(duì)象,Application狀態(tài), 應(yīng)用程序級(jí)別的狀態(tài)存取 變量狀態(tài)的存儲(chǔ)和提取 Application“Name” = “張三” string strUserName = Application“Name”; 同時(shí)訪問(wèn)要加鎖: Application.Lock(); Application.Unlock();,Application,Application對(duì)象的使用建議 對(duì)于頻繁使用的數(shù)據(jù)使用改對(duì)象 不要把太多的信息放在該對(duì)象中 如果站點(diǎn)有很大的通信量,建議使用Web.Config,Session,什么是Session(會(huì)話) 對(duì)網(wǎng)站的一次訪問(wèn) 超時(shí)后,自動(dòng)結(jié)束會(huì)話 什么時(shí)候用Session? 購(gòu)物籃網(wǎng)絡(luò)用戶決定購(gòu)買的商品列表 用戶信息訪問(wèn)者的姓名 用戶設(shè)置個(gè)性化界面,Session,Session的屬性和方法 TimeOut屬性:獲取和設(shè)置會(huì)話結(jié)束之前的時(shí)間段,以分鐘位單位。默認(rèn)為20分鐘。 Abandon():結(jié)束當(dāng)前會(huì)話。會(huì)話中的所有信息都被清空 Clear():刪除當(dāng)前會(huì)話中的所有信息,但不結(jié)束會(huì)話 IsNewSession:如果會(huì)話是在用戶訪問(wèn)頁(yè)面時(shí)創(chuàng)建的,則這個(gè)屬性返回true。當(dāng)會(huì)話需要對(duì)某些數(shù)據(jù)進(jìn)行初始化后才能使用時(shí),就可以使用這個(gè)屬性。,Session,如何用Session存儲(chǔ)狀態(tài) 和Application類似 Session“Name” = “張三”; 和Application的區(qū)別: Application:應(yīng)用程序級(jí)別的狀態(tài)存儲(chǔ) Session:會(huì)話級(jí)別的狀態(tài)存儲(chǔ),Application和Session 對(duì)象的區(qū)別, 作用域不同 Application對(duì)象是針對(duì)所有用戶都生效, Session對(duì)象則相反,每個(gè)用戶都有自己的Session對(duì)象,它的生命周期起始于服務(wù)器產(chǎn)生對(duì)用戶請(qǐng)求頁(yè)面的相應(yīng),終止于用戶斷開(kāi)與服務(wù)器的連接。,Application&Session,數(shù)據(jù)庫(kù),當(dāng)存儲(chǔ)特定于用戶的信息并且信息存儲(chǔ)較大時(shí),通常的做法是使用數(shù)據(jù)庫(kù)技術(shù)維護(hù)狀態(tài)。對(duì)于維護(hù)長(zhǎng)期的狀態(tài)或維護(hù)即使在服務(wù)器必須重新啟動(dòng)的情況下仍必須保留的狀態(tài),數(shù)據(jù)庫(kù)存儲(chǔ)尤其有用。 數(shù)據(jù)庫(kù)將使我們能夠存儲(chǔ)大量的與Web應(yīng)用程序中的狀態(tài)相關(guān)的信息,有時(shí),用戶會(huì)使用唯一的ID頻繁地訪問(wèn)數(shù)據(jù)庫(kù),我們可以將它存儲(chǔ)在數(shù)據(jù)庫(kù)中,在對(duì)網(wǎng)站中網(wǎng)頁(yè)的多次請(qǐng)求中使用。,跟蹤,跟蹤便利的來(lái)展示應(yīng)用程序ASP.NET Web的信息 兩種方式跟蹤: Page-level 跟蹤 1-在瀏覽器中輸出 2-不影響頁(yè)面性能 Application-level 跟蹤 1-許可一次察看多個(gè)請(qǐng)求 2-自動(dòng)為程序中的所有頁(yè)開(kāi)啟page-level,在頁(yè)面級(jí)使用跟蹤,在HTML頁(yè)添加以下代碼 VS.NET中的設(shè)置 Document的Trace屬性設(shè)置為true,在頁(yè)面級(jí)使用跟蹤,跟蹤輸出 請(qǐng)求內(nèi)容:包含關(guān)于頁(yè)面請(qǐng)求的信息 跟蹤信息:顯示實(shí)際的跟蹤信息 控制樹(shù):顯示頁(yè)面使用的不同控件 Cookies集合:顯示頁(yè)面中的所有Cookie 標(biāo)題集合:顯示客戶端傳送到服務(wù)器端的連同請(qǐng)求的各種HTTP標(biāo)題 服務(wù)器變量:顯示服務(wù)器變量集合的所有成員,寫到跟蹤日志,寫到跟蹤日志,寫到跟蹤日志 Trace.Write: Trace.Warn:紅色顯示 注: Trace對(duì)象對(duì)應(yīng)的類為TraceContext Trace.IsEnabled屬性可以得到跟蹤的當(dāng)前狀態(tài),應(yīng)用程序級(jí)跟蹤,應(yīng)用程序級(jí)跟蹤,Application-Level 跟蹤日志 為所有頁(yè)開(kāi)啟page-level跟蹤 收集統(tǒng)計(jì)狀態(tài)信息及控件層次 開(kāi)啟跟蹤需按以下方式修改Web.config文件: 輕松察看多個(gè)請(qǐng)求的響應(yīng)細(xì)節(jié),應(yīng)用程序級(jí)跟蹤,讀
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 丘北五一活動(dòng)方案
- 業(yè)主群聚會(huì)活動(dòng)策劃方案
- 業(yè)務(wù)小講堂活動(dòng)方案
- 大廠線上活動(dòng)方案
- 天津公司年會(huì)活動(dòng)方案
- 夏日送糖水活動(dòng)方案
- 大學(xué)廚神爭(zhēng)霸活動(dòng)方案
- 夏季購(gòu)物活動(dòng)方案
- 均衡教育活動(dòng)方案
- 大學(xué)開(kāi)展線上活動(dòng)方案
- 早餐供應(yīng)配送合同范本
- 跨國(guó)知識(shí)產(chǎn)權(quán)糾紛的仲裁途徑及實(shí)踐
- 體重管理培訓(xùn)課件
- 內(nèi)蒙古呼和浩特市2024-2025學(xué)年九年級(jí)上學(xué)期期末歷史試題(含答案)
- 申請(qǐng)協(xié)助執(zhí)行申請(qǐng)書
- 2025年電纜保護(hù)拖鏈行業(yè)深度研究分析報(bào)告
- 5E教學(xué)模式研究現(xiàn)狀與提升策略
- 2024年糧油倉(cāng)儲(chǔ)管理員理論知識(shí)競(jìng)賽理論考試題庫(kù)500題(含答案)
- 2025年水穩(wěn)材料購(gòu)銷合同范本(適用于機(jī)場(chǎng)跑道建設(shè))3篇
- Web應(yīng)用的自動(dòng)化測(cè)試研究
- 《急慢性扁桃體炎》課件
評(píng)論
0/150
提交評(píng)論