您好,登錄后才能下訂單哦!
這篇文章主要介紹ASP中session的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Session 對象用于存儲用戶的信息。存儲于 session 對象中的變量持有單一用戶的信息,并且對于一個應用程序中的所有頁面都是可用的。
Session 對象
當您操作某個應用程序時,您打開它,做些改變,然后將它關閉。這很像一次對話(Session)。計算機知道您是誰。它清楚您在何時打開和關閉應用程序。但是在因特網上有一個問題:由于 HTTP 地址無法存留狀態,web 服務器并不知道您是誰以及您做了什么。
ASP 通過為每位用戶創建一個唯一的 cookie 的方式解決了這個問題。cookie 被傳送至客戶端,它含有可識別用戶的信息。這種接口被稱作 Session 對象。
Session 對象用于存儲關于用戶的信息,或者為一個用戶的 session 更改設置。存儲于 session 對象中的變量存有單一用戶的信息,并且對于應用程序中的所有頁面都是可用的。存儲于 session 對象中的信息通常是 name、id 以及參數。服務器會為每個新的用戶創建一個新的 Session,并在 session 到期時撤銷掉這個 Session 對象。
Session 何時開始?
Session 開始于:
*當某個新用戶請求了一個 ASP 文件,并且 Global.asa 文件引用了 Session_OnStart 子程序時;
*當某個值存儲在 Session 變量中時;
*當某個用戶請求了一個 ASP 文件,并且 Global.asa 使用 <object> 標簽通過 session 的 scope 來例示某個對象時;
Session 何時結束?
假如用戶沒有在規定的時間內在應用程序中請求或者刷新頁面,session 就會結束。默認值為 20 分鐘。
如果您希望將超時的時間間隔設置得更長或更短,可以設置 Timeout 屬性。
下面的例子設置了 5 分鐘的超時時間間隔:
<% Session.Timeout=5 %>
要立即結束 session,可使用 Abandon 方法:
<% Session.Abandon %>
注意:使用 session 時主要的問題是它們該在何時結束。我們不會知道用戶最近的請求是否是最后的請求。因此我們不清楚該讓 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%>
移除 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 集合中的項目數量,可使用 count 屬性:
<% dim i dim j j=Session.Contents.CountResponse.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 %>
以上是“ASP中session的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。