ASP Session對象的集合以及屬性方法事件

來源:互聯網
上載者:User
session|對象|集合

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分鐘。 (此資料根據您的IIS設定)



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.