<p>可以使用 Session 对象存储特定用户会话所需的信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。</p><p>当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。</p><p>Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。有关使用 Session 对象的详细信息,请参阅"ASP 应用程序"部分的"管理会话"。</p><p>注意 会话状态仅在支持 cookie 的浏览器中保留。</p><p>语法</p><p>Session.collection|property|method</p><p>集合</p><p>Contents 包含已用脚本命令添加到会话中的项目。</p><p>StaticObjects 包含通过 <OBJECT> 标记创建的并给定了会话作用域的对象。</p><p>属性</p><p>CodePage 将用于符号映射的代码页。</p><p>LCID 现场标识。</p><p>SessionID 返回用户的会话验证。</p><p>Timeout 应用程序会话状态的超时时限,以分钟为单位。</p><p>方法</p><p>Abandon 该方法破坏 Session 对象并释放其资源。</p><p>事件</p><p>global.asa 文件中声明下列事件的脚本。</p><p>Session_OnEnd</p><p>Session_OnStart</p><p>有关以上事件及 global.asa 文件的详细信息, 请参阅 Global.asa 参考.</p><p>注释</p><p>您可以在 Session 对象中存储值。存储在 Session 对象中的信息在会话及会话作用域内有效。下列脚本演示两种类型的变量的存储方式。</p><pre class="brush:as3;toolbar:false"><%
Session("username")="Janine"
Session("age")=24
%></pre><p>但是,如果您将对象存储在 Session对象中,而且您使用 VBScript 作为主脚本语言。则必须使用关键字 Set。如下列脚本所示。</p><p><% Set Session("Obj1") = Server.CreateObject("MyComponent.class1") %></p><p>然后,您就可以在后面的 Web 页上调用 MyComponent.class1 揭示的方法和属性,其调用方法如下:</p><p><% Session("Obj1").MyMethod %></p><p>也可以通过展开该对象的本地副本并使用下列脚本来调用:</p><pre class="brush:as3;toolbar:false"><%
SetMyLocalObj1=Session("Obj1")
MyLocalObj1.MyObjMethod
%></pre><p>创建有会话作用域的对象的另一种方法是在 global.asa 文件中使用 <OBJECT> 标记。</p><p>但是不能在 Session 对象中存储内建对象。例如,下面每一行都将返回错误。</p><pre class="brush:as3;toolbar:false"><%
SetSession("var1")=Session
SetSession("var2")=Request
SetSession("var3")=Response
SetSession("var4")=Server
SetSession("var5")=Application
%></pre><p>在将对象存储到 Session 对象之前,必须了解它使用的是哪一种线程模型。只有那些标记为"Both"的对象才能存储在没有锁定单线程会话的 Session 对象中。详细信息, 请参阅"创建 ASP 组件"中的"选择线程模型"。</p><p>若您将一个数组存储在 Session对象中,请不要直接更改存储在数组中的元素。例如,下列的脚本无法运行。</p><p><% Session("StoredArray")(3) = "new value" %></p><p>这是因为 Session对象是作为集合被实现的。数组元素 StoredArray(3) 未获得新的赋值。而此值将包含在 Application 对象集合中,并将覆盖此位置以前存储的任何信息。</p><p>我们极力建议您在将数组存储在 Session对象中时,在检索或改变数组中的对象前获取数组的一个副本。在对数组操作时,您应再将数组全部存储在 Session 对象中,这样您所做的任何改动将被存储下来。下列的脚本对此进行演示。</p><p>---file1.asp---</p><pre class="brush:as3;toolbar:false"><%
'Creatingandinitializingthearray
DimMyArray()
RedimMyArray(5)
MyArray(0)="hello"
MyArray(1)="someotherstring"
'StoringthearrayintheSessionobject
Session("StoredArray")=MyArray
Response.Redirect("file2.asp")
%></pre><p>---file2.asp---</p><pre class="brush:as3;toolbar:false"><%
'RetrievingthearrayfromtheSessionObject
'andmodifyingitssecondelement
LocalArray=Session("StoredArray")
LocalArray(1)="there"
'printingoutthestring"hellothere"
Response.Write(LocalArray(0)&LocalArray(1))
'Re-storingthearrayintheSessionobject
'ThisoverwritesthevaluesinStoredArraywiththenewvalues
Session("StoredArray")=LocalArray
%></pre><p>相关解答:</p><p>A页面需输入正确的用户名和密码后,</p><p>加条语句:session("isLogin")=true</p><p>在B页面前判断:</p><pre class="brush:as3;toolbar:false">ifsession("isLogin")=falsethen
response.write"未登录"
response.en
endif</pre><p>这样就可以了</p><p>登陆后设置:</p><p>session("user")=用户名</p><p>在B页面输入:</p><pre class="brush:as3;toolbar:false">ifsession("user")=""then
Response.write("<script>alert('请登陆!');window.history.go(-1);</scritp>")
endif</pre>