session StaticObjects 集合
StaticObjects 集合包含 Session 對象范圍中用 <OBJECT> 標記創建的所有對象。該集合可用於確定對象特定屬性的值,或用於遍歷集合並獲取所有對象的全部屬性。
語法
Session.StaticObjects( Key )
參數
Key
要檢索的屬性。
注釋
使用循環控制結構可以遍歷 StaticObjects 集合中的關鍵字。請看下面的示例。
<%
Dim objPRop
For Each objprop in Session.StaticObjects
Response.write(objproperty & " : " & Session.StaticObjects(objprop) & "<BR>")
Next
%>
Session Contents 集合
Session.contents 集合包括所有未使用 <OBJECT> 標記而為該會話建立的項目。此集合可用於確定指定會話項的值或遍歷集合並檢索出會話中所有項的列表。
語法
Session.Contents( Key )
參數
Key
要獲取的屬性的名稱。
注釋
您可以使用一個循環控制結構通過 Contents 集合的關鍵字來循環。下面的示例演示這一過程。
<%
Dim sessitem
For Each sessitem in Session.Contents
Response.write(sessitem & " : " & Session.Contents(sessitem) & "<BR>")
Next
%>
CodePage
CodePage 屬性決定將被用以顯示動態內容的代碼頁。
語法
Session.CodePage(=Codepage)
參數
Codepage
這是一個無符號整數,這個整數代表正在運行 ASP 腳本引擎的系統的有效代碼頁。
注釋
代碼頁是一個可以包括數字、標點符號、以及其他字母的字符集。對於不同的語言和地區可以使用不同的代碼頁。例如, ANSI 代碼頁 1252 用於美國英語和大多數歐洲語言;OEM 代碼頁 932 用於日文漢字。
代碼頁是將字符映射成單字節值或多字節值的字符表。許多代碼頁共享 ASCII 字符集中 0x00 - 0x7F 之間的字符。
Abandon
Abandon 方法刪除所有存儲在 Session 對象中的對象並釋放這些對象的源。如果您未明確地調用 Abandon 方法,一旦會話超時,服務器將刪除這些對象 。
語法
Session.Abandon
注釋
Abandon 方法被調用時,將按序刪除當前的 Session 對象,不過在當前頁中所有腳本命令都處理完後,對象才會被真正刪除。這就是說,在調用 Abandon 時,可以在當前頁上訪問存儲在 Session 對象中的變量,但在隨後的 Web 頁上不行。
例如,在下列腳本中,第三行打印出 Mary 值。這是因為在服務器處理完腳本前沒有刪除 Session 對象。
<%
Session.Abandon
Session("MyName") = "Mary"
Reponse.Write(Session("MyName"))
%>
如果在隨後 Web 頁上訪問 MyName 變量,您將發現它是空的。這是因為當包含上一個例子的頁面結束處理時,MyName 同前面的 Session 對象一起被刪除了。
放棄會話並打開後面的 Web 頁時,服務器會創建新的 Session 對象。您可以在新的 Session 對象中存儲變量和對象。
示例
當服務器處理完當前頁時,下面示例將釋放會話狀態。
<% Session.Abandon %>
LCID
LCID 屬性決定用於顯示動態內容的位置標識。
語法
Session.LCID(=LCID)
參數
LCID
有效的現場標識。
注釋
LCID 指定現場標識,現場標識是唯一標識某個系統定義的現場的國際標准縮寫。
SessionID
SessionID 屬性返回用戶的會話標識。在創建會話時,服務器會為每一個會話生成一個單獨的標識。會話標識以長整形數據類型返回。
語法
Session.SessionID
注釋
不要用 SessionID 屬性為數據庫應用程序創建主關鍵字。這是因為,如果 Web 服務器重新啟動,則部分 SessionID 的值可能同服務器終止前產生的值相同。可以使用自動增加的列數據類型來代替,如 Microsoft® SQL Server 中的 IDENTITY,或 Microsoft® Access 中的 COUNTER 。
Session_OnStart
Session_OnStart 事件在服務器創建新會話時發生。服務器在執行請求的頁之前先處理該腳本。Session_OnStart 事件是設置會話期變量的最佳時機,因為在訪問任何頁之前都會先設置它們。所有內建對象 (application、ObjectContext、Request、Response、Server 和 Session) 都可以在 Session_OnStart 事件腳本中使用和引用。
語法
<SCRipT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Session_OnStart. . .End Sub 'by ASPxuexi.com
</SCRIPT>
參數
ScriptLanguage
指定用於編寫事件腳本的腳本編寫語言。可以是任何一種支持腳本的語言,例如 VBScript 或 JScript。如果有多個事件使用同一種腳本編寫語言,就可以將它們組織在一組 <SCRIPT> 標記下。
示例
盡管在 Session_OnStart 事件包含 Redirect 或 End 方法調用的情況下 Session 對象仍會保持,然而服務器將停止處理 Global.asa 文件並觸發 Session_OnStart 事件的文件中的腳本。
舉一個例子,為了確保用戶在打開某個特定的 Web 頁時始終啟動一個會話,就可以在 Session_OnStart 事件中調用 Redirect 方法。當用戶進入應用程序時,服務器將為用戶創建一個會話並處理 Session_OnStart 事件腳本。您可以將腳本包含在該事件中以便檢查用戶打開的頁是不是啟動頁,如果不是,就指示用戶調用 Response.Redirect 方法啟動網頁。其演示如下例所示。
<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 頁時,服務器都會創建一個新會話。這樣,對於每個請求,服務器都將處理 Session_OnStart 腳本並將用戶重定向到啟動頁中。如果您要使用下面的腳本,建議您在啟動頁上放一個通知,告訴用戶該站點要求支持 cookIE 的浏覽器。
注釋
請注意,在 Redirect 方法之後的任何 Session_OnStart 事件腳本都不會執行。因此,應該在您的事件腳本的最後再調用 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 方法在執行會話初始化腳本期間隱藏所有顯示給客戶的文字。
Session_OnEnd
Session_OnEnd 事件在會話被放棄或超時發生。在服務器內建對象中,只有 Application、Server 和 Session 對象可用。
語法
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Session_OnEnd. . . End Sub
</SCRIPT>
參數
ScriptLanguage
指定用於編寫事件腳本的腳本編寫語言。可以是任一支持腳本編寫的語言,例如 VBScript 或 JScript。如果有多個事件使用同一種腳本編寫語言,則可以將其組織在一組 <SCRIPT> 標記下。
注釋
在 Session_OnEnd 腳本中不能調用 MapPath 方法。
Timeout
Timeout 屬性以分鐘為單位為該應用程序的 Session 對象指定超時時限。如果用戶在該超時時限之內不刷新或請求網頁,則該會話將終止。
語法
Session.Timeout [ = nMinutes]
參數
nMinutes
指定會話空閒多少分鐘後服務器自動終止該會話。默認值為15分鐘。