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分鐘。