ASP Session 對象

asp session 對象

session 對象用于存儲關于用戶會話(session)的信息,或者更改用戶會話(session)的設置。

session 對象

當您在計算機上操作某個應用程序時,您打開它,做些更改,然后關閉它。這很像一次對話(session)。計算機知道您是誰。它清楚您在何時打開和關閉應用程序。然而,在因特網(wǎng)上問題出現(xiàn)了:由于 http 地址無法保持狀態(tài),web 服務器并不知道您是誰以及您做了什么。

asp 通過為每個用戶創(chuàng)建一個唯一的 cookie 來解決這個問題。cookie 被傳送至用戶的計算機上,它含有可識別用戶的信息。這種接口被稱作 session 對象。

session 對象用于存儲關于用戶會話(session)的信息,或者更改用戶會話(session)的設置。

存儲于 session 對象中的變量存儲單一用戶的信息,并且對于應用程序中的所有頁面都是可用的。存儲于 session 變量中的公共信息通常是 name、id 和參數(shù)。服務器會為每個新的用戶創(chuàng)建一個新的 session,并在 session 失效時撤銷掉這個 session 對象。

session 何時開始?

session 開始于:

  • 某個新用戶請求了一個 asp 文件,并且 global.asa 文件引用了 session_onstart 子程序
  • 某個值存儲在 session 變量中
  • 某個用戶請求了一個 asp 文件,并且 global.asa 使用 <object> 標簽通過 session 的 scope 來實例化某個對象

session 何時結束?

如果用戶沒有在規(guī)定的時間內(nèi)在應用程序中請求或者刷新頁面,session 就會結束。默認值為 20 分鐘。

如果您想要將超時的時間間隔設置為比默認值更短或更長,可以使用 timeout 屬性。

下面的實例設置了一個 5 分鐘的超時時間間隔:

<%
session.timeout=5
%>

要立即結束 session,請使用 abandon 方法:

<%
session.abandon
%>

注釋:使用 session 時主要的問題是它們該在何時結束。我們不會知道用戶最近的請求是否是最后的請求。因此我們不清楚該讓 session "存活"多久。為某個空閑的 session 等待太久會耗盡服務器的資源。然而如果 session 被過早地刪除,用戶就不得不一遍又一遍地重新開始,這是因為服務器已經(jīng)刪除了所有的信息。尋找合適的超時間隔時間是很困難的!

tip提示:在 session 變量中僅存儲少量的數(shù)據(jù)!

存儲和取回 session 變量

session 對象最大的優(yōu)點是可在其中存儲變量,以供后續(xù)的網(wǎng)頁讀取,其應用范圍是很廣的。

下面的實例把 "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 對象中存儲用戶參數(shù),然后通過訪問這些參數(shù)來決定向用戶返回什么頁面。

下面的實例規(guī)定,假如用戶使用低顯示器分辨率,則返回純文本版本的頁面:

<%if session("screenres")="low" then%>
this is the text version of the page
<%else%>
this is the multimedia version of the page
<%end if%>

移除 session 變量

contents 集合包含所有的 session 變量。

可通過 remove 方法來移除 session 變量。

在下面的實例中,如果 session 變量 "age" 的值小于 18,則移除 session 變量 "sale":

<%
if session.contents("age")<18 then
session.contents.remove("sale")
end if
%>

如需移除 session 中的所有變量,請使用 removeall 方法:

<%
session.contents.removeall()
%>

遍歷 contents 集合

contents 集合包含所有的 session 變量。您可以通過遍歷 contents 集合,來查看其中存儲的變量:

<%
session("username")="donald duck"
session("age")=50

dim i
for each i in session.contents
response.write(i & "<br>")
next
%>

結果:

username
age

如果您不知道 contents 集合中的項目數(shù)量,您可以使用 count 屬性:

<%
dim i
dim j
j=session.contents.count
response.write("session variables: " & j)
for i=1 to j
response.write(session.contents(i) & "<br>")
next
%>

結果:

session variables: 2
donald duck
50

遍歷 staticobjects 集合

您可以通過遍歷 staticobjects 集合,來查看存儲在 session 對象中的所有對象的值:

<%
dim i
for each i in session.staticobjects
response.write(i & "<br>")
next
%>

相關文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频