• 1
  • 2
  • 3
  • 4
  • 5
asp.net空间 首 页  »  帮助中心  »  虚拟主机  »  asp.net空间
关于session使用方法的详细介绍
发布日期:2015-10-8 15:10:40

  关于session使用方法的详细介绍

  Session 对象

  使用 Session 对象可以存储特定用户会话需要的信息。如果这样,当用户在应用程序的 Web 页之间跳转的时候,在 Session 对象中存储的变量会一直在整个用户的会话中存在,而不会发生丢失。  

        如果用户请求来自应用程序的 Web 页时,若该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将会终止该会话。

  存储用户的首选项是使用Session 对象的一个最常见的方法。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。有关使用 Session 对象的详细信息或使用时的具体问题,请参阅“ASP 应用程序”部分的“管理会话”。

  注意 会话状态仅在支持 cookie 的浏览器中保留。

  语法

  Session.collection|property|method

  集合

  Contents 包含已通过脚本命令添加到会话中的项目。

  StaticObjects 包含通过标记创建的并给定了会话作用域的对象。

  属性

  CodePage 将用于符号映射的代码页。

  LCID 现场标识。

  SessionID 返回用户的会话验证。

  Timeout 应用程序会话状态的超时时限,以分钟为单位。

  方法

  Abandon 该方法破坏 Session 对象并释放其资源。

  事件

  global.asa 文件中声明下列事件的脚本。

  Session_OnEnd

  Session_OnStart

  有关以上事件及 global.asa 文件的详细信息, 请参阅 Global.asa 参考.

  注释

  您可以在 Session 对象中存储值。存储在 Session 对象中的信息有效范围只在会话及会话作用域内。下列有两种类型的变量的存储方式的脚本演示供您参考。

  <% br="">Session("username") = "Janine"

  Session("age") = 24

  %>

  但是,如果您使用 VBScript 作为主脚本语言时,将对象存储在 Session对象中,则必须使用关键字 Set。例如下列脚本所示。

  <% set="">

  然后,您就可以在后面的 Web 页上调用 MyComponent.class1 揭示的方法和属性,其调用方法如下:

  <% mymethod="">

  也可以通过展开该对象的本地副本并使用下列脚本来调用:

  <% br="">Set MyLocalObj1 = Session("Obj1")

  MyLocalObj1.MyObjMethod

  %>

  想要创建有会话作用域的对象有另一种方法就是在 global.asa 文件中使用标记。

  但是使用这种方法就不能在 Session 对象中存储内建对象。例如脚本所示,下面每一行都将返回错误。

  <% br="">Set Session("var1") = Session

  Set Session("var2") = Request

  Set Session("var3") = Response

  Set Session("var4") = Server

  Set Session("var5") = Application

  %>

  特别注意的是在将对象存储到 Session 对象之前,您必须知道它所使用的是哪一种线程模型。在没有锁定单线程会话的 Session 对象中只能存储那些标记为“Both”的对象。相关详细信息, 请参阅“创建 ASP 组件”中的“选择线程模型”。

  如果您将一个数组存储在 Session对象中,请不要直接更改存储在数组中的元素。例如下列脚本所示,将会发生脚本无法运行的情况。

  <% new="">

  这是因为 Session对象是作为集合被实现的。数组元素 StoredArray(3) 未获得新的赋值。而此值将包含在 Application 对象集合中,并将覆盖此位置以前存储的任何信息。

  我们极力建议您在将数组存储在 Session对象中时,在检索或改变数组中的对象前获取数组的一个副本。在对数组操作时,您应再将数组全部存储在 Session 对象中,这样您所做的任何改动将被存储下来。下列的脚本对此进行演示。

  ---file1.asp---

  <% br="">'Creating and initializing the array

  Dim MyArray()

  Redim MyArray(5)

  MyArray(0) = "hello"

  MyArray(1) = "some other string"

  'Storing the array in the Session object

  Session("StoredArray") = MyArray

  Response.Redirect("file2.asp")

  %>

  ---file2.asp---

  <% br="">'Retrieving the array from the Session Object

  'and modifying its second element

  LocalArray = Session("StoredArray")

  LocalArray(1) = " there"

  'printing out the string "hello there"

  Response.Write(LocalArray(0)&LocalArray(1))

  'Re-storing the array in the Session object

  'This overwrites the values in StoredArray with the new values

  Session("StoredArray") = LocalArray

  %>

  示例

  下列代码将字符串 MyName 分配给名为 name 的会话变量,并给名为 year 的会话变量指定一个值,而且为 some.Obj 组件的实例指定一个名为 myObj 的变量。

  Session("name") = "MyName"

  Session("year") = 96

  Set Session("myObj") = Server.CreateObject("someObj")

  %>