• 上海高端医疗设备再度叩开日本市场_剧毒化学品名录 2019-06-21
  • 壮丽七十年 奋斗新时代·京沪高铁:中国高铁领跑世界_囄婚 2019-06-21
  • 福利院里的童年:陪伴是最好的礼物_蔬东坡 2019-06-21
  • 组图:真人版《狮子王》发布角色海报 辛巴彭彭“证件照”曝光_好看的重生小说 2019-06-21
  • 京沪“瘦身”、多个“新一线”将破千万,人口流动新动向透露城市发展哪些信号?_肛裂图片 2019-06-21
  • 2018南非旅游局旅游推介会亮相 尽展南非优质旅行目的地风采_青岛中能足球俱乐部 2019-06-20
  • “红色寻访队”还原英雄故事_宣化上人预言 2019-06-20
  • 能做可口饭菜的孩子:鸿鹄安知燕雀之志_邂逅筝心txt 2019-06-20
  • “奶粉配方注册制”微调,只为更好保护消费者权益_chuangguandong 2019-06-20
  • 2019数博会即将开幕 5大亮点抢先看_中国盗墓传奇 2019-06-20
  • 西宁市城西区探索建立“1113N”实体化组织构架_君王2电脑版 2019-06-20
  • 上班看海量黄色小说的官员,你还能做啥? _宠物小精灵之面瘫囧神 2019-06-20
  • 长篇纪实文学《勇闯法兰西》作品研讨会在成都举行_阿其那 2019-06-19
  • 生存RTS《不屈者柯南》正式发售 跟随蛮王热血厮杀_兵鹰 2019-06-19
  • 人民论坛:中国经济发展为世界作出巨大贡献_金童卡修漫画 2019-06-19
  • 包晓琳 - 博览 - 正文

    ASP编程中Session对象失效的客户端解决方法

    2019-04-09 20:52IT时代网

      Session对象有一个十分重要的属性:Timeout,它用于设置在会话资源被释放前,会话对象所能保持非活动状态的时间(默认值为20分钟)。当Timeout属性设置的时间值耗尽后,会话资源将被释放。通过Timeout属性破坏Session对象,避免了Session对象在服务器中无限制地产生,?;ち朔衿髯试?。但是,在实际网络开发中,常常遇到由于Session对象失效,用户状态信息丢失而导致应用流程无法正常完成的问题。

      虽然利用Timeout属性释放资源的策略是出于?;し衿鞯哪康?,但是Session对象不可预知的失效性,却成为开发应用程序的一个弊病。因而在实际应用程序的开发中,必须解决Session对象失效的问题。

      传统的解决方法

      现有的解决方法都是采用服务器端方法解决Session对象失效问题。典型的处理方法分为两大类:失效前的处理和失效后的处理。

      失效前的处理是指在Session对象尚未失效之前,对变量进行转存等处理,做到防患于未然。典型的解决方法是在应用程序中设定一个定时器,在Session对象失效前5分钟触发定时器,然后重新设置Session对象的各个变量和对象。由于必须在服务器端实时维护该定时器,并且必须保证该段程序在整个会话过程中处于激活状态,所以采用这种方法增加了服务器的额外负载。

      失效后的处理是指在Session对象失效后,立即提示用户进行处理。典型的解决方法是在Session对象失效后,在服务器端保存断点,并提示用户重新登录,继续完成工作。这种方法实现简单,但是往往因为断点的不可完全自动恢复性,以及重新登录过程的复杂性,而受到最终用户的抱怨和指责。

      针对以上两类解决方案的缺陷,笔者在编程实践中结合Cookie对象的特性,采用Session对象与Cookie对象在客户端联合存取会话级变量的方法,既避免了对服务器资源的额外需求,又解决了断点不可自动恢复的问题,而且还免去了重新登录的麻烦。

      新的解决方法

      Cookie对象是用来存储有关当前用户数据的小信息包,它可以在浏览器和Web服务器之间传递。在Web应用中,Cookie提供了一种用于跟踪、记录每个用户位置的机制。Cookie最常见的用处之一,就是保存一个Web应用中最后一次被访问的网络页面的时间以及日期或被访问的网址。

      通常,Cookie对象在客户端Windows系统目录下Cookies子目录中以文件形式存储。存储在Cookie对象中的信息数据能够被保存较长时间,所以,可以将会话级变量备份在Cookie对象中,在Session对象失效后,通过检索并利用Cookie对象中的信息来自动恢复断点。

      Cookie对象具有如下几个属性:

      ●Expires:设定Cookie对象到期的日期;

      ●Domain:将Cookie对象的传送确定为仅由Domain属性确定的成员;

      ●Path:确定Cookie对象传送路径;

      ●Secure:明确Cookie对象是否安全;

      ●HasKeys:返回Cookie对象是否包含多值。

      如果没有显式定义Cookie对象的Expires属性,Cookie对象将在用户会话期结束时到期。

      ASP中通过Request集合和Response集合读写对象。向Cookie对象写变量的语法如下:

      Response.Cookies(cookie)[(Key)|.attribute] = value

      其中,cookie是Cookie文件名,Key标明一个字典元素,attribute是Cookie 的一个具体性质,value是分给cookie的值。例如,为创建一个叫MyHobby的Cookie,并分配其值为:BasketBall,使用下述语法:

      <%Response.Cookies(“MyHobby")=“BasketBall" %>

      在客户机器上读取Cookie对象的方法如下:

      Request.Cookies(cookie)[(Key)|.attribute]

      其中,cookie是被请求Cookie的名字,Key是子关键字值下标,attribute是用于标明Cookie属性。例如:为抽取一个叫做MyHobby的Cookie中的信息并将它的值写到页面,使用下述语法:

      <% Request.Cookies(“MyHobby") %>

      需要注意的是:不能在HTTP页首信息已被送到请求浏览器之后,再向一个Cookie对象写入信息?;痪浠八?,不能在任何HTML标识符被发送到浏览器之后才向浏览器发送Cookie信息。

      具体实现

      下面通过一个基于ASP技术的聊天室的实现,来介绍如何处理Session对象变量失效的问题。

      ●在用户登录前初始会话级变量:UserName(用于存储登录用户名)。

      <% Session(“UserName")=“" %>

      //初始化Cookie对象

      <% Response.Cookies(“UserName")=“" %>

    编辑:

    版权与免责声明:

    凡未注明"稿件来源"的内容均为转载稿,本网转载出于传递更多信息的目的;如转载稿涉及版权问题,请作者联系我们,同时对于用户评论等信息,本网并不意味着赞同其观点或证实其内容的真实性;


    本文地址:http://www.dlnubbs.cn/news/2019/04/09/834318.html

    转载本站原创文章请注明来源:包晓琳

    点击排行
    焦点

    换种姿势给你看 金河田 银狐19新品水冷机箱

    由于是水冷机箱,在风扇噪音上完全不用担心,它能够暴力隔绝机箱 ...详情

    花三分钟看完文章帮你选好机箱和电源

    机箱和电源不少老玩家都很重视,在选择上也都会选择大厂商的品牌 ...详情

    OptiTrack在GDC 2019大会展示最新线下VR追踪技术

    OptiTrack的追踪技术正广泛用于全球各地的的VR线下娱 ...详情

    网易引入《极客战记》助青少年编程教育

    4月18日,网易在北京召开发布会,宣布获得美国CodeCom ...详情

    使用UCloud GlobalSSH加速Ansible海外部署效率

      Aible是一个简单高效、无Agent架构的自动化编排 ...详情

    CopyRight ? 2019 包晓琳 www.dlnubbs.cn, All Rights Reserved 漫展网 版权所有

    使用漫展网前必读 | 关于我们 | 免责声明 | 隐私政策 | 包晓琳 | 联系我们