ASP應用程序與會話_第1頁
ASP應用程序與會話_第2頁
ASP應用程序與會話_第3頁
ASP應用程序與會話_第4頁
ASP應用程序與會話_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第四講ASP應用程序與會話ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第1頁!一.狀態(tài)的有關概念1.狀態(tài)的定義如果在程序中聲明一個全局變量,在運行期該變量一直有效,并且可以對其進行訪問,這樣的一個全局變量即可視之為狀態(tài)。動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第2頁!一.狀態(tài)的有關概念2.狀態(tài)對Web應用程序的重要性需要一種方法來保存每個訪問者的狀態(tài)。如果沒法實現(xiàn)狀態(tài),ASP網(wǎng)頁的功能就會很有限,因為當一個頁面執(zhí)行完成時,頁面中的變量和其他相關資料都被破壞掉了。當用戶打開一個頁面時,原來訪問過后的頁面所提供的信息將全部丟失。就是說,變量是屬于“頁面級”的,一個頁面的變量在另一個頁面不起作用,有些時候需要某些變量能跨頁面調(diào)用,這實現(xiàn)需要某種方法實現(xiàn)狀態(tài)。動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第3頁!二.使用Cookies集合①使用response.cookies創(chuàng)建cookie對象②使用request.cookies讀取cookie對象例子:寫入cookie:

<%response.cookies(“mine”)=“value1”%>讀?。?/p>

<%dimvarvar=request.cookies(“mine”)%>動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第4頁!二.使用Cookies集合例子:如下面的Cookie創(chuàng)建一個名為info的字典,其中保存了三個鍵值:<%Response.Cookie("info")("Myname")=“l(fā)una"Response.Cookie("info")("Gender")="male"Response.Cookie("info")("Myheight")="170"%>動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第5頁!二.使用Cookies集合如果要把Cookie中讀取的所有數(shù)據(jù),可以用下面的代碼:<%ForeachcookieinRequest.CookiesifNotcookie.HasKeysthen①Response.writecookie&"="&Request.Cookies(cookie)ElseforeachkeyinRequest.Cookies(cookie)②Response.writecookie&"("&key&")"&"="&②Request.Cookies(cookie)(key)nextendifnext%>

動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第6頁!三.Application對象在同一目錄及其子目錄下的所有ASP文件構成了ASP應用程序。用戶可以使用Application對象,在給定的ASP應用程序的所有用戶之間共享信息。對于網(wǎng)站的應用程序系統(tǒng)而言,不僅要允許多位用戶同時進入網(wǎng)站,還需考慮到數(shù)據(jù)的共享,如下所示:?共享給網(wǎng)站所有的用戶——Application變量例如,當前在線上的用戶人數(shù)。?每位用戶的專屬信息——Session變量例如,登錄網(wǎng)站的用戶數(shù)據(jù)。動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第7頁!三.Application對象2.Lock和unlock方法由于網(wǎng)頁在同一時間里,可能同時有許多使用者,所有在修改application對象的內(nèi)容時,必須將application對象用lock方法鎖定。這個方法可以確保這個變量在同一時間只能有一個使用者修改其內(nèi)容。如

<%application.lockapplication(“name”)=“l(fā)una”

application.unlock

%>動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第8頁!四.Session對象任何存儲在Session中的信息可以在用戶調(diào)用下一個頁面時取得。Session對象用于保存用戶在不同頁面中跳轉(zhuǎn)時的值,當用戶的應用程序在頁間跳轉(zhuǎn)時,存儲在Session對象中的變量不會清除。動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第9頁!四.Session對象1.Session對象的創(chuàng)建:

session(“變量名”)=值①可以用下面的方法把數(shù)據(jù)存儲到指定的session對象,如:

<%Session(“myname”)=“user”Session(“password”)=“pass”%>②可以在另一個頁面用下面的方法取得數(shù)據(jù)

<%name=session(“myname”)pwd=session(“password”)%>動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第10頁!四.Session對象3.釋放sessionSession的abandon方法可以刪除所有存儲在session對象中的對象并釋放其占用的web服務器資源。如果沒有明確地調(diào)用abandon方法,一旦會話超時,服務器將會刪除這些對象。當服務器處理完當前頁時,下面示例將釋放會話狀態(tài):(典型用途-退出登錄、注銷)

