第6章-2狀態(tài)控制_第1頁(yè)
第6章-2狀態(tài)控制_第2頁(yè)
第6章-2狀態(tài)控制_第3頁(yè)
第6章-2狀態(tài)控制_第4頁(yè)
第6章-2狀態(tài)控制_第5頁(yè)
已閱讀5頁(yè),還剩48頁(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)介

1、1回顧q 傳遞Form表單中的控件值用Request.Form 獲取值,地址欄中傳遞的參數(shù)用 Request.QueryString獲取q 通常用HttpResponse 類的屬性Buffer、Cache、Cookie 和 Expires來(lái)設(shè)置站點(diǎn)的一些特性q HttpResponse 類常用方法是 Write()、End() 和 Redirect()q HttpServerUtility 類的Execute()和Transfer()的區(qū)別關(guān)鍵在于執(zhí)行后控制權(quán)是否返回原先頁(yè)面、URLEncode()和HTMLEncode()主要用于對(duì)HTML 標(biāo)簽和URL進(jìn)行編碼,對(duì)站點(diǎn)或程序的安全具有重要意

2、思, MapPath()獲取物理路徑時(shí)需要注意是絕對(duì)路徑還是相對(duì)路徑第第6章章-2Application、Session和Cookie對(duì)象ASP.NET應(yīng)用程序的生命周期3aspnet_isapi.dll起點(diǎn)ApplicationManager HostingEnvironment 4Global.asax5 Global.asax 2-1“Global.asax” q 存儲(chǔ)所有事件的事件處理程序q 存儲(chǔ)在應(yīng)用程序的根目錄下q 它的位置定義應(yīng)用程序的限界q 包含所有應(yīng)用程序的配置設(shè)置6Global.asax 2-2httpApplication類類實(shí)例事件事件處理程序Global.asax配置

3、設(shè)置存儲(chǔ)于文件事件說(shuō)明Application_Start調(diào)用當(dāng)前應(yīng)用程序目錄(或其子目錄)下的第一個(gè) ASP.NET 頁(yè)面時(shí)觸發(fā)。Application_End應(yīng)用程序的最后一個(gè)會(huì)話結(jié)束時(shí)觸發(fā)。用 Internet 服務(wù)管理器管理單元停止 Web 應(yīng)用程序時(shí)也會(huì)觸發(fā)Application_BeginRequest每次頁(yè)面請(qǐng)求開(kāi)始時(shí)觸發(fā)(理想情況下是在頁(yè)面加載或刷新時(shí))Application_EndRequest每次頁(yè)面請(qǐng)求結(jié)束時(shí)(即每次在瀏覽器上執(zhí)行頁(yè)面時(shí))觸發(fā)Session_Start每次新的會(huì)話開(kāi)始時(shí)觸發(fā)Session_End會(huì)話結(jié)束時(shí)觸發(fā)。(關(guān)于會(huì)話可以采用何種方式結(jié)束,請(qǐng)參見(jiàn)會(huì)話對(duì)象)

4、7TestingGlobal.aspx示例 會(huì)話尚未結(jié)束 輸出結(jié)果8TestingGlobal.aspx示例 -1 protected void Application_Start(Object sender, EventArgs e) protected void Session_Start(Object sender, EventArgs e)Response.Write( “會(huì)話已開(kāi)始 ); protected void Application_BeginRequest(Object sender, EventArgs e) Response.Write(“應(yīng)用程序開(kāi)始); Respon

5、se.Write (“應(yīng)用程序請(qǐng)求開(kāi)始);Global.asax 文件打開(kāi)代碼隱藏類文件 Global.asax.cs。將代碼分別添加到 Global.asax.cs 中的各個(gè)事件中9TestingGlobal.aspx示例 -2 protected void Application_EndRequest(Object sender, EventArgs e) Response.Write (“應(yīng)用程序請(qǐng)求結(jié)束); protected void Session_End(Object sender, EventArgs e)Response.Write(“會(huì)話已結(jié)束); protected vo

