Application、Session和Co o kie對(duì)象分析 第六章_第1頁
Application、Session和Co o kie對(duì)象分析 第六章_第2頁
Application、Session和Co o kie對(duì)象分析 第六章_第3頁
Application、Session和Co o kie對(duì)象分析 第六章_第4頁
Application、Session和Co o kie對(duì)象分析 第六章_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Application、Session和Cookie對(duì)象分析第六章回顧傳遞Form表單中的控件值用Request.Form獲取值,地址欄中傳遞的參數(shù)用Request.QueryString獲取通常用HttpResponse類的屬性Buffer、Cache、Cookie和Expires來設(shè)置站點(diǎn)的一些特性HttpResponse類常用方法是Write()、End()和Redirect()HttpServerUtility類的Execute()和Transfer()的區(qū)別關(guān)鍵在于執(zhí)行后控制權(quán)是否返回原先頁面、URLEncode()和HTMLEncode()主要用于對(duì)HTML標(biāo)簽和URL進(jìn)行編碼,對(duì)站點(diǎn)或程序的安全具有重要意思,MapPath()獲取物理路徑時(shí)需要注意是絕對(duì)路徑還是相對(duì)路徑2目標(biāo)運(yùn)用Global.asax文件使用Application對(duì)象創(chuàng)建并讀取Cookie使用Session對(duì)象3ASP.NET中數(shù)值傳遞模型介紹4Global.asax2-1“Global.asax”存儲(chǔ)所有事件的事件處理程序存儲(chǔ)在應(yīng)用程序的根目錄下它的位置定義應(yīng)用程序的限界

包含所有應(yīng)用程序的配置設(shè)置5Global.asax2-2Application類實(shí)例事件事件處理程序Global.asax配置設(shè)置存儲(chǔ)于文件事件說明Application_Start調(diào)用當(dāng)前應(yīng)用程序目錄(或其子目錄)下的第一個(gè)ASP.NET頁面時(shí)觸發(fā)。Application_End應(yīng)用程序的最后一個(gè)會(huì)話結(jié)束時(shí)觸發(fā)。用Internet服務(wù)管理器管理單元停止Web應(yīng)用程序時(shí)也會(huì)觸發(fā)Application_BeginRequest每次頁面請(qǐng)求開始時(shí)觸發(fā)(理想情況下是在頁面加載或刷新時(shí))Application_EndRequest每次頁面請(qǐng)求結(jié)束時(shí)(即每次在瀏覽器上執(zhí)行頁面時(shí))觸發(fā)Session_Start每次新的會(huì)話開始時(shí)觸發(fā)Session_End會(huì)話結(jié)束時(shí)觸發(fā)。(關(guān)于會(huì)話可以采用何種方式結(jié)束,請(qǐng)參見會(huì)話對(duì)象)6TestingGlobal.aspx示例4-1<scriptlanguage=“C#”runat=“server">protectedvoidApplication_Start(Objectsender,EventArgse) { }

