嘉人
收藏本版 |订阅 | 回收站
搜索
嘉人美妆精英学院 达人馆 时尚搭配 ASP编程入门进阶(八):Session对象
查看: 286|回复: 0
go

[原创] ASP编程入门进阶(八):Session对象 [!copy_link!]

跳转到指定楼层
1#
发表于 2012-9-22 22:54:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  
  ASP对象中除了用于发送(Response)、接受和处理数据(requeest)、服务器访问(Server)的对象外,还有一些十分适用的标记Active Server利用程序(Application)和单个用户信息(Session)的对象。
  Session对象  该对象在ASP应用中占相称大的比例。因为网页是一种无状况程序,无奈得悉用户阅读状态。在ASP中,通过(兄弟啊我们是同命相连啊,我去年一年的工资两万多全扔里面了,开个月薪不到三天就没了,你这回赢一百下回叫你输三百,老想往回赢点:信我的在别玩了:我现在都戒了:你想想你辛苦挣的还有你的父母钱就别玩了)Session对象来记载使用者私有的数据变量,以作为用户再次对服务器提出请求时做确认,用户在程序的Web页面之间跳转时,存在Session对象中的变量将不会消散。
  这些真的是很重要的功能,尤其是有会员的系统必需要用到的。像是会员的登入账号、时间、状态以及许很多多该记录的实时数据(如购物系统记录使用者的购物篮内的商品),这些信息属于各使用者私家所需要,通常开发者都是使用 Session 记录处理。
  在ASP中的Session是使用Cookies形成,服务器将所有的Session内记录的数据,以Cookies的方法传至用户的浏览器。通常个别浏览器会将这些Cookies存起来,每当使用者点选连结,再次与服务器做联机时,浏览器就会把这些Cookies传回Server供做处置:这等于Session的运作原理。由此可知会话状态Session仅在支撑cookie的浏览器中保留,如果客户封闭了Cookie 选项Session也就不能施展作用了。
  一、Session.SessionID  SessionID 属性返回用户的会话标识。在创立会话时,服务器会为每一个会话生成一个独自的标识,会话标识以长整形数据类型返回。在良多情况下 SessionID 可以用于 WEB 页面注册统计。
  利用该属性可以解决一种对用户的节制问题。该问题的重要功效就是,针对某个网站的一个模块,当一个会员登录后正在看此模块时,另一个人用同样的会员名登录,就不能浏览这个模块:也就是说一个会员名同时只能一个人浏览此模块。
  通过用会员名(假设为UserID,独一)和SessionID来实现了把持。当会员登录时,给这个会员一个Session记载登录状态如:Session("Status")="Logged",同时把这个会员的Session.SessionID写入数据库。当他要浏览此模块时,先判断其是否登录,若已经登录再判定它的SessionID是否与数据库记录的雷同,如果不同则不能拜访。
  这样,当另一个用户用相同的会员名登录时,那么数据库中记录的就是新的SessionID,前者访问此模块时就不能通过检讨。这就实现了一个会员名同时只能一个人浏览某个模块。这个功能在一些收费网站有很有特殊作用,它避免了一个会员名给多个人浏览的问题,为公司保障了好处。
  %=Session.SessionId%
  是单独生成的唯一ID标识,可刷新调试。
  二、Session.TimeOut  该属性设置的Session的最大距离时间。距离时间是指客户器端从最近一次向Web服务器提出要求,到下一次向Web服务器提出要求的时间。可以懂得为:如果用户在该超时时限之内不刷新或请求网页,则该会话将终止。Timeout 属性是以分钟为单位,为该运用程序的Session对象指定超时时限的,普通默以为20分钟。这在网吧等公共场所,登录个人信息页而忘却关闭窗口时,显得比较主要(至少可以把时间设短些)。
  %=Session.TimeOut=10%
  以上SessionId、TimeOut属于Session对象的两个属性,下面看该对象的一个方法Abandon
  三、Session.Abandon  该办法是Session对象的唯一方法,可以清除Session对象,用来打消用户的Session对象并开释其所占的资源。当然你如果没有明白调用Abandon方法,一旦会话超时,服务器也会将删除这些对象并释放资源。  下面就用两个页的程序来意识Session对象以及Abandon方法的应用。
  1.login.asp
  %'是提取url中变量loginout的值是否为true,若为真,就履行Session.Abandon()。if Request.QueryString("loginout")="true" then Session.Abandon()end if
  '只有在当点击了submit按钮的前提下,再来判断提取的货色都不为空,则建立Session对象。submitname=request.form("submit1")if submitname="submit" then if Request.Form("name")"" and Request.Form("pwd")"" then Session("name")=Request.Form("name") Session("pw")=Request.Form("pwd") end ifend if%%'如果Session("name")不为空,则显示Session("name")的值,并且做一个到info.asp的链接。if Session("name")"" thenresponse.write("你的name值是:"Session("name"))response.write("bra href='info.asp'显示你的资料/a")else
  '否则,即Session("name")为空不存在,则显示表单用以输入树立Session的平台。%form action="login.asp" method="post"姓名:input type="text" name="name"br密码:input type="password" name="pwd"brinput type="submit" value="submit" name="submit1"/form!--同样做了一个到info.asp的链接。--a href="info.asp"显示你的材料/a%end if%
  留神Session("name")为空和不为空的时候,都做了一个到info.asp的链接,详细调试成果如何,再来看info.asp的内容。
  2.info.asp
  %'如果session对象值为空则跳转到login.aspif session("name")="" thenResponse.Redirect("login.asp")'否则就显示个人信息elseResponse.Write("你的姓名:"session("name")"br")Response.Write("你的密码:"session("pw")"br")end if%a href="login.asp"返回/aa href="login.asp?loginout=true"退出/a
  可以看出来,info.asp页面内容的显示实在是需要前提的。那就是必须得有一个session值的存在,这样才可以显示具体的信息。这在登录系统中应用得比较多。
  你能够把login.asp设想成一个登录窗口,当然我的这个比较简略(只有输入用名和密码就出产Session了),实际情况是:断定输入的用名和密码是否和数据库中的用名和密码吻合,假如准确吻合才天生Session的。然info.asp页面的作用恰好可以做为一权限页面,由于进入该页须要Session,而Session的产生是确保用名密码正确的。
  所以当一开端呈现表单窗口时,你点login.asp链接是打不开的,只有当提交了表单生成了Session后才能进入。这恰是登录体系的精华所在,Do You Know?:)
  四、Session_OnStart  Session_OnStart属于Session对象的一类事件。它是在服务器创建新会话时产生的。服务器在执行请求的页之前先处理该脚本。Session_OnStart 事件是设置会话期变量的最佳机会,因为在访问任何页之前都会先设置它们。
  对象的例程每一次启动时触发Session_OnStart事件,然后运行Session_Onstart事件的处理进程。也就是说,当服务器吸收到应用程序中的URL的HTTP请求时,触发此事件,并建破一个Session对象。
  当然说到Session_OnStart事件就不能不谈到一个文件Global.asa(P.S:我盘算把该文件和Chat程序放在一起说的,所以当初先不作过多说明)  具体用法先流露,写在Global.asa文件内部
  SCRIPT RUNAT=Server Language=VBScript.......Sub Session_OnStart.......End Sub......./SCRIPT
  五、Session_OnEnd  一看也就晓得是Session对象的另一类事件了。当调用Session.Abandon方式时或者在TimeOut的时光内不刷新,这会触发Session_OnEnd事件,而后执行里面的脚本。同样详细用法在后面将写的Global.asa文件专题中具体先容到,简单语法如下:
  SCRIPT RUNAT=Server Language=VBScript.......Sub Session_OnEnd.......End Sub......./SCRIPT
  以上就是对Session对象的系统学习。

跟请登录www.58jfw.com
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 鲜花鲜花 鸡蛋鸡蛋
‹ 上一主题|下一主题

Archiver|嘉人网

GMT+8, 2025-8-19 02:37 , Processed in 0.025563 second(s), 14 queries .

Powered by Discuz! X3.2

© 2001-2010 Comsenz Inc.