Session 开始于:
- 当某个新用户请求了一个 ASP 文件,并且 Global.asa 文件引用了 Session_OnStart 子程序时;
- 当某个值存储在 Session 变量中时;
- 当某个用户请求了一个 ASP 文件,并且 Global.asa 使用 <object> 标签通过 session 的 scope 来例示某个对象时;
Session 结束
假如用户没有在规定的时间内在应用程序中请求或者刷新页面,session 就会结束。默认值为 20 分钟。
如果您希望将超时的时间间隔设置得更长或更短,可以设置 Timeout 属性。
下面的例子设置了 5 分钟的超时时间间隔:
<%
Session.Timeout
=5
%>
要立即结束 session,可使用 Abandon 方法:
<%
Session.Abandon
%>
注意:使用 session 时主要的问题是它们该在何时结束。我们不会知道用户最近的请求是否是最后的请求。因此我们不清楚该让 session“ 存活”多久。为某个空闲的 session 等待太久会耗尽服务器的资源。然而假如 session 被过早地删除,那么用户就不得不一遍又一遍地重新开始,这是因为服务器已经删除了所有的信息。寻找合适的超时间隔时间是很困难的。
提示:如果您正在使用 session 变量,请不要在其中存储大量的数据。
存储和取回 session 变量
<% Session("username")="Donald Duck" Session("age")=50 %>
一旦值被存入 session 变量,它就能被 ASP 应用程序中的任何页面使用:
Welcome <%Response.Write(Session("username"))%>移除 session 变量
在下面的例子中,假如 session 变量 "age" 的值小于 18,则移除 session 变量 "sale":
<% If Session.Contents("age")<18 thenSession.Contents.Remove("sale")
End If %>如需移除 session 中的所有变量,请使用 RemoveAll 方法:
<% Session.Contents.RemoveAll() %>遍历 contents 集合
dim i For Each i inSession.Contents
Response.Write(i & "<br />") Nextcontents 集合中的项目数量,可使用 count 属性通过循环 StaticObjects 集合,来查看存储在 session 对象中所有对象的值:<% dim i For Each i inSession.StaticObjects
Response.Write(i & "<br />") Next %>