6、id Application_End (Object sender, EventArgs e)10TestingGlobal.aspx示例 -3private void Page_Load(object sender, System.EventArgs e)Response.Write(“頁(yè)面加載事件);將默認(rèn) ASP.NET 頁(yè)面WebForm1.aspx重命名為TestingGlobal.aspx, 并添加給定的代碼片段11TestingGlobal.aspx示例 -4會(huì)話尚未結(jié)束 輸出結(jié)果實(shí)現(xiàn)狀態(tài)管理的對(duì)象qHttp協(xié)議“無(wú)狀態(tài)協(xié)議”qSessionqApplicationqViewSt

7、ateqCookie1213變量用于在應(yīng)用程序執(zhí)行時(shí)存儲(chǔ)數(shù)據(jù)Application應(yīng)用程序級(jí)Session會(huì)話級(jí)ViewState級(jí)Cookie級(jí)string myname = “張三;Response.Write (“歡迎 + myname);14ViewStatecount = 0;Sessioncount = null;Applicationcount = ncount;Label3.Text = Sessioncount.ToString();15一 Session 對(duì)象qSession 對(duì)象用于存儲(chǔ)用戶的信息 q當(dāng)新用戶請(qǐng)求應(yīng)用程序的網(wǎng)頁(yè)時(shí),Server 對(duì)象會(huì)檢查用戶是否有 Ses

8、sionIDqSession 對(duì)象包含特定于某個(gè)用戶的信息q在用戶會(huì)話期間可以記錄和監(jiān)視特定于用戶的信息q當(dāng)會(huì)話過(guò)期或終止時(shí),服務(wù)器就會(huì)清除 Session 對(duì)象優(yōu)點(diǎn)161.1Session 變量qSession 變量?jī)H提供給會(huì)話中的特定用戶qSession 變量可用于存儲(chǔ)在整個(gè)用戶會(huì)話過(guò)程中都可以訪問(wèn)的值1.2向Session對(duì)象中存入數(shù)據(jù)protected void Button1_Click(object sender, EventArgs e) SessionMyVal1 = 這是Session傳遞的數(shù)據(jù)1; string Val2 = 這是Session傳遞的數(shù)據(jù)2; Session

9、MyVal2 = Val2;1.2 從Session對(duì)象中取出數(shù)據(jù)protected void Page_Load(object sender, EventArgs e) Label1.Text = (string)(SessionMyVal1); Label2.Text = (string)(SessionMyVal2);19ASP.NET中數(shù)值傳遞模型介紹1.3 示例1qLogin.aspx:登陸頁(yè)面,用戶輸入用戶名。qSessionV.aspx:用戶名輸出頁(yè)面,輸出login頁(yè)接收到的用戶名。qNolink.aspx:用戶名輸出頁(yè)面,輸出login頁(yè)接收到的用戶名。2021 privat

10、e void btnLogin_Click(object sender, System.EventArgs e) SessionUserName=this.txtName.Text.Trim(); Response.Redirect(SessionVariableWelcome.aspx?pwd= +this.txtPwd.Text );1.3 上機(jī)練習(xí) 3-1221.2使用示例 3-2private void Page_Load(object sender, System.EventArgs e)Response.Write (“歡迎 +SessionUserName + 光臨,你的密碼是:

11、 +Requestpwd.ToString()+);231.3Session事件Session 事件事件Session_StartSession_End241.4Session 屬性屬性說(shuō)明SessionID包含一個(gè)唯一的用戶會(huì)話標(biāo)識(shí)符。它用于在會(huì)話過(guò)程中跟蹤用戶的信息。要檢索 SessionID,使用 Session.SessionIDTimeOut設(shè)置用戶超時(shí),即它以分鐘為單位,默認(rèn)值為 20 分鐘。可通過(guò)在 ASPX 文件中賦值來(lái)更改此設(shè)置。例如,LCID用于設(shè)定本地標(biāo)志符. 它可存儲(chǔ)本地信息,如日期、貨幣和時(shí)間格式。例如 Session.LCID = 0 x040C 將本地標(biāo)識(shí)符設(shè)定為

