第五章Session和Application对象----学习笔记
利用session对象记载单个用户信息
什么是session?
Session信息保存在服务器端的一块内存区域中,当每一个用户开始访问时(也叫开始一个会话),服务器端就会给该用户建立一个session对象,在服务器端内存中给他分配一块区域用来储存用户信息,当该用户结束访问(也叫结束一个会话),服务器就会清除这个Session对象,并释放相应的内存区域
Session的属性,方法和事件
Session对象的主要数据集合
Contents获取脚本中添加的Session变量集合
Session对象的主要属性
SessionID返回会话标识(ID),即储存用户的sessionID
TimeOut定义session有效期,单位为分钟,默认为20分钟
Session对象只提供一个方法
Abandon清除session对象
Session对象的两个事件
Session_onStart当开始一个会话,触发该事件
Session_onEnd当结束一个会话,触发该事件
此两个事件用在Global.asp文件中
利用session保存信息
Session保存变量或字符串等信息
Session(“Session名字”)=变量或字符串信息
Session(“strName”)=”桌航”
Session读取信息
StrName=session(“strName”)
strB=session(“strA”)
利用session数组数组信息
Session把传入的数组当成一个整体看待,只能把一个数组存入取出
保存session数组
Session.(“session数组”)=数组变量
<%
Dim strName(1) rem声明一个长度为2的数组
StrName(0)=”白云”
StrName(1)=”海天”
Session(“strName”)=strName
Rem将数组赋值给session变量
Response.write”该程序仅用来存入session数组”
%>
获取session信息的语法:
A=Session(“session数组”)
<%
Dim strNames”注意:这里声明一个普通变量”
StrNames=session(“strNames”)rem读取session变量
Response.write strName(0)&
“您好,欢迎您”
Response.write strName(1)&
“您好,欢迎您”
%>
Contents数据集合
利用session对象的Contents数据集合存储session信息
Session.contents(“strName”)=”卓航”
rem保存session信息
strName=session.contents(“strName”)
rem读取session信息
contents数据集合的属性和方法
count属性:返回数据集合中变量的数目
remove方法:删除数据集合中一个session变量
removeAll方法:删除数据集合中全部session变量
timeout属性
修改session对象的有效期,默认为20分钟
Session.Timeout=整数(分钟)
<%
Session.Timeout=30 rem设置session对象的有效期时长为30分钟
%>
Abandon方法
Session对象到后期会自动清除,但到前期可以用Abandon方法强制清除
Session.abandon
<%session.Abandon%>
Application对象的作用:记载所有用户的共享信息
Application的有效期:从应用程序启动后第一个用户开始访问到所有用户都结束访问,它一直有效
Application对象的主要集合:
Contents:获取脚本中添加的application变量集合
Application对象的方法:
Lock:锁定application对象,不让其他用户修改
Application中的变量值
Unlock:解除锁定的application对象
Application对象的事件:
Application_OnStart当应用程序的第一用户访问时,触发该事件
请执行语句
Application_onend当应用程序关闭时触发该事件,请执行其中的语句
Application对象存储信息
Application(variable name)=变量或字符信息
保存application信息需先锁定,然后再解除锁定
Application.Lock ‘锁定,以防止其他用户更改
Application(“school”)=”北京大学”
Application(“strA”)=strA
Application.Unlock ‘解除锁定,让别的用户写
读取application信息就不用再锁定le;
strA=application(“strA”)
rem读取application信息
计数器案例:
<%
Application.lock em锁定用户不让其他用户修改application的变量
Application(“intAll”)=application(“intAll”)+1
Rem给application变量赋值
Application.unlock rem解除锁定
Dim intVisit
intVisit=application(“intvisit”)
rem 读取application信息
response.write”<p>您是第”&intVisit&”位访客。”
%>
利用application存储数组信息
把一个数组当成整体存入读取,存读时要使用Lock和Unlock
Application(“application数组”)=数组变量
读取application信息
A=application(”session数组”)
存储
<%
Dim strName(1) ‘声明一个长度为2的数组
StrName(0)=”白云”
StrName(1)=”海霞”
Application.Lock rem锁定
Application(“strNames”)=strNames
Rem 给application变量赋值
Application.unlock rem解除锁定
%>
读取
<%
Dim strName rem声明一个普通变量
StrNames=application(“strNames”)
Rem读取application变量
Response.write strNames(0)&”您好,欢迎您<br>”
Response.write strNames(1)&”您好,欢迎您<br>”
%>
Contents数据集合
Application对象的Contents集合和Session对象的集合类似
<%Application.Lock
Application.Contents(“strSchool”)=”北京大学”
Application.Unlock
Response.Write Application.Contents(“strSchool”)
Rem输出application信息
Response.write application.Contents.Count
Rem输出application变量数目
Application.lock
Application.Content.Remove(“strSchool”)
Rem删除指定名称的application变量
Application.Contents.Remove(0)
Rem删除指定索引的application变量
Application.Contents.RemoveAll(1)
Rem删除所有Application变量
Application.UnLock
%>
Global.asp文件
存放session对象和application对象事件的程序。当session或appl被第一次调用或结束是,运行Clobal.asp文件中的对象程序
每一个应用程序可以有一个Global.asp文件,它必须被放在应用程序的根目录中,且文件的名字必须叫做Global.asp
<script language=”Vbscript” runat=”server”>
Sub application_OnStart
‘当应用程序启动后第一个用户访问时触发该事件,并执行其中的语句
End sub
Sub Application_OnEnd
‘当应用程序关闭时触发该事件,并执行其中语句
End sub
Sub Session_OnStart
‘当开始一个会话时(用户开始访问时)触发该事件,并执行其中的语句
End sub
Sub session_OnEnd
‘当结束一个会话时(用户结束访问时)触发该事件,并执行其中的语句
End sub
</script>
Global案例
<script language=”Vbscript” runat=”server”>
Sub application_OnStart
Application.Lock
Application(“intAll”)=0
Rem给访问总人数赋初值
Application(“intOnline”)=0
Rem给在线人数赋初值
Application.Unlock
End Sub
Sub session_Onstart
Application.lock
Application.lock
Application(“intAll”)=Application(“intAll”)+1
Rem令在线总人数加1
Application(“intOnline”)=application(“intOnline”)+1
Rem令在线人数加1
Application.Unlock
End sub
Sub session_OnEnd
Application.Lock
Application(“intOnline”)=application(“intOnline”)-1
Rem令在线人数减一
Application.Unlock
End sub
</script>
<p>在线人数:<%=application(“intonline”)%>
<p>访问总人数:<%=application(“intAll”)%>