首页 > 编程 > ASP > 正文

ASP Session 对象

2020-03-22 18:17:59
字体:
来源:转载
供稿:网友
Session 对象用于存储用户的信息。存储于 session 对象中的变量持有单一用户的信息,并且对于一个html' target='_blank'>应用程序中的所有页面都是可用的。

当您操作某个应用程序时,您打开它,做些改变,然后将它关闭。这很像一次对话(Session)。计算机知道您是谁。它清楚您在何时打开和关闭应用程序。但是在因特网上有一个问题:由于 HTTP 地址无法存留状态,web 服务器并不知道您是谁以及您做了什么。

ASP 通过为每位用户创建一个唯一的 cookie 的方式解决了这个问题。cookie 被传送至客户端,它含有可识别用户的信息。这种接口被称作 Session 对象。

Session 对象用于存储关于用户的信息,或者为一个用户的 session 更改设置。存储于 session 对象中的变量存有单一用户的信息,并且对于应用程序中的所有页面都是可用的。存储于 session 对象中的信息通常是 name、id 以及参数。服务器会为每个新的用户创建一个新的 Session,并在 session 到期时撤销掉这个 Session 对象。


当某个新用户请求了一个 ASP 文件,并且 Global.asa 文件引用了 Session_OnStart 子程序时;当某个值存储在 Session 变量中时;当某个用户请求了一个 ASP 文件,并且 Global.asa 使用 object 标签通过 session 的 scope 来例示某个对象时;

假如用户没有在规定的时间内在应用程序中请求或者刷新页面,session 就会结束。默认值为 20 分钟。

如果您希望将超时的时间间隔设置得更长或更短,可以设置 Timeout 属性。

下面的例子设置了 5 分钟的超时时间间隔:

Session.Timeout=5

要立即结束 session,可使用 Abandon 方法:

Session.Abandon

注意:使用 session 时主要的问题是它们该在何时结束。我们不会知道用户最近的请求是否是最后的请求。因此我们不清楚该让 session“ 存活”多久。为某个空闲的 session 等待太久会耗尽服务器的资源。然而假如 session 被过早地删除,那么用户就不得不一遍又一遍地重新开始,这是因为服务器已经删除了所有的信息。寻找合适的超时间隔时间是很困难的。

提示:如果您正在使用 session 变量,请不要在其中存储大量的数据。


Session 对象最大的优点是可在其中存储变量,以供后续的网页读取,其应用范围是很广的。

下面的例子把 Donald Duck 赋值给名为 username 的 session 变量,并把 50 赋值给名为 age 的 session 变量:

Session( username )= Donald Duck Session( age )=50

一旦值被存入 session 变量,它就能被 ASP 应用程序中的任何页面使用:

Welcome %Response.Write(Session( username ))% 

上面这行程序返回的结果是: Welcome Donald Duck 。

也可以在 session 对象中保存用户参数,然后通过访问这些参数来决定向用户返回什么页面。

下面的例子规定,假如用户使用低显示器分辨率,则返回纯文本版本的页面:

 %If Session( screenres )= low Then%  This is the text version of the page %Else%  This is the multimedia version of the page %End If% 

contents 集合包含所有的 session 变量。可通过遍历 contents 集合,来查看其中存储的变量:

Session( username )= Donald Duck Session( age )=50dim iFor Each i in Session.Contents Response.Write(i br / )

结果:

username

如果需要了解 contents 集合中的项目数量,可使用 count 属性:

dim idim jj=Session.Contents.CountResponse.Write( Session variables: j)For i=1 to j Response.Write(Session.Contents(i) br / )

结果:

Session variables: 2Donald Duck

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表