12、法國(guó)本地標(biāo)識(shí)符IsNewSession若該會(huì)話是由當(dāng)前請(qǐng)求創(chuàng)建的,該屬性將返回值 trueItem獲取或設(shè)置會(huì)話值的名稱Count獲得會(huì)話狀態(tài)集合中的項(xiàng)數(shù)1.5 示例q用戶只能通過(guò)default.aspx登錄welcome.aspx.qZhangsan 123456 adminqLisi 234567 normalqWangwu 345678 normal2526Application 對(duì)象存儲(chǔ)并維護(hù)應(yīng)用程序級(jí)的數(shù)據(jù)二、 Application 對(duì)象Application 狀態(tài)狀態(tài)HttpApplicationState方法集合Application 狀態(tài)狀態(tài)由它們表示由它們表示類類272.1

13、Application 變量變量用于在應(yīng)用程序執(zhí)行時(shí)存儲(chǔ)數(shù)據(jù)應(yīng)用程序級(jí)會(huì)話級(jí)string myname = “張三;Response.Write (“歡迎 + myname);282.2Lock 和 Unlock 方法 Lock()Lock() 用于防止用戶更改 Application 對(duì)象的屬性 Lock() 可用作 Application.Lock() UnLock()Unlock() 方法用于釋放對(duì)應(yīng)用程序變量的鎖定UnLock() 可用作Application.UnLock()292.3向應(yīng)用程序添加、更新和移除項(xiàng) 方法方法說(shuō)明說(shuō)明Add()向 Application 狀態(tài)添加新對(duì)象。

14、Application.Add(“對(duì)象名”, 對(duì)象值);或 Application(“對(duì)象名”) = “對(duì)象值”;例如,下列代碼會(huì)向應(yīng)用程序狀態(tài)添加項(xiàng):Application.Add(“Title”, article board);或 Application(“Title”) = “Article Board”; Clear()從 Application 狀態(tài)中移除所有對(duì)象 Remove()從 Application 集合中按名稱移除項(xiàng)。例如,下列代碼移除 Title 項(xiàng):Application.Remove(Title) HttpApplicationState 方法方法q修改Applica

15、tion對(duì)象中的數(shù)據(jù):Application.Lock();Application“Test”= Application“Test”= + 1);Application.Set(“Test”,Application“Test” + 1);Application.Unlockq讀取Application對(duì)象中的數(shù)據(jù)string User;User=Application(“UserName”).Tostring();3031對(duì)象級(jí)變量 示例網(wǎng)站計(jì)數(shù)器protected void Application_Start(Object sender, EventArgs e)Application.Lo

