如何解决ASP中session失效问题-最新年文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何解决ASP中session失效问题-最新年文档
如何解决ASP中session失效问题
ession是ASP中的一个重要对象,用于存储特定的用户会话所需的信息。

session中文是“会话”的意思,在ASP中代表了服务器与客户端之间的“会话”。

session的作用时间从用户到达某个特定的Web页开始,到该用户离开Web站点,或在程序中利用代码终止某个session结束。

引用session则可以让一个用户访问多个页面之间的切换也会保留该用户的信息。

系统为每个访问者都设立一个独立的session对象,用以存储session 变量,并且各个访问者的session对象互不干扰。

在《网页制作》教学中,我设计了这样一个任务:设计一个会员登录模块,会员分为一、二、三个级别,登录后,不同级别的会员在购买商品时可享受不同的折扣。

在实现模块功能时,就用到了session 对象。

然而,当某个会员登录并成功购买了一个商品后,当“再购买”行为发生时,系统却不能正确给出折扣。

为什么?仔细分析模块中的两个页面,即登录页面login.asp和购买页面buy.asp的关系:登录页面将会员的“级别”等信息保存在session中,购买页面则从session 中获得会员“级别”等信息,进而在价格上给予对应折扣。

“再购买”不能识别会员级别,显然是因为session失效了。

如何解决这个问题?
我尝试了下面几种办法。

1 修改timeout属性值
ession对象的timeout属性用来设置session会话的超时时间,以分钟表示,默认值为20分钟。

当timeout属性设置的时间值耗尽后,会话资源将被释放。

通过timeout属性破坏session对象,避免了session对象在服务器中无限制地产生,保护了服务器资源。

但是,在实际Web应用程序开发中,常常遇到如上述会员“再购买”中出现的session失效现象,导致用户状态信息丢失而致使应用流程无法正常完成的问题。

因此,在登录页面中,我加入了下面的代码:timeout=1000
然而,同一用户依然不能在“再购买”中获得该享有的折扣,也就是session失效问题并没有解决。

分析得出结论:在会员购买完第一个商品后,由于“确认”购买操作,导致了session 对象会话结束。

除非我重新编写购买程序,否则,即便将timeout 属性值设置的再大些,还是不能解决问题。

于是,我又采用了下面的方法,试图解决这个棘手的问题。

2 利用application对象
application也是asp的一个对象,也可以传递参数。

于是,我将session对象换成了application,也就是用application 来保存会员的“级别”等信息。

同一个会员的“再购买”功能实现了,但是又带来一个更糟糕的问题:所有的会员无论是什么级别的,都享有同第一个进入系统的会员一样的折扣了。

通过分析,我发现,自己犯了一个低级错误,就是忽略了application与。

相关文档
最新文档