揭开ASP神秘面纱(5)

2016-01-29 19:32 4 1 收藏

揭开ASP神秘面纱(5),揭开ASP神秘面纱(5)

【 tulaoshi.com - ASP 】

       Session 对 象
  
  作者:米仙圣人
  
    我们可以使用 Session 对象存储特定的用户会话所需的信息。当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。
     通过向客户程序发送唯一的 Cookie 可以管理服务器上的 Session 对象。当用户第一次请求 ASP 应用程序中的某个页面时,ASP 要检查 HTTP 头信息,查看是否有在报文中有名为 ASPSESSIONID 的 Cookie 发送过来,如果有,则服务器会启动新的会话,并为该会话生成一个全局唯一的值,在把这个值作为新 ASPSESSIONID Cookie 的值发送给客户端,正是使用这种 Cookie,可以访问存储在服务器上的属于客户程序的信息。Session 对象最常见的作用就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。另外其还经常被用在鉴别客户身份的程序中。要注意的是,会话状态仅在支持 cookie 的浏览器中保留,如果客户关闭了 Cookie 选项,Session 也就不能发挥作用了。
  
  一、属性
  
  1、SessionID
     SessionID 属性返回用户的会话标识。在创建会话时,服务器会为每一个会话生成一个单独的标识。会话标识以长整形数据类型返回。在很多情况下 SessionID 可以用于 WEB 页面注册统计。
  
  2、TimeOut
    Timeout 属性以分钟为单位为该应用程序的 Session 对象指定超时时限。如果用户在该超时时限之内不刷新或请求网页,则该会话将终止。
  
  二、方法
     Session 对象仅有一个方法,就是 Abandon,Abandon 方法删除所有存储在 Session 对象中的对象并释放这些对象的源。如果您未明确地调用 Abandon 方法,一旦会话超时,服务器将删除这些对象。当服务器处理完当前页时,下面示例将释放会话状态。
    < % Session.Abandon %>
  
  
  三、事件
    Session 对象有两个事件可用于在 Session 对象启动和释放是运行过程。
    1、Session_OnStart 事件在服务器创建新会话时发生。服务器在执行请求的页之前先处理该脚本。Session_OnStart 事件是设置会话期变量的最佳时机,因为在访问任何页之前都会先设置它们。
    尽管在 Session_OnStart 事件包含 Redirect 或 End 方法调用的情况下 Session 对象仍会保持,然而服务器将停止处理 Global.asa 文件并触发 Session_OnStart 事件的文件中的脚本。
     为了确保用户在打开某个特定的 Web 页时始终启动一个会话,就可以在 Session_OnStart 事件中调用 Redirect 方法。当用户进入应用程序时,服务器将为用户创建一个会话并处理 Session_OnStart 事件脚本。您可以将脚本包含在事件中以便检查用户打开的页是不是启动页,如果不是,就指示用户调用Response.Redirect 方法启动网页。  
  
  2、Session_OnEnd 事件在会话被放弃或超时发生。关于使用 Session 对象需要注意的事项 Application 对象相近。
  
  会话可以通过以下三种方式启动 :
    1、一个新用户请求访问一个 URL,该 URL 标识了某个应用程序中的 .asp 文件,并且该应用程序的 Global.asa 文件包含 Session_OnStart 过程。
    2、用户在 Session 对象中存储了一个值。
    3、用户请求了一个应用程序的 .asp 文件,并且该应用程序的Global.asa 文件使用 < OBJECT> 标签创建带有会话作用域的对象的实例。
     如果用户在指定时间内没有请求或刷新应用程序中的任何页,会话将自动结束。这段时间的默认值是 20 分钟。可通过在 Internet 服务管理器中设置“应用程序选项”属性页中的“会话超时”属性改变应用程序的默认超时限制设置。依据您的 Web 应用程序的要求和服务器的内存空间来设置此值。例如,如果您希望浏览您的 Web 应用程序的用户在每一页仅停留几分钟,就应该缩短会话的默认超时值。过长的会话超时值将导致打开的会话过多而耗尽您的服务器的内存资源。对于一个特定的会话,如果您想设置一个小于默认超时值的超时值,可以设置 Session 对象的 Timeout 属性。例如,下面这段脚本将超时值设置为 10分钟。
    < % Session.Timeout = 10 %>
  
     当然你也可以设置一个大于默认设置的超时值,Session.Timeout 属性决定超时值。你还可以通过 Session 对象的 Abandon 方

来源:http://www.tulaoshi.com/n/20160129/1509614.html

延伸阅读
在过去的三年中,人们开发出了许多关于信息安全(Information Security)的新标准。 !-- frame contents -- !-- /frame contents -- 其中最为人们所认可的是Web Services安全性(Web Services Security,WSS)、安全性断言标记语言(Security Assertion Markup Language,SAML)和可扩展访问控制标记语言(Extensible Access Contr...
Clone基本知识储备 在Java里提到clone技术,就不能不提java.lang.Cloneable接口和含有clone方法的Object类。所有具有clone功能的类都有一个特性,那就是它直接或间接地实现了Cloneable接口。否则,我们在尝试调用clone()方法时,将会触发CloneNotSupportedException异常。下面我们通过对Object类的部分源码的分析,来发现和理解这一...
安利一下 双胞胎父母的育儿指南   家有双胞胎,父母们不要恐慌,只不过是需要做更多的计划而已。新双胞胎父母们缺乏经验,可以问自己的妈妈和爸爸对育儿的经验和建议,然后总结成一个指南。下面的小窍门可以帮助双胞胎父母们在最初的几个月更好得照顾宝宝。    1.利用网络线学习相关知识  &e...
让他退而求次       当处女座男生看中一辆车的时分,售车的人员奉告并没有他中意的那一款,你去通知处女座男性另一辆车,处女座男生立马就是“你在和我恶作剧某?”处女座不能承受随便对付的购物,甘愿多花时间去找那款中意的车,也不能退而求其次,唐塞进行一次不愉快的购物。 形成突发事件      上班遽...
从3ds max 6推出到7.0版本发布,随后其官方又连续发布了毛发和布料扩展包,该软件的更新速度差不多达到了一年一个版本的水平,在这个过程中3ds max的功能进一步强大,受到很多用户的欢迎。时至今日,与3ds max 7.0发布已有近一年的时间了,这不得不让大家又在思索max是否会推出更新的版本呢?现在本站就为大家带来一个好消息:与大家预料的...

经验教程

656

收藏

32
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部