明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

Session對(duì)象

[摘要]Session其實(shí)指的就是訪問者從到達(dá)某個(gè)特定主頁到離開為止的那段時(shí)間。每一訪問者都會(huì)單獨(dú)獲得一個(gè)Session。在Web應(yīng)用程序中,當(dāng)一個(gè)用戶訪問該應(yīng)用時(shí),Session類型的變量可以供這個(gè)用戶在...

Session其實(shí)指的就是訪問者從到達(dá)某個(gè)特定主頁到離開為止的那段時(shí)間。每一訪問者都會(huì)單獨(dú)獲得一個(gè)Session。在Web應(yīng)用程序中,當(dāng)一個(gè)用戶訪問該應(yīng)用時(shí),Session類型的變量可以供這個(gè)用戶在該Web應(yīng)用的所有頁面中共享數(shù)據(jù);如果另一個(gè)用戶也同時(shí)訪問該Web應(yīng)用,他也擁有自己的Session變量,但兩個(gè)用戶之間無法通過Session變量共享信息,而Application類型的變更則可以實(shí)現(xiàn)站點(diǎn)多個(gè)用戶之間在所有頁面中共享信息。



1、SessionID屬性
該屬性返回當(dāng)前會(huì)話的唯一標(biāo)志,為每一個(gè)Session分配不同的編號(hào)。
我曾在開發(fā)過程中就遇到對(duì)用戶的控制問題。它要實(shí)現(xiàn)的功能就是,針對(duì)某個(gè)網(wǎng)站的一個(gè)模塊,當(dāng)一個(gè)會(huì)員登錄后正在看此模塊時(shí),另一個(gè)人用同樣的會(huì)員名登錄,就不能瀏覽這個(gè)模塊。也就是說一個(gè)會(huì)員名同時(shí)只能一個(gè)人瀏覽此模塊。我通過用會(huì)員名(假設(shè)為UserID,唯一)和SessionID來實(shí)現(xiàn)了控制。當(dāng)會(huì)員登錄時(shí),給這個(gè)會(huì)員一個(gè)Session記錄登錄狀態(tài)如:Session("Status")="Logged",同時(shí)把這個(gè)會(huì)員的Session.SessionID寫入數(shù)據(jù)庫。當(dāng)他要瀏覽此模塊時(shí),先判斷其是否登錄,若已經(jīng)登錄再判斷它的SessionID是否與數(shù)據(jù)庫記錄的相同,如果不同則不能訪問。這樣,當(dāng)另一個(gè)用戶用相同的會(huì)員名登錄時(shí),那么數(shù)據(jù)庫中記錄的就是新的SessionID,前者訪問此模塊時(shí)就不能通過檢查。這就實(shí)現(xiàn)了一個(gè)會(huì)員名同時(shí)只能一個(gè)人瀏覽某個(gè)模塊。這個(gè)功能在一些收費(fèi)網(wǎng)站有很有特別作用,它防止了一個(gè)會(huì)員名給多個(gè)人瀏覽的問題,為公司保障了利益。



2、TimeOut屬性
該屬性用來定義用戶Session對(duì)象的時(shí)限。如果用戶在規(guī)定的時(shí)間內(nèi)沒有刷新網(wǎng)頁,則Session對(duì)象就會(huì)終止。一般默認(rèn)為20分鐘。



3、Abandon方法
該方法是Session對(duì)象的唯一方法,可以清除Session對(duì)象,用來消除用戶的Session對(duì)象并釋放其所占的資源。如: <% Session.Abandon %> 
4、Session_OnStart和Session_OnEnd事件
和Application一樣,當(dāng)對(duì)象的例程每一次啟動(dòng)時(shí)觸發(fā)Session_OnStart事件,然后運(yùn)行Session_Onstart事件的處理過程。也就是說,當(dāng)服務(wù)器接收到應(yīng)用程序中的URL的HTTP請(qǐng)求時(shí),觸發(fā)此事件,并建立一個(gè)Session對(duì)象。同理,這個(gè)事件也必須定在Global.asa文件中。
當(dāng)調(diào)用Session.Abandon方法時(shí)或者在TimeOut的時(shí)間內(nèi)沒有刷新,這會(huì)觸發(fā)Session_OnEnd事件,然后執(zhí)行里面的腳本。Session變量與特定的用戶相聯(lián)系,針對(duì)某一個(gè)用戶賦值的Session變量是和其他用戶的Session變量完全獨(dú)立的,不會(huì)存在相互影響。
Session應(yīng)用一列:
與Application一樣,一個(gè)被定義為Session類型的數(shù)組只能將整個(gè)數(shù)組作為一個(gè)對(duì)象,用戶不能直接改變Session數(shù)組中某個(gè)元素的值。為了創(chuàng)建一個(gè)Session數(shù)組,需先定義一個(gè)普通的數(shù)組,并對(duì)它的每一個(gè)元素賦初值,最后把它定義為一個(gè)Session數(shù)組。如:
<%
dim array()
array=array("jeff","zhu","male")
Session("info")=array
Response.write Session("info")(0) &"-"
Response.write Session("info")(1) &"-"
Response.write Session("info")(2) &"<br>"
%>
<hr>
<%
array(0)="jun"
array(1)="li"
array(2)="female"
Session("info")=array
Response.write Session("info")(0) & "-"
Response.write Session("info")(1) & "-"
Response.write Session("info")(2) & "<br>"
%> 
以上這段程序輸出結(jié)果是:
           jeff-zhu-male
           _____________
           jun-li-female 



標(biāo)簽:Session對(duì)象