詳解ASP的Session對(duì)象_ASP教程
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
推薦:解讀如何正確使用ASP中的Session對(duì)象變量使用ASP的人都知道,Session對(duì)象存儲(chǔ)特定的用戶會(huì)話所需的信息,當(dāng)用戶在應(yīng)用程序的頁(yè)之間跳轉(zhuǎn)時(shí),存儲(chǔ)在Session對(duì)象中的變量不會(huì)清除,而用戶在應(yīng)用程序中訪問(wèn)頁(yè)面時(shí),這些變量始終存在。它可以減少程序的復(fù)雜性提高編程效率,但它同樣存在許多缺陷,本文對(duì)
一、屬性1、SessionID
SessionID 屬性返回用戶的會(huì)話標(biāo)識(shí)。在創(chuàng)建會(huì)話時(shí),服務(wù)器會(huì)為每一個(gè)會(huì)話生成一個(gè)單獨(dú)的標(biāo)識(shí)。會(huì)話標(biāo)識(shí)以長(zhǎng)整形數(shù)據(jù)類型返回。在很多情況下 SessionID 可以用于 WEB 頁(yè)面注冊(cè)統(tǒng)計(jì)。
2、TimeOut
Timeout 屬性以分鐘為單位為該應(yīng)用程序的 Session 對(duì)象指定超時(shí)時(shí)限。如果用戶在該超時(shí)時(shí)限之內(nèi)不刷新或請(qǐng)求網(wǎng)頁(yè),則該會(huì)話將終止。
二、方法
Session 對(duì)象僅有一個(gè)方法,就是 Abandon,Abandon 方法刪除所有存儲(chǔ)在 Session 對(duì)象中的對(duì)象并釋放這些對(duì)象的源。如果您未明確地調(diào)用 Abandon 方法,一旦會(huì)話超時(shí),服務(wù)器將刪除這些對(duì)象。當(dāng)服務(wù)器處理完當(dāng)前頁(yè)時(shí),下面示例將釋放會(huì)話狀態(tài)。
< % Session.Abandon %>
三、事件
Session 對(duì)象有兩個(gè)事件可用于在 Session 對(duì)象啟動(dòng)和釋放是運(yùn)行過(guò)程。
1、Session_OnStart 事件在服務(wù)器創(chuàng)建新會(huì)話時(shí)發(fā)生。服務(wù)器在執(zhí)行請(qǐng)求的頁(yè)之前先處理該腳本。Session_OnStart 事件是設(shè)置會(huì)話期變量的最佳時(shí)機(jī),因?yàn)樵谠L問(wèn)任何頁(yè)之前都會(huì)先設(shè)置它們。
盡管在 Session_OnStart 事件包含 Redirect 或 End 方法調(diào)用的情況下 Session 對(duì)象仍會(huì)保持,然而服務(wù)器將停止處理 Global.asa 文件并觸發(fā) Session_OnStart 事件的文件中的腳本。
為了確保用戶在打開(kāi)某個(gè)特定的 Web 頁(yè)時(shí)始終啟動(dòng)一個(gè)會(huì)話,就可以在 Session_OnStart 事件中調(diào)用 Redirect 方法。當(dāng)用戶進(jìn)入應(yīng)用程序時(shí),服務(wù)器將為用戶創(chuàng)建一個(gè)會(huì)話并處理 Session_OnStart 事件腳本。您可以將腳本包含在該事件中以便檢查用戶打開(kāi)的頁(yè)是不是啟動(dòng)頁(yè),如果不是,就指示用戶調(diào)用 Response.Redirect 方法啟動(dòng)網(wǎng)頁(yè)。程序如下:
< SCRIPT RUNAT=Server Language=VBScript>
Sub Session_OnStart
startPage = "/MyApp/StartHere.asp"
currentPage = Request.ServerVariables("SCRIPT_NAME")
if strcomp(currentPage,startPage,1) then
Response.Redirect(startPage)
end if
End Sub
< /SCRIPT>
上述程序只能在支持 cookie 的瀏覽器中運(yùn)行。因?yàn)椴恢С?nbsp;cookie 的瀏覽器不能返回 SessionID cookie,所以,每當(dāng)用戶請(qǐng)求 Web 頁(yè)時(shí),服務(wù)器都會(huì)創(chuàng)建一個(gè)新會(huì)話。這樣,對(duì)于每個(gè)請(qǐng)求服務(wù)器都將處理 Session_OnStart 腳本并將用戶重定向到啟動(dòng)頁(yè)中。
2、Session_OnEnd 事件在會(huì)話被放棄或超時(shí)發(fā)生。
關(guān)于使用 Session 對(duì)象需要注意的事項(xiàng) Application 對(duì)象相近,請(qǐng)參照前文。
會(huì)話可以通過(guò)以下三種方式啟動(dòng) :
1、一個(gè)新用戶請(qǐng)求訪問(wèn)一個(gè) URL,該 URL 標(biāo)識(shí)了某個(gè)應(yīng)用程序中的 .asp 文件,并且該應(yīng)用程序的 Global.asa 文件包含 Session_OnStart 過(guò)程。
2、用戶在 Session 對(duì)象中存儲(chǔ)了一個(gè)值。
3、用戶請(qǐng)求了一個(gè)應(yīng)用程序的 .asp 文件,并且該應(yīng)用程序的Global.asa 文件使用 < OBJECT> 標(biāo)簽創(chuàng)建帶有會(huì)話作用域的對(duì)象的實(shí)例。
如果用戶在指定時(shí)間內(nèi)沒(méi)有請(qǐng)求或刷新應(yīng)用程序中的任何頁(yè),會(huì)話將自動(dòng)結(jié)束。這段時(shí)間的默認(rèn)值是 20 分鐘�?梢酝ㄟ^(guò)在 Internet 服務(wù)管理器中設(shè)置“應(yīng)用程序選項(xiàng)”屬性頁(yè)中的“會(huì)話超時(shí)”屬性改變應(yīng)用程序的默認(rèn)超時(shí)限制設(shè)置。應(yīng)依據(jù)您的 Web 應(yīng)用程序的要求和服務(wù)器的內(nèi)存空間來(lái)設(shè)置此值。例如,如果您希望瀏覽您的 Web 應(yīng)用程序的用戶在每一頁(yè)僅停留幾分鐘,就應(yīng)該縮短會(huì)話的默認(rèn)超時(shí)值。過(guò)長(zhǎng)的會(huì)話超時(shí)值將導(dǎo)致打開(kāi)的會(huì)話過(guò)多而耗盡您的服務(wù)器的內(nèi)存資源。對(duì)于一個(gè)特定的會(huì)話,如果您想設(shè)置一個(gè)小于默認(rèn)超時(shí)值的超時(shí)值,可以設(shè)置 Session 對(duì)象的 Timeout 屬性。例如,下面這段腳本將超時(shí)值設(shè)置為 5 分鐘。
< % Session.Timeout = 5 %>
當(dāng)然你也可以設(shè)置一個(gè)大于默認(rèn)設(shè)置的超時(shí)值,Session.Timeout 屬性決定超時(shí)值。你還可以通過(guò) Session 對(duì)象的 Abandon 方法顯式結(jié)束一個(gè)會(huì)話。例如,在表格中提供一個(gè)“退出”按鈕,將按鈕的 ACTION 參數(shù)設(shè)置為包含下列命令的 .asp 文件的 URL。
< % Session.Abandon %>
分享:ASP如何防止表單重復(fù)提交用戶提交表單時(shí)經(jīng)常會(huì)遇到一些意外情況,比如多次刷新頁(yè)面、按了后退鍵等,如果不采取控制措施就會(huì)引起 表單重復(fù)提交的問(wèn)題。 本文介紹的這種 防止方法, 主要由四個(gè)子程序組成,在較為簡(jiǎn)單的應(yīng)用場(chǎng)合,你只要將這些代碼放在包含文件中直接引用即可;對(duì)于那些
相關(guān)ASP教程:
- asp FSO 讀寫(xiě)文件本文件實(shí)現(xiàn)代碼
- asp中isNull、isEmpty和空字符串的區(qū)別
- asp獲取用戶真實(shí)IP地址的方法
- asp連接sqlserver數(shù)據(jù)庫(kù)實(shí)現(xiàn)代碼
- asp中正則表達(dá)式過(guò)濾html代碼函數(shù)
- asp中g(shù)et post提交表單區(qū)別
- 網(wǎng)頁(yè)模板:ASP內(nèi)建對(duì)象Request
- xmlhttp的open方法使用詳解
- ASP的常用的自定義函數(shù)大全
- asp中用for循環(huán)的一個(gè)小技巧
- eWebEditor v3.8 列目錄
- ASP無(wú)組件分頁(yè)實(shí)現(xiàn)思路及代碼
ASP教程Rss訂閱編程教程搜索
ASP教程推薦
- 動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)ASP日期和時(shí)間函數(shù)示例
- 解讀ASP程序執(zhí)行SQL語(yǔ)句時(shí)防止注入攻擊的問(wèn)題
- 用GetString來(lái)提高ASP的速度
- 用存儲(chǔ)過(guò)程實(shí)現(xiàn)數(shù)據(jù)分頁(yè)Asp
- 怎樣使ASP分頁(yè)顯示Recordset數(shù)據(jù)
- 怎么判斷一個(gè)對(duì)象是否已被釋放
- ASP與ACCESS鏈接
- 解讀ASP常用函數(shù)列表
- 解析asp中緩存cache技術(shù)的應(yīng)用
- ASP常見(jiàn)數(shù)學(xué)函數(shù) Abs Atn Cos 等詳解
- 相關(guān)鏈接:
- 教程說(shuō)明:
ASP教程-詳解ASP的Session對(duì)象
。