• 宁企研发出声波去霾技术 用喇叭“吹落”PM2.5
  • 【2013年】老有所养,居家养老服务让老人安享晚年
  • 【新华微视评】你敢相信吗 他会是下个“球王”?
  • 陕西省质量强省工作推进委员会会议召开
  • 投资6个亿!山西大同大学北校区建设项目获批复
  • 北京市网信办依法约谈360doc个人图书馆
  • 扎实做好专项巡视工作 为打赢脱贫攻坚战提供有力保障
  • 多元的观点 相同的立场
  • 寒锐转债(123017)今日申购 基本信息一览
  • 海外媒体关注中国再度发射双星:“北斗三号”迈出关键一步(3)
  • 以韵律写山水:大陆画家樊洲水墨巡回展在台北举行
  • 云南省第十五届运动会胜利闭幕
  • 商品房预售制度将被取消?“现房”时代来临……
  • 高速运行 通话无忧
  • “最多跑一次”改革:让人民生活更美好
  • 威武影院 - 智慧 - 正文

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

    2019-04-25 09:48IT时代网

      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.zgyqzx.net/news/2019/04/25/646498.html

    转载本站原创文章请注明来源:威武影院

    点击排行
    焦点

    看上去很火的短视频,对创业者却是个无底洞

      美国杂志《名利场》曾经针对“青少年喜爱的明星”做过一次调 ...详情

    Win10系统的便签(便利贴)在哪?

    Win10系统更新成2016年周年 版,版本编号1607,。 ...详情

    19999元!“小米”自行车来了 史上最贵

    啄木网-青岛IT(www.zomiu.com):19999元 ...详情

    2月流失20万玩家 绝地求生真的要凉了吗?

    《绝地求生》自发布以来可以说是一路飙升,玩家数量每月都有很明 ...详情

    万字干货总结:最全的运营数据指标解读

    用户获取是运营的起始,用户获取接近线性思维,或者说是一个固定 ...详情

    CopyRight ? 2019 威武影院 www.zgyqzx.net, All Rights Reserved 一尘网 版权所有

    使用一尘网前必读 | 关于我们 | 免责声明 | 隐私政策 | 威武影院 | 联系我们