<%session.abandon%>動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第11頁!1.首頁:index.htm2.普通頁面:public.htm3.權限頁面:private.asp4.出錯頁面:error.htm5.登錄及處理頁面:login.htm、loginproc.asp登錄流程主頁普通頁面直接訪問已經(jīng)登陸權限頁面登錄頁面沒有登陸登陸成功權限頁面登陸失敗出錯頁面四.Session對象動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第12頁!四.Session對象思考題:1.注銷功能如何實現(xiàn)?2.本例子只有一個用戶權限,如果系統(tǒng)有多個不同的用戶權限,如管理員、教師、學生三個權限,思考本例子的重點,嘗試實現(xiàn)多用戶權限的功能?3.由于還沒涉及數(shù)據(jù)庫,用戶密碼都沒進一步判斷,假設用戶名和密碼分別為xialu和pass,該如何實現(xiàn)?動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第13頁!一.狀態(tài)的有關概念ASP使用以下內(nèi)容來保存狀態(tài)1.Application對象實現(xiàn)應用程序級狀態(tài):全局2.Session對象實現(xiàn)用戶級狀態(tài)3.Cookie技術對用戶的某些信息進行跟蹤動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第14頁!二.使用Cookies集合Cookie字典有時在一個頁面中可能需要定義很多個Cookies變量,為了更好地管理它,在Cookies組件中常引入概念“子鍵”。①定義:

Response.cookies("變量名")("子鍵名")

②引用:

Request.Cookies("變量名")("子鍵名")

動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第15頁!二.使用Cookies集合事實上客戶機上的Cookie字典是以字符串的形式存在:info=Myname=luna&Gender=male&Myheight=170如果用戶沒有指定“子鍵”名而直接引用Cookies變量,將會返回一個包含所有的“子鍵”名及值的字符串。例如上面這個例子包含三個“子鍵”:"Myname"、"Gender"和"Myheight",當用戶沒有指定其“子鍵”而直接通過Request.Cookies("info")來引用時,則會得到下列字符串:

info=Myname=luna&Gender=male&Myheight=170

動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第16頁!二.使用Cookies集合Cookie的時效使用基本方法設置的cookie,在瀏覽器關閉或者會話到期時會一直存在,一旦關閉瀏覽器,該cookie值會消失。為了將cookie保存更長時間,需要設置cookies集合的expires屬性:Response.cookies(“變量名”).expires=date+/-時間如:Response.cookies(“var”).expires=date+30Response.cookies(“var”).expires=date-1動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第17頁!三.Application對象1.設置和取得application對象Application對象沒有內(nèi)置的屬性,但可以由用戶定義。可以用下面方法設置:

Application(“變量名”)=值要引用具體對象,直接使用Application(“變量名”)引用即可。動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第18頁!四.Session對象如果要區(qū)分不同的瀏覽器客戶呢?可以通過Session對象實現(xiàn),當不同的瀏覽器客戶訪問服務器應用程序時,服務器會分別為每一個客戶分配一段內(nèi)存空間用于保存不同用戶的數(shù)據(jù)信息,即每一個客戶都可以有自己的Session。一個Session的值對應一個用戶,對不同的用戶是不同的。動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第19頁!四.Session對象每個用戶通過瀏覽器打開網(wǎng)站,服務器會自動為此用戶建立一個Session進程。而在用戶關閉瀏覽器,或者長時間未作響應時,Session對象將丟失。注意,并不是自動銷毀,而只是用戶無法找到之前創(chuàng)建的Session對象。這個機制可以用于判斷用戶的身份;在不同的頁面跳轉(zhuǎn)時,保持用戶的權限,以及跟蹤用戶等。同時,對于一些用戶的個性化設置也可以存入到Session對象中,達到用戶個性化主頁的配置要求動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第20頁!四.Session對象2.Session的過期Session是有使用期限的,缺省時間是20分鐘??梢酝ㄟ^設置session的timeout屬性來改變超時時間。這個時間以分鐘來計算,如:

<%Session.timeout=30%>一套完整的asp程序的每一個頁面都應判斷session對象是否超時。如果超時則應進行一定的處理,如可以提示用戶重新登錄或跳轉(zhuǎn)到其它頁面。動態(tài)網(wǎng)頁制作ASP應用程序與會話共24頁,您現(xiàn)在瀏覽的是第21頁!四.Session對象例子:用戶登錄管理功能:對用戶進行權限管理,某些頁面需要登錄才能訪問,如普通頁面對所有人公開,但權限頁面則需要用戶登陸之后才能訪問知識點:1.利用session判斷

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論