Session StaticObjects 集合
StaticObjects 集合包含 Session 對象范圍中用 <OBJECT> 標記創(chuàng)建的所有對象。該集合可用于確定對象特定屬性的值,或用于遍歷集合并獲取所有對象的全部屬性。
語法
Session.StaticObjects( Key )
參數(shù)
Key
要檢索的屬性。
注釋
使用循環(huán)控制結(jié)構(gòu)可以遍歷 StaticObjects 集合中的關(guān)鍵字。請看下面的示例。
<%
Dim objprop
For Each objprop in Session.StaticObjects
Response.write(objproperty & " : " & Session.StaticObjects(objprop) & "<BR>")
Next
%>
Session Contents 集合
Session.contents 集合包括所有未使用 <OBJECT> 標記而為該會話建立的項目。此集合可用于確定指定會話項的值或遍歷集合并檢索出會話中所有項的列表。
語法
Session.Contents( Key )
參數(shù)
Key
要獲取的屬性的名稱。
注釋
您可以使用一個循環(huán)控制結(jié)構(gòu)通過 Contents 集合的關(guān)鍵字來循環(huán)。下面的示例演示這一過程。
<%
Dim sessitem
For Each sessitem in Session.Contents
Response.write(sessitem & " : " & Session.Contents(sessitem) & "<BR>")
Next
%>
CodePage
CodePage 屬性決定將被用以顯示動態(tài)內(nèi)容的代碼頁。
語法
Session.CodePage(=Codepage)
參數(shù)
Codepage
這是一個無符號整數(shù),這個整數(shù)代表正在運行 ASP 腳本引擎的系統(tǒng)的有效代碼頁。
注釋
代碼頁是一個可以包括數(shù)字、標點符號、以及其他字母的字符集。對于不同的語言和地區(qū)可以使用不同的代碼頁。例如, ANSI 代碼頁 1252 用于美國英語和大多數(shù)歐洲語言;OEM 代碼頁 932 用于日文漢字。
代碼頁是將字符映射成單字節(jié)值或多字節(jié)值的字符表。許多代碼頁共享 ASCII 字符集中 0x00 - 0x7F 之間的字符。
Abandon
Abandon 方法刪除所有存儲在 Session 對象中的對象并釋放這些對象的源。如果您未明確地調(diào)用 Abandon 方法,一旦會話超時,服務(wù)器將刪除這些對象 。
語法
Session.Abandon
注釋
Abandon 方法被調(diào)用時,將按序刪除當前的 Session 對象,不過在當前頁中所有腳本命令都處理完后,對象才會被真正刪除。這就是說,在調(diào)用 Abandon 時,可以在當前頁上訪問存儲在 Session 對象中的變量,但在隨后的 Web 頁上不行。
例如,在下列腳本中,第三行打印出 Mary 值。這是因為在服務(wù)器處理完腳本前沒有刪除 Session 對象。
<%
Session.Abandon
Session("MyName") = "Mary"
Reponse.Write(Session("MyName"))
%>
如果在隨后 Web 頁上訪問 MyName 變量,您將發(fā)現(xiàn)它是空的。這是因為當包含上一個例子的頁面結(jié)束處理時,MyName 同前面的 Session 對象一起被刪除了。
放棄會話并打開后面的 Web 頁時,服務(wù)器會創(chuàng)建新的 Session 對象。您可以在新的 Session 對象中存儲變量和對象。
示例
當服務(wù)器處理完當前頁時,下面示例將釋放會話狀態(tài)。
<% Session.Abandon %>
LCID
LCID 屬性決定用于顯示動態(tài)內(nèi)容的位置標識。
語法
Session.LCID(=LCID)
參數(shù)
LCID
有效的現(xiàn)場標識。
注釋
LCID 指定現(xiàn)場標識,現(xiàn)場標識是唯一標識某個系統(tǒng)定義的現(xiàn)場的國際標準縮寫。
SessionID
SessionID 屬性返回用戶的會話標識。在創(chuàng)建會話時,服務(wù)器會為每一個會話生成一個單獨的標識。會話標識以長整形數(shù)據(jù)類型返回。
語法
Session.SessionID
注釋
不要用 SessionID 屬性為數(shù)據(jù)庫應(yīng)用程序創(chuàng)建主關(guān)鍵字。這是因為,如果 Web 服務(wù)器重新啟動,則部分 SessionID 的值可能同服務(wù)器終止前產(chǎn)生的值相同。可以使用自動增加的列數(shù)據(jù)類型來代替,如 Microsoft® SQL Server 中的 IDENTITY,或 Microsoft® Access 中的 COUNTER 。
Session_OnStart
Session_OnStart 事件在服務(wù)器創(chuàng)建新會話時發(fā)生。服務(wù)器在執(zhí)行請求的頁之前先處理該腳本。Session_OnStart 事件是設(shè)置會話期變量的最佳時機,因為在訪問任何頁之前都會先設(shè)置它們。所有內(nèi)建對象 (Application、ObjectContext、Request、Response、Server 和 Session) 都可以在 Session_OnStart 事件腳本中使用和引用。
語法
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Session_OnStart. . .End Sub 'by aspxuexi.com
</SCRIPT>
參數(shù)
ScriptLanguage
指定用于編寫事件腳本的腳本編寫語言。可以是任何一種支持腳本的語言,例如 VBScript 或 JScript。如果有多個事件使用同一種腳本編寫語言,就可以將它們組織在一組 <SCRIPT> 標記下。
示例
盡管在 Session_OnStart 事件包含 Redirect 或 End 方法調(diào)用的情況下 Session 對象仍會保持,然而服務(wù)器將停止處理 Global.asa 文件并觸發(fā) Session_OnStart 事件的文件中的腳本。
舉一個例子,為了確保用戶在打開某個特定的 Web 頁時始終啟動一個會話,就可以在 Session_OnStart 事件中調(diào)用 Redirect 方法。當用戶進入應(yīng)用程序時,服務(wù)器將為用戶創(chuàng)建一個會話并處理 Session_OnStart 事件腳本。您可以將腳本包含在該事件中以便檢查用戶打開的頁是不是啟動頁,如果不是,就指示用戶調(diào)用 Response.Redirect 方法啟動網(wǎng)頁。其演示如下例所示。
<SCRIPT RUNAT=Server Language=VBScript>
Sub Session_OnStart
' Make sure that new users start on the correct
' page of the ASP application. 'by aspxuexi.com
' Replace the value given to startPage below
' with the virtual path to your application's
' start page.
startPage = "/MyApp/StartHere.asp"
currentPage = Request.ServerVariables("SCRIPT_NAME")
' Do a case-insensitive compare, and if they
' don't match, send the user to the start page.
if strcomp(currentPage,startPage,1) then Response.Redirect(startPage) end ifEnd Sub</SCRIPT>
上述示例只能在支持 cookie 的瀏覽器中運行。因為不支持 cookie 的瀏覽器不能返回 SessionID cookie,所以,每當用戶請求 Web 頁時,服務(wù)器都會創(chuàng)建一個新會話。這樣,對于每個請求,服務(wù)器都將處理 Session_OnStart 腳本并將用戶重定向到啟動頁中。如果您要使用下面的腳本,建議您在啟動頁上放一個通知,告訴用戶該站點要求支持 cookie 的瀏覽器。
注釋
請注意,在 Redirect 方法之后的任何 Session_OnStart 事件腳本都不會執(zhí)行。因此,應(yīng)該在您的事件腳本的最后再調(diào)用 Redirect 方法。其演示如下例所示。
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
' Session initialization script
'by aspxuexi.com
Response.Redirect "http:/server/app/StartHere.asp"
End sub
</SCRIPT>
在上面的例子中,Redirect 方法在執(zhí)行會話初始化腳本期間隱藏所有顯示給客戶的文字。
Session_OnEnd
Session_OnEnd 事件在會話被放棄或超時發(fā)生。在服務(wù)器內(nèi)建對象中,只有 Application、Server 和 Session 對象可用。
語法
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Session_OnEnd. . . End Sub
</SCRIPT>
參數(shù)
ScriptLanguage
指定用于編寫事件腳本的腳本編寫語言。可以是任一支持腳本編寫的語言,例如 VBScript 或 JScript。如果有多個事件使用同一種腳本編寫語言,則可以將其組織在一組 <SCRIPT> 標記下。
注釋
在 Session_OnEnd 腳本中不能調(diào)用 MapPath 方法。
Timeout
Timeout 屬性以分鐘為單位為該應(yīng)用程序的 Session 對象指定超時時限。如果用戶在該超時時限之內(nèi)不刷新或請求網(wǎng)頁,則該會話將終止。
語法
Session.Timeout [ = nMinutes]
參數(shù)
nMinutes
指定會話空閑多少分鐘后服務(wù)器自動終止該會話。默認值為15分鐘。 (此數(shù)據(jù)根據(jù)您的IIS設(shè)置)