當您操作某個應用程序時,您打開它,做些改變,然后將它關閉。這很像一次對話(Session)。計算機知道您是誰。它清楚您在何時打開和關閉應用程序。但是在因特網上有一個問題:由于 HTTP 地址無法存留狀態,web 服務器并不知道您是誰以及您做了什么。
ASP 通過為每位用戶創建一個唯一的 cookie 的方式解決了這個問題。cookie 被傳送至客戶端,它含有可識別用戶的信息。這種接口被稱作 Session 對象。
Session 對象用于存儲關于用戶的信息,或者為一個用戶的 session 更改設置。存儲于 session 對象中的變量存有單一用戶的信息,并且對于應用程序中的所有頁面都是可用的。存儲于 session 對象中的信息通常是 name、id 以及參數。服務器會為每個新的用戶創建一個新的 Session,并在 session 到期時撤銷掉這個 Session 對象。
假如用戶沒有在規定的時間內在應用程序中請求或者刷新頁面,session 就會結束。默認值為 20 分鐘。
如果您希望將超時的時間間隔設置得更長或更短,可以設置 Timeout 屬性。
下面的例子設置了 5 分鐘的超時時間間隔:
Session.Timeout=5
要立即結束 session,可使用 Abandon 方法:
Session.Abandon
注意:使用 session 時主要的問題是它們該在何時結束。我們不會知道用戶最近的請求是否是最后的請求。因此我們不清楚該讓 session“ 存活”多久。為某個空閑的 session 等待太久會耗盡服務器的資源。然而假如 session 被過早地刪除,那么用戶就不得不一遍又一遍地重新開始,這是因為服務器已經刪除了所有的信息。尋找合適的超時間隔時間是很困難的。
提示:如果您正在使用 session 變量,請不要在其中存儲大量的數據。
Session 對象最大的優點是可在其中存儲變量,以供后續的網頁讀取,其應用范圍是很廣的。
下面的例子把 Donald Duck 賦值給名為 username 的 session 變量,并把 50 賦值給名為 age 的 session 變量:
Session( username )= Donald Duck Session( age )=50
一旦值被存入 session 變量,它就能被 ASP 應用程序中的任何頁面使用:
Welcome %Response.Write(Session( username ))%
上面這行程序返回的結果是: Welcome Donald Duck 。
也可以在 session 對象中保存用戶參數,然后通過訪問這些參數來決定向用戶返回什么頁面。
下面的例子規定,假如用戶使用低顯示器分辨率,則返回純文本版本的頁面:
%If Session( screenres )= low Then% This is the text version of the page %Else% This is the multimedia version of the page %End If%
contents 集合包含所有的 session 變量。可通過遍歷 contents 集合,來查看其中存儲的變量:
Session( username )= Donald Duck Session( age )=50dim iFor Each i in Session.Contents Response.Write(i br / )
結果:
username
如果需要了解 contents 集合中的項目數量,可使用 count 屬性:
dim idim jj=Session.Contents.CountResponse.Write( Session variables: j)For i=1 to j Response.Write(Session.Contents(i) br / )
結果:
Session variables: 2Donald Duck
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答
圖片精選