top
Loading...
session的用法具體解說
Session 對象
可以使用 Session 對象存儲特定用戶會話所需的信息。這樣,當用戶在應用程序的 Web 頁之間跳轉時,存儲在 Session 對象中的變量將不會丟失,而是在整個用戶會話中一直存在下去。

當用戶請求來自應用程序的 Web 頁時,如果該用戶還沒有會話,則 Web 服務器將自動創建一個 Session 對象。當會話過期或被放棄后,服務器將終止該會話。

Session 對象最常見的一個用法就是存儲用戶的首選項。例如,如果用戶指明不喜歡查看圖形,就可以將該信息存儲在 Session 對象中。有關使用 Session 對象的詳細信息,請參閱“ASP 應用程序”部分的“管理會話”。

注意 會話狀態僅在支持 cookie 的瀏覽器中保留。

語法
Session.collection|property|method

集合
Contents 包含已用腳本命令添加到會話中的項目。
StaticObjects 包含通過 <OBJECT> 標記創建的并給定了會話作用域的對象。


屬性
CodePage 將用于符號映射的代碼頁。
LCID 現場標識。
SessionID 返回用戶的會話驗證。
Timeout 應用程序會話狀態的超時時限,以分鐘為單位。


方法
Abandon 該方法破壞 Session 對象并釋放其資源。


事件
global.asa 文件中聲明下列事件的腳本。

Session_OnEnd
Session_OnStart


有關以上事件及 global.asa 文件的詳細信息, 請參閱 Global.asa 參考.

注釋
您可以在 Session 對象中存儲值。存儲在 Session 對象中的信息在會話及會話作用域內有效。下列腳本演示兩種類型的變量的存儲方式。

<%
Session("username") = "Janine"
Session("age") = 24
%>

但是,如果您將對象存儲在 Session對象中,而且您使用 VBScript 作為主腳本語言。則必須使用關鍵字 Set。如下列腳本所示。

<% Set Session("Obj1") = Server.CreateObject("MyComponent.class1") %>

然后,您就可以在后面的 Web 頁上調用 MyComponent.class1 揭示的方法和屬性,其調用方法如下:

<% Session("Obj1").MyMethod %>

也可以通過展開該對象的本地副本并使用下列腳本來調用:

<%
Set MyLocalObj1 = Session("Obj1")
MyLocalObj1.MyObjMethod
%>

創建有會話作用域的對象的另一種方法是在 global.asa 文件中使用 <OBJECT> 標記。

但是不能在 Session 對象中存儲內建對象。例如,下面每一行都將返回錯誤。

<%
Set Session("var1") = Session
Set Session("var2") = Request
Set Session("var3") = Response
Set Session("var4") = Server
Set Session("var5") = Application
%>

在將對象存儲到 Session 對象之前,必須了解它使用的是哪一種線程模型。只有那些標記為“Both”的對象才能存儲在沒有鎖定單線程會話的 Session 對象中。詳細信息, 請參閱“創建 ASP 組件”中的“選擇線程模型”。

若您將一個數組存儲在 Session對象中,請不要直接更改存儲在數組中的元素。例如,下列的腳本無法運行。

<% Session("StoredArray")(3) = "new value" %>

這是因為 Session對象是作為集合被實現的。數組元素 StoredArray(3) 未獲得新的賦值。而此值將包含在 Application 對象集合中,并將覆蓋此位置以前存儲的任何信息。

我們極力建議您在將數組存儲在 Session對象中時,在檢索或改變數組中的對象前獲取數組的一個副本。在對數組操作時,您應再將數組全部存儲在 Session 對象中,這樣您所做的任何改動將被存儲下來。下列的腳本對此進行演示。

---file1.asp---
<%
'Creating and initializing the array
Dim MyArray()
Redim MyArray(5)
MyArray(0) = "hello"
MyArray(1) = "some other string"

'Storing the array in the Session object
Session("StoredArray") = MyArray

Response.Redirect("file2.asp")
%>

---file2.asp---
<%
'Retrieving the array from the Session Object
'and modifying its second element
LocalArray = Session("StoredArray")
LocalArray(1) = " there"

'printing out the string "hello there"
Response.Write(LocalArray(0)&LocalArray(1))

'Re-storing the array in the Session object
'This overwrites the values in StoredArray with the new values
Session("StoredArray") = LocalArray
%>

示例
下列代碼將字符串 MyName 分配給名為 name 的會話變量,并給名為 year 的會話變量指定一個值,而且為 some.Obj 組件的實例指定一個名為 myObj 的變量。

Session("name") = "MyName"
Session("year") = 96
Set Session("myObj") = Server.CreateObject("someObj")
%>

北斗有巢氏 有巢氏北斗