階段變量(會話變量)session一、用戶的身份證—sessionID <%Response.write(session.sessionID)%> 1、其值以cookie的形式保存到客戶端,服務(wù)器以該值識別身份。 2、如果在同一asp頁上強(qiáng)制結(jié)束電話,該會話在同一頁仍有效。 <% response.write session.session.ID&”<br>” Session(“user”)=”我是session變量” Session.abandon response.write session(“user”)&”<br>” esponse.write session.session.ID %> 3、如果在一asp頁上強(qiáng)制結(jié)束電話,切換頁面后原通話自動失效。 上例如中的<%response.write session(“user”)&”<br>” esponse.write session.session.ID%>如果切換到另一頁,則<%response.write session(“user”)%>不會輸出“user”的值:我是session變量。 4、預(yù)處理指令enablesessionstate=false禁止asp應(yīng)用程序使用cookie。 %@language=”VBSscript” codepage=”936%” Enablesessionstate=false % 使用該指令后,該頁的相關(guān)sesion的操作無法進(jìn)行。 5、屏蔽cookie的操作:在IIS的虛擬目錄“應(yīng)用程序配置”中設(shè)置。 “網(wǎng)站”→“默認(rèn)網(wǎng)站”→“虛擬目錄名”右擊→“屬性”→“應(yīng)用程序設(shè)置:配置”→“選項”→取消“啟用會話狀況”復(fù)選框。 二、保持會話消息的有效期timeout。 單獨設(shè)置:Session.Timeout=70 單位是分鐘。 在IIS中更改默認(rèn)設(shè)置:與上面屏蔽cookie的路徑一樣,在最后的“選項”中更改默認(rèn)值。 三、設(shè)置會話的字符集CodePage和顯示格式LCID <%Session.CodePage=950 Session.LCID=2052 %> 950為中國漢字,2052為中國大陸的習(xí)慣顯示格式。 默認(rèn)狀態(tài)下,會話的字符集來源于<%@ language=““VBSscript” codepage=“936%”%>,亦可單獨設(shè)置會話的字符集,該設(shè)置當(dāng)然只影響會話。 默認(rèn)狀態(tài)下,session將遵循LCID指令設(shè)置的地區(qū)標(biāo)識符。 四、session對象的兩個集合: 1、Content集合:<%seession(“user”)=“會話內(nèi)容”%>通過腳本添加的。 2、Staticobjects集合:編入<object>標(biāo)簽中: <object runat=”server” scope=”Session” id=”aobject” progid=”msmc.info”></object> <object runat=”server” scope=”Session” id=”bobject” progid=”msmc.info”></object> <% aobject.user=”aobjectname” bbject.id=0001 bobject.user=”aobjectname” bbject.id=0002 for Each element in session.staticobjects response.write session.staticobjects(element).user next%> 五、三種屬性:item /key/ count 1、返還值item:<%response.write session.contents.item(1)%>返還第一頁session的值; <%response.write session.contents.item(“id”)%>返還第一頁id的值。 由于cintents是默認(rèn)集合,item是默認(rèn)屬性。所以: <%response.write session.contents.item(“id”)%>=<%response.write session.Contents(“id”)%>=<%response.write session(“id”)%> 2、返還名稱key:<%response.write session.contents.key(“id”)%>返還id的名稱 <%response.write session.contents.key(“2”)%>返還第2個session的名稱 3、返還總數(shù)count <%response.write session.contents.count%>返還content集合的個數(shù)。 六、兩種刪除方法:remove和removeall 1、<%session.contents.remove(“id”)%>刪除session中的id。 2、<%session.contents.removeall%>刪除session中的所有變量。 七、session變量的保存與輸出: <%session("name")=request.form("name") session("word")=request.form("word")%> 可在本頁或另一頁asp頁中輸出原保存的信息: <%=session("name")%> <%=session("word")%> 八、應(yīng)用實例3個: 1、Application計數(shù)器(刷新也計數(shù)) <% dim counter counter=0 application.lock application("counter")=application("counter") 1 application.unlock %> <body>歡迎光臨!您是本站的第<%=application("counter")%>位訪問者</body> 2、session計數(shù)器(刷新不計數(shù)) <% if isempty(session("connected")) then application.lock() application("mycounter")=application("mycounter") 1 application.unlock() end if session("connected")=true %> <body>您是本站的第<%=application("mycounter")%>位訪問者! 您的SessionID:<%=session.SessionID%></body> 注:isempty(session("connected"))與session("connected")=false是等價的。session("connected")=false表示session的值是空的,未初始化;session("connected")=true表示給session開始賦值,已經(jīng)初始化。 isempty(session("connected"))是判斷是否初始化函數(shù),單獨使用isempty(session("connected"))表示isempty(session("connected"))=true,true是isempty(session("connected"))的默認(rèn)值。 3、顯示在線人數(shù): (1)、先編制專用配置文件Global.asa,并將其放在根目錄(與主文件并列放在一個目錄下): <script language="VBScript" runat="Server"> Sub Application_OnStart Session.Timeout = 20 Application.Lock Application("WhosOn") = 0 Application.UnLock End Sub Sub Session_OnStart Application.Lock Application("WhosOn") = Application("WhosOn") 1 Application.UnLock End Sub Sub Session_OnEnd Application.Lock Application("WhosOn") = Application("WhosOn") - 1 Application.UnLock End Sub </script> (2)、再編制主文件:index.asp <body> 目前網(wǎng)站上有<%=application("whoson")%>位用戶在線! </body> 本文標(biāo)題:階段變量(會話變量)session 出自 DW愛好者 文章地址:http://www./Item/Show.asp?m=1&d=331 若您對本文的內(nèi)容有異議,請到本站的技術(shù)論壇進(jìn)行交流。 |
|