session的用法具体解说

2016-01-29 18:08 0 1 收藏

session的用法具体解说,session的用法具体解说

【 tulaoshi.com - ASP 】

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

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

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

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

语法
Session.collection|property|method

集合
Contents 包含已用脚本命令添加到会话中的项目。
StaticObjects 包含通过 <OBJECT 标记创建的并给定了会话作用域的对象。


属性
CodePage 将用于符号映射的代码页。
LCID 现场标识。
SessionID 返回用户的会话验证。
Timeout 应用程序会话状态的超时时限,以分钟为单位。


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


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

Session_OnEnd
Session_OnStart


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

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

<%
Session("username") = "Janine"
Session("age") = 24
%

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

<% Set Session("Obj1") = Server.CreateObject("MyComponent.class1") %

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

<% Session("Obj1").MyMethod %

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

<%
Set MyLocalObj1 = Session("Obj1")
MyLocalObj1.MyObjMethod
%

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

但是不能在 Session 对象中存储内建对象。例如,下面每一行都将返回错误。

<%
Set Session("var1") = Session
Set Session("var2") = Request
Set Session("var3") = Response
Set Session("var4") = Server
Set Session("var5") = Application
%

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

若您将一个数组存储在 Session对象中,请不要直接更改存储在数组中的元素。例如,下列的脚本无法运行。

<% Session("StoredArray")(3) = "new value" %

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

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

---file1.asp---
<%
'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---
<%
'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 组

来源:https://www.tulaoshi.com/n/20160129/1504493.html

延伸阅读
标签: PHP
一、session概述 session是什么,刚开始我也不明白,非专业词典翻译为会议,会议期。作个不太恰当的比喻吧 (虽然不恰当,但意义却是一样的),session是你和网站之间的感情。 session在WEB技术中占有非常重要的份量。由于网页是一种无状态的连接程序,因此你无法得知用户的浏览状态。因此我们必须 通过session记录用户的...
标签: Web开发
写过稍微大型一点 ASP 的人都知道,Session 这个对象真是好用,它可以用来记录使用者私有的资料变量,既安全又方便。但是你真的知道 Session 的运作原理吗?或许了解以后,你就再也不太敢使用这个令人又爱又恨的对象。虽然转而替代之的方法稍嫌麻烦,但在长期考量之下,也就不得不这么做了。 首先来讲讲 Session 的好处,它可以用来记...
session通常放在/tmp目录下,而该文件夹的权限是everbody可读,这个就非常可怕了!学校的论坛曾经就有人通过session来盗取帐号!所以后来就尝试把session放入数据库,表的结构和过程如下: //创建表 //create sesslib.sql CREATE TABLE sesslib ( data text, time datetime, id int(11) DEFAULT ''0'' NOT NULL auto_increm...
标签: ASP
        session_onend是比较难调试的,这是因为:     一、没有出错信息提示(这也难怪,是没有地方提示的,根本不知道要将出错提示信息放到什么地方去)。         二、大多数情况下,也不能使用session.abandon来手工释放sesion进行调试——你释...
标签: PHP
  files: common/Common.config.php include/session.inc.php session_test.php get_session_test.php get_session_test2.php Common.config.php    <?php /* * Common config * By 恋太后天 */ /* * Database config */ define( "DBTYPE", "mysql" ); $database = array (     "mysql" = array  ...

经验教程

594

收藏

12
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部