加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

ASP中的Session对象

发布时间:2023-04-30 13:21:00 所属栏目:Asp教程 来源:
导读:Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。每位访问者都会单独获得一个Session。在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数
Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。每位访问者都会单独获得一个Session。在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数据;如果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,但两个用户之间无法通过Session变量共享信息,而Application类型的变更则可以实现站点多个用户之间在所有页面中共享信息。
 
1.SessionID属性
 
该属性返回当前会话的惟一标志,为每一个Session分配不同的编号。
 
我们使用这个属性可以实现某种控制,如对用户的控制问题。具体要是:针对某个网站的一个模块,当一个会员登录后正在看此模块时,另一个人用同样的会员名登录,就不能浏览这个模块。也就是说,一个会员名同时只能允许一个人浏览此模块。通过用会员名(假设为UserID,惟一)和SessionID来实现了控制。当会员登录时,给这个会员一个Session记录登录状态,如:Session("Status")="Logged",同时把这个会员的Session.SessionID写入数据库。当他要浏览此模块时,先判断其是否登录,若已经登录再判断它的SessionID是否与数据库记录的相同,如果不同则不能访问。这样,当另一个用户用相同的会员名登录时,那么数据库中记录的就是新的SessionID,前者访问此模块时就不能通过检查。这就实现了一个会员名同时只能一个人浏览某个模块。这个功能在一些收费网站有特殊作用,它防止了一个会员名给多个人浏览的问题,为公司保障了利益。
 
2.TimeOut属性
 
该属性用来定义用户Session对象的时限。如果用户在规定的时间内没有刷新网页,则Session对象就会终止,一般默认为20min。
 
3.Abandon方法
 
该方法是Session对象的惟一方法,可以清除Session对象,用来消除用户的Session对象并释放其所占的资源,如:<% Session.Abandon %>。
 
4.Session_OnStart和Session_OnEnd事件
 
和Application一样,当对象的例程每一次启动时触发Session_OnStart事件,然后运行Session_Onstart事件的处理过程。也就是说,当服务器接收到应用程序中的URL的HTTP请求时,触发此事件,并建立一个Session对象。同理,这个事件也必须定义在Global.asp文 件中。
 
当调用Session.Abandon方法时或者在TimeOut的时间内没有刷新,即会触发Session _OnEnd事件,然后执行其中的脚本。Session变量与特定的用户相联系,针对某一个用户赋值的Session变量是和其他用户的Session变量完全独立的,不会存在相互影响。
 
5.Session应用实例
 
利用Session对象的OnStart和OnEnd可以记录访问者登录Web站点的开始时间,然 后可以得到访问者离开Web站点的时间,从而可以得到访问者在站点上的停留时间。其代码如下:
 
<%
 
              Sub session_Onstart
 
              session("startime")=NOW
 
              logonfile=sever.MapPath("logon.txt")
 
              session("logonfile")= logonfile
 
              end Sub
 
              Sub session_Onend
 
              Set myobject.Create("scripting.FileSystemObject")
 
              Logonfile= session("logonfile")
 
              Set myTS=MyObj.OpenTextfile(logonfile,3)
 
              MyTS.writeline"登录时间:"&session("startime")
 
              MyTS.writeline"离开时间:"&NOW
 
              MyTS.writeline" "
 
              MyTS.close
 
              end Sub
 
         %>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章