protectedvoidSession_Start(Objectsender,EventArgse) { Response.Write(“會(huì)話已開始<br>"); }protectedvoidApplication_BeginRequest(Objectsender,EventArgse) { Response.Write(“<h1>應(yīng)用程序開始</h1>"); Response.Write(“應(yīng)用程序請(qǐng)求開始<br>"); }Global.asax文件打開代碼隱藏類文件。將代碼分別添加到

中的各個(gè)事件中7TestingGlobal.aspx示例4-2

protectedvoidApplication_EndRequest(Objectsender,EventArgse) { Response.Write(“應(yīng)用程序請(qǐng)求結(jié)束<br>"); } protectedvoidSession_End(Objectsender,EventArgse) { Response.Write(“會(huì)話已結(jié)束"); }protectedvoidApplication_End(Objectsender,EventArgse) { }</script>8TestingGlobal.aspx示例4-3privatevoidPage_Load(objectsender,System.EventArgse){ Response.Write(“頁面加載事件<br>");}將默認(rèn)ASP.NET頁面‘WebForm1.aspx’重命名為‘TestingGlobal.aspx’,并添加給定的代碼片段9TestingGlobal.aspx示例4-4刷新會(huì)話尚未結(jié)束

輸出結(jié)果10Application對(duì)象存儲(chǔ)并維護(hù)應(yīng)用程序級(jí)的數(shù)據(jù)Application對(duì)象Application狀態(tài)HttpApplicationState方法集合Application狀態(tài)由它們表示類11Application變量變量用于在應(yīng)用程序執(zhí)行時(shí)存儲(chǔ)數(shù)據(jù)頁面級(jí)對(duì)象級(jí)變量應(yīng)用程序級(jí)會(huì)話級(jí)stringmyname=“張三";Response.Write(“歡迎"+myname);12對(duì)象級(jí)變量3-1protectedvoidApplication_Start(Objectsender,EventArgse){ Application.Lock(); Application["UserNum"]=0; Application.UnLock();}清零protectedvoidSession_Start(Objectsender,EventArgse){ Response.Write("調(diào)用Session_Start:會(huì)話已開始<br>"); Application.Lock(); Application["UserNum"]=int.Parse(Application["UserNum"].ToString())+1; Application.UnLock();}增加在線人數(shù)protectedvoidSession_End(Objectsender,EventArgse){Response.Write("調(diào)用Session_End:會(huì)話已結(jié)束");Application.Lock();Application["UserNum"]=int.Parse(Application["UserNum"].ToString())-1;Application.UnLock();}減少在線人數(shù)Global.asax文件13對(duì)象級(jí)變量3-2AppVariable.aspxprivatevoidPage_Load(objectsender,System.EventArgse){ //在此處放置用戶代碼以初始化頁面 Response.Write("你是第"+Application["UserNum"].ToString()+"位訪客<BR>");}14對(duì)象級(jí)變量3-315Lock和Unlock方法Lock()Lock()

用于防止用戶更改Application

對(duì)象的屬性

Lock()可用作Application.Lock()UnLock()Unlock()

方法用于釋放對(duì)應(yīng)用程序變量的鎖定UnLock()可用作Application.UnLock()16向應(yīng)用程序添加、更新和移除項(xiàng)方法說明Add()向Application狀態(tài)添加新對(duì)象。例如,下列代碼會(huì)向應(yīng)用程序狀態(tài)添加項(xiàng):Application.Add(“Title”,articleboard);或Application(“Title”)=“ArticleBoard”;Clear()從Application狀態(tài)中移除所有對(duì)象Remove()從Application集合中按名稱移除項(xiàng)。例如,下列代碼移除Title項(xiàng):Application.Remove("Title")HttpApplicationState方法Application

對(duì)象還提供Get()和Set()

方法,可用于按名稱或索引獲取對(duì)象,并相應(yīng)地更新對(duì)象的值17CookiesCookie在客戶端系統(tǒng)中維護(hù)客戶的個(gè)人信息會(huì)話Cookie持久性Cookie………18創(chuàng)建和讀取會(huì)話CookieHttpCookieobjHttpCookie=newHttpCookie(“UserName”,“張三");

Response.Cookies.Add(objHttpCookie);新建Cookie將新Cookie添加到Response對(duì)象的Cookie集合中創(chuàng)建Cookie讀取CookieResponse.Write(Request.Cookies(“UserName").Value);Value屬性將Cookie的值作為字符串返回19創(chuàng)建和讀取持久性Cookie讀取CookieHttpCookieobjHttpCookie=newHttpCookie(“UserName”,“張三");objHttpCookie.Expires=DateTime.Now.AddMinutes(2);Response.Cookies.Add(objHttpCookie);新建Cookie用Cookie

的Expires

屬性將Cookie的過期期限設(shè)置為兩分鐘創(chuàng)建CookieResponse.Write(Request.Cookies(“UserName").Value);20Session對(duì)象Session對(duì)象用于存儲(chǔ)用戶的信息當(dāng)新用戶請(qǐng)求應(yīng)用程序的網(wǎng)頁時(shí),Server對(duì)象會(huì)檢查用戶是否有SessionIDSession對(duì)象包含特定于某個(gè)用戶的信息在用戶會(huì)話期間可以記錄和監(jiān)視特定于用戶的信息當(dāng)會(huì)話過期或終止時(shí),服務(wù)器就會(huì)清除Session對(duì)象優(yōu)點(diǎn)21Session變量Session變量與application

變量不同Session

變量僅提供給會(huì)話中的特定用戶Session變量可用于存儲(chǔ)在整個(gè)用戶會(huì)話過程中都可以訪問的值22

privatevoidbtnLogin_Click(objectsender,System.EventArgse){if(this.txtName.Text.Trim()!=""||this.txtPwd.Text.Trim()!=""){if(this.txtName.Text=="張三"&&this.txtPwd.Text=="123456"){

Session["UserName"]=this.txtName.Text.Trim();Response.Redirect("SessionVariableWelcome.aspx?pwd="+this.txtPwd.Text);}else{Session["UserName"]="";

RegisterStartupScript("Check","<Scriptlanguage=‘JavaScript’>alert(‘用戶名或密碼不對(duì),請(qǐng)檢查!');</Script>");}}else{Session["UserName"]="";}}在SessionVariableNew.aspx.CS添加如下代碼23使用示例3-2在SessionVariableWelcome.aspx頁面privatevoidPage_Load(objectsender,System.EventArgse){ if(Session["UserName"].ToString().Trim()!="") { Response.Write("<Scriptlanguage=JavaScript>alert('歡迎"+Session["UserName"]+"光臨,你的密碼是:"+Request["pwd"].ToString()+"')</Script>"); } else { Response.Redirect("SessionVariableNew.aspx"); }}24使用示例3-3錯(cuò)誤登錄時(shí)正確登錄時(shí)25Session事件Session_Start當(dāng)新用戶訪問一個(gè)應(yīng)用程序時(shí)會(huì)激活該事件Session_End用戶退出應(yīng)用程序時(shí),就會(huì)觸發(fā)Session_End事件26Session屬性Session事件Session_StartSession_End屬性說明SessionID包含一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論