首页 > 代码库 > 教你如何理解session对象?

教你如何理解session对象?

  Session 对象用于存储用户的信息。存储于 session 对象中的变量握有单一用户的信息,

  并且对于一个应用程序中的所有页面都是可用的。

  Session 对象

  当您操作某个应用程序时,您打开它,做些改变,然后将它关闭。这很像一次对话(Session)。

  计算机知道您是谁。它清楚您在何时打开和关闭应用程序。但是在因特网上有一个问题:

  由于 HTTP 地址无法存留状态,web 服务器并不知道您是谁以及您做什么。

  ASP 通过为每位用户创建一个唯一的 cookie 的方式解决了这个问题。cookie 被传送至客

  户端,它含有可识别用户的信息。这种接口被称作 Session 对象。

  Session 对象用于存储关于用户的信息,或者为一个用户的 session 更改设置。存储于

  session 对象中的变量握有单一用户的信息,并且对于应用程序中的所有页面都是可用的。

  存储于 session 对象中的信息通常是 name、id 以及参数。服务器会为每个新的用户创建

  一个新的 Session,并在 session 到期时撤销掉这个 Session 对象。

  Session 何时开始?

  Session 开始于:

  当某个新用户请求了一个 ASP 文件,并且 Global.asa 文件引用了 Session_OnStart 子

  程序时;

  当某个值存储在 Session 变量中时;

  当某个用户请求了一个 ASP 文件,并且 Global.asa 使用 <object> 标签通过 session

  的 scope 来例示某个对象时;

  Session 何时结束

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

  值为 20 分钟。

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

  下面的例子设置了 5 分钟的超时时间间隔,3g.sxnhcl.net/  3g.wjyy91.net/:

  <%

  Session.Timeout=5

  %>

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

  <%

  Session.Abandon

  %>

  注意:使用 session 时主要的问题是它们该在何时结束。我们不会知道用户最近的请求是

  否是最后的请求。因此我们不清楚该让 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%>

  移除 session 变量

  contents 集合包含所有的 session 变量。

  可通过 remove 方法来移除 session 变量。

  在下面的例子中,假如 session 变量 "age" 的值小于 18,则移除 session 变量 "sale":

  <%

  If Session.Contents("age")<18 then

  Session.Contents.Remove("sale")

  End If

  %>

  如需移除 session 中的所有变量,请使用 RemoveAll 方法:

  <%

  Session.Contents.RemoveAll()

  %>