Session 物件
可以使用 Session 物件儲存特定使用者會話所需的資訊。這樣,當使用者在應用程式的 Web 頁面之間跳轉時,儲存在 Session 物件中的變數將不會遺失,而是在整個使用者會話中一直存在下去。
當使用者要求來自應用程式的 Web 頁面時,如果該使用者還沒有會話,則 Web 伺服器將自動建立 Session 物件。當會話過期或被放棄後,伺服器將終止該會話。
Session 物件最常見的一個用法就是儲存使用者的首選項。例如,如果使用者指明不喜歡查看圖形,就可以將該資訊儲存在 Session 物件中。有關使用 Session 物件的詳細信息,請參閱「ASP 應用程式」部分的「管理會話」。
注意 會話狀態僅在支援 cookie# 的瀏覽器中保留。
語法
Session.collection|property|method
集合
Contents 包含已使用腳本指令新增至會話中的項目。
StaticObjects 包含透過 7a4d48e0cef2cd71d96cba7e2b26153a 標記所建立的並給定了會話作用域的物件。
屬性
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 檔案中使用7a4d48e0cef2cd71d96cba7e2b26153a 標記。
但是不能在 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物件中,請不要直接變更儲存在陣列中的元素。例如,下列的腳本無法運作。
1751e3f72d4c82754921cb8852945515
這是因為 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.Re dir ect("file2.asp") %> ---file2.asp--- <% 'Retrieving the array from the Session Object 'and mod if ying its second element LocalArray = Session("StoredArray") LocalArray(1) = " there" ' print ing 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 %>
相關解答:
A頁面需輸入正確的使用者名稱和密碼後,
加條語句:session("isLogin ")=true
在B頁面前判斷:
if session("isLogin")=false then response.write "未登录" response.en end if
這樣就可以了
登陸後設定:
session("user")=使用者名稱
在B 頁輸入:
if session("user")="" then Response.write("<script>alert('请登陆!');window.history.go(-1);</scritp>") end if
【相關推薦】
1. ASP免費影片教學
以上是ASP session簡單範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!