16、ck ();ApplicationUserNum =0;Application.UnLock();protected void Session_Start(Object sender, EventArgs e)Response.Write(調(diào)用Session_Start:會(huì)話已開(kāi)始 );Application.Lock();ApplicationUserNum=int.Parse(ApplicationUserNum. ToString()+1;Application.UnLock();32對(duì)象級(jí)變量示例private void Page_Load(object sender, System.

17、EventArgs e)/ 在此處放置用戶代碼以初始化頁(yè)面Response.Write(你是第+ ApplicationUserNum.ToString() + 位訪客);33對(duì)象級(jí)變量 示例在線訪問(wèn)人數(shù)protected void Application_Start(Object sender, EventArgs e)Application.Lock ();ApplicationUserNum =0;Application.UnLock();protected void Session_Start(Object sender, EventArgs e)Response.Write(調(diào)用Se

18、ssion_Start:會(huì)話已開(kāi)始 );Application.Lock();ApplicationUserNum=int.Parse(ApplicationUserNum. ToString()+1;Application.UnLock();protected void Session_End(Object sender, EventArgs e) Response.Write(調(diào)用Session_End:會(huì)話已結(jié)束); Application.Lock(); ApplicationUserNum=int.Parse(Application UserNum.ToString()-1; App

19、lication.UnLock();34對(duì)象級(jí)變量示例private void Page_Load(object sender, System.EventArgs e)/ 在此處放置用戶代碼以初始化頁(yè)面Response.Write(你是第+ ApplicationUserNum.ToString() + 位訪客);35對(duì)象級(jí)變量 示例q例6-10簡(jiǎn)易網(wǎng)絡(luò)聊天室(P174)36實(shí)例q一個(gè)簡(jiǎn)易網(wǎng)上聊天室。用戶訪問(wèn)網(wǎng)站的時(shí)候,首先打開(kāi)登陸頁(yè)面。在輸入用戶名和相應(yīng)密碼后,進(jìn)入聊天頁(yè)面。頁(yè)面分上下兩部分,下面是輸入?yún)^(qū)域,上面為聊天信息顯示區(qū)域。3738三、CookiesCookie在客戶端系統(tǒng)中維護(hù)客戶

20、的個(gè)人信息 會(huì)話會(huì)話 Cookie持久性持久性 Cookie3.1創(chuàng)建和讀取 Cookie-11、創(chuàng)建cookieq Response.Cookies“名稱名稱”.Value=變量;變量;q HttpCookie objHttpCookie = new HttpCookie(“name”, “value); Response.Cookies.Add(objHttpCookie); 392、讀取cookieq變量變量 = Request.Cookies名稱名稱.Value;q 3、清除cookie Response.Cookies名稱名稱.Value = null;或 Response.Cook

21、ies名稱名稱.Expires = new System.DateTime(2012,11,12);(過(guò)期)(過(guò)期)40413.2創(chuàng)建和讀取會(huì)話 CookieHttpCookie objHttpCookie = new HttpCookie(“UserName”, “張三); Response.Cookies.Add(objHttpCookie); 新建 Cookie將新 Cookie 添加到 Response 對(duì)象的 Cookie 集合中 創(chuàng)建 Cookie讀取 CookieResponse.Write(Request.Cookies(“UserName).Value);Value 屬性將

22、Cookie 的值作為字符串返回423.3創(chuàng)建和讀取持久性 Cookie讀取 CookieHttpCookie objHttpCookie = new HttpCookie(“UserName”,“張三); objHttpCookie.Expires = DateTime.Now.AddMinutes(2);Response.Cookies.Add(objHttpCookie); 新建 Cookie用 Cookie 的 Expires 屬性將 Cookie 的過(guò)期期限設(shè)置為兩分鐘創(chuàng)建 CookieResponse.Write(Request.Cookies(“UserName).Value);

23、練習(xí)q將Cookies集合中名為“MyCookie”的Cookie值讀出,并賦給變量GetCookie:string GetCookie = “”if (Request.CookiesMyCookie != null) GetCookie = Request.CookiesMyCookie.Value; 433.4 使用多值CookieResponse.CookiesPersonP_Name.Value = zhangsan;Response.CookiesPersonP_Email.Value = ;Response.CookiesPersonP_Home.Value = 北京;使用下列語(yǔ)句

24、可從上述多值Cookie中讀取數(shù)據(jù):yr_name = Request.CookiesPersonP_Name.Value;yr_email = Request.CookiesPersonP_Email.Value;yr_home = Request.CookiesPersonP_Home.Value;或string yr_name = Request.CookiesPerson.Values0;string yr_name = Request.CookiesPerson.Values1;string yr_name = Request.CookiesPerson.Values2;44示例1q在頁(yè)面上的TextBox中輸入一個(gè)用戶名,然后點(diǎn)“注冊(cè)”按鈕,此時(shí)將用戶名存入Cookie中,然后在頁(yè)面加載

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論