ASP Session

Session 对象

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

ASP 通过为每个用户创建一个唯一的 cookie 来解决这个问题。cookie 被传送至用户的计算机上,它含有可识别用户的信息。这种接口被称作 Session 对象。

Session 对象用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。

存储于 Session 对象中的变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的。存储于 session 变量中的公共信息通常是 name、id 和参数。服务器会为每个新的用户创建一个新的 Session,并在 session 失效时撤销掉这个 Session 对象。

Session 对象的集合、属性、方法和事件的描述如下:

Contents集合

包含所有通过脚本命令追加到 session 的条目。

详见上一章节

StaticObjects集合

包含了所有使用 HTML 的 <object> 标签追加到 session 的对象。    

详见上一章节

CodePage属性

CodePage 属性规定在显示动态内容时所使用的字符集。

一些代码页面的实例:

1252 - 美国英语和大多数欧洲语言

932 - 日本汉字Japanese Kanji

语法

Session.CodePage(=Codepage)

参数说明:codepage--为运行脚本引擎的系统定义代码页面(字符集)。

实例

 <%
 Response.Write(Session.CodePage)
 %>

 输出:

 1252

LCID属性

LCID属性设置或返回一个规定位置或地区的整数。诸如日期、时间以及货币等内容都会根据位置或地区来显示。

语法

 Session.LCID(=LCID)

参数说明:LCID--地区标识符。

实例

 <%
 response.write("<p>")
 response.write("Default LCID is: " & Session.LCID & "<br>")
 response.write("Date format is: " & date() & "<br>")
 response.write("Currency format is: " & FormatCurrency(350))
 response.write("</p>")

 Session.LCID=1036

 response.write("<p>")
 response.write("LCID is now: " & Session.LCID & "<br>")
 response.write("Date format is: " & date() & "<br>")
 response.write("Currency format is: " & FormatCurrency(350))
 response.write("</p>")

 Session.LCID=3079

 response.write("<p>")
 response.write("LCID is now: " & Session.LCID & "<br>")
 response.write("Date format is: " & date() & "<br>")
 response.write("Currency format is: " & FormatCurrency(350))
 response.write("</p>")

 Session.LCID=2057

 response.write("<p>")
 response.write("LCID is now: " & Session.LCID & "<br>")
 response.write("Date format is: " & date() & "<br>")
 response.write("Currency format is: " & FormatCurrency(350))
 response.write("</p>")
 %>

 输出:

 Default LCID is: 2048
 Date format is: 12/11/2001
 Currency format is: $ 350.00

 LCID is now: 1036
 Date format is: 11/12/2001
 Currency format is: 350,00 F

 LCID is now: 3079
 Date format is: 11.12.2001
 Currency format is: € 350,00
 
 LCID is now: 2057
 Date format is: 11/12/2001
 Currency format is: £ 350.00

SessionID 属性

SessionID 属性为每个用户返回一个唯一的 id 。此 id 由服务器生成。

语法

Session.SessionID

实例

 <%
 Response.Write(Session.SessionID)
 %>

 输出 :

 772766038

Timeout属性

Timeout 属性按分钟设置或返回应用程序的 Session 对象的超时周期。如果用户在此超时周期内没有刷新或请求页面,会话就会被终止。

语法

Session.Timeout[=nMinutes]

参数说明:nMinutes--session 在服务器终止它之前可保持空闲的分钟值。默认是 20 分钟。    

实例

 <%
 response.write("<p>")
 response.write("Default Timeout is: " & Session.Timeout)
 response.write("</p>")

 Session.Timeout=30

 response.write("<p>")
 response.write("Timeout is now: " & Session.Timeout)
 response.write("</p>")
 %>

 输出:

 Default Timeout is: 20

 Timeout is now: 30

Abandon方法

Abandon 方法终结用户的会话。

注意:当此方法被调用时,当前的 Session 对象直到当前页面上所有的脚本被处理完后才会被删除。这意味着当调用 Abandon 时可以在同一页面访问 session 变量,但是从另外的网页是不可以访问的。

语法

 Session.Abandon

实例

 <%
 Session("name")="Hege"
 Session.Abandon
 Response.Write(Session("name"))
 %>

 输出:

 Hege

Contents.Remove    

从 Contents 集合删除一个项目。    

详见上一章节

Contents.RemoveAll()   

 从 Contents 集合删除所有项目。    

详见上一章节

Session_OnStart 和 Session_OnEnd 事件

Session_OnStart 事件在服务器创建新会话时发生。

此事件放置在 Global.asa 文件中。

Session_OnEnd 事件在会话结束时发生(会话被放弃或超时的时候)。

此事件放置在 Global.asa 文件中。

注意:MapPath 方法不能用在 Session_OnEnd 代码中。

语法

 <script language="vbscript" runat="server">

 Sub Session_OnStart
 . . .
 End Sub

 Sub Session_OnEnd
 . . .
 End Sub

 </script>

实例

Global.asa:

 <script language="vbscript" runat="server">

 Sub Application_OnEnd()
 Application("totvisitors")=Application("visitors")
 End Sub

 Sub Application_OnStart
 Application("visitors")=0
 End Sub

 Sub Session_OnStart
 Application.Lock
 Application("visitors")=Application("visitors")+1
 Application.UnLock
 End Sub

 Sub Session_OnEnd
 Application.Lock
 Application("visitors")=Application("visitors")-1
 Application.UnLock
 End Sub

 </script>

在 ASP 文件中显示当前的访客数:

 <html>
 <head>
 </head>
 <body>
 <p>
 There are <%response.write(Application("visitors"))%>
 online now!
 </p>
 </body>
 </html>


本内容均来自互联网,仅供参考,如有侵权请及时通知本站予以删除。邮箱:wiki#imooc.com (#改成@)

意见反馈 帮助中心 APP下载
官方微信