Session对象简介
当您在盘算机上操纵某个运用程序时,您翻开它,做些变动,然后封闭它,就很像一次对话(Session)。盘算机晓得您是谁,它清晰您在什么时候翻开和封闭运用程序。然则,在因特网上题目涌现了,由于HTTP地点没法坚持状况,Web服务器并不晓得您是谁以及您做了什么。
Session 对象的主要用途 是针对每一个接见网站的用户来存储一些信息,比方,当用户登录后,我们能够在该用户的 Session 中存储信息来标识当前用户已登录。
Session 的道理是如许的,当用户第一次接见网站时,IIS为这个用户分配了一个标识,这个标识是一列很长的随机字符串,这个随机字符串叫做SessionID,然后服务器将其发送给客户端时代保存在Cookies中,接下来用户再接见服务器上的其他页面时,服务器取得这个 SessionID,并从内存中猎取和这个 SessionID 相干的数据,放在 Session对象的鸠合中。
Contents鸠合
我们能够在这个鸠合中存储当前用户的某些信息,比方下面的代码展现了怎样存储和读取数据:
<% '名字为username的Session鸠合中存储了一个“ZhangSan”字符串 Session.Contents("username") = "ZhangSan" Dim UserName '读取Session中的数据,能够省略Contents' UserName = Session.Contents("username")和下面一样 UserName = Session("username") Response.Write("<h2>" & UserName & "</h2>") %>
Session对象有三个要领(Contents.Remove、Contents.RemoveAll、Abandon),用来删除 Session 鸠合中的数据或摒弃当前的 Session。
第一个例子(SessionContents.asp)我们将演示怎样运用 Remove、RemoveAll要领,代码以下:
...<h3>当前SessionID值为 <%=Session.SessionID%></h3><h3>Session中存储数据</h3><%'运用 Contents.Count 遍历 Session 的历程Sub Traversal_P() Dim i For i = 1 To Session.Contents.Count Response.Write("Session(""" & Session.Contents.key(i) & """) = " & Session.Contents(i)) Response.Write("<br>") NextEnd Sub'For Each 遍历 Session.Contents 鸠合 Sub Traversal_E() Dim x For Each x In Session.Contents Response.Write("Session(""" & x & """) = " & Session(x)) Response.Write("<br>") NextEnd Sub'Session.Contents中存储了多个数据,以下Session.Contents("username") = "ZhangSan"Session.Contents("password") = "12345678"Session.Contents("date")="2015/08/14"Session.contents("author")="pchmonster"'遍历 Contents 鸠合Traversal_E()%><hr><h3>删除名为username的数据</h3><%'删除 username 数据Session.Contents.Remove("username")'从新遍历 Contents 鸠合Traversal_P()%><hr><h3>删除一切的Session数据</h3><%'删除一切的数据Session.Contents.RemoveAll() Traversal_E()%>...
上面的代码运转后显现以下:
这些代码中演示了怎样遍历Session.Contents鸠合的两种要领,请细致看看。
第二个例子(SessionAbandon.asp)演示了 Abandon 要领的结果,经由过程演示,我们看出来 RemoveAll 要领和 Abandon 要领的区分在于 RemoveAll 仅仅删除了当前的鸠合,然则客户照样运用同一个 SessionID(第一个例子中 SessionID 一向坚持不变化)。而 Abandon 要领调用后,在当前页面依然能够接见 Session 鸠合,在封闭页面或许革新页面后,之前的 Session 会被删除(本例子中 SessionID 会变化)。
代码以下:
<%'Abandon的运用后,在当前页面仍能够接见Session鸠合,封闭页面或革新后'会使Session被删除,SessionID也就会转变Session.Abandon()'起首我们要纪录一下SessionID的值,存放到Cookies中Dim numVisits, SID Response.Cookies("numVisits").Expires = DateAdd("d", 10, Now) Response.Cookies("SID").Expires = DateAdd("d", 10, Now) SID = Request.Cookies("SID") numVisits = Request.Cookies("numVisits")If numVisits = "" or SID = "" Then '如果是第一次运转该页面,则纪录当前Sessio nID值 Response.Cookies("numVisits") = 1 Response.Cookies("SID") = Session.SessionID%> <h3>您这是第一次接见该页面,当前页面的SessionID为</h3> <h2><%=Session.SessionID%></h2><%Else%> <hr> <h3>您这是第<%=numVisits%>次接见该页面,当前页面的SessioID为</h3> <h2><%=Session.SessionID%></h2> <h3>您第一次接见时的SessionID为</h3> <h2><%=Request.Cookies("SID")%></h2><% numVisits = numVisits + 1 Response.Cookies("numVisits") = numVisitsEnd If%>
第一次运转该页面,会先纪录当前的 SessionID 到 Cookies 中,以下图:
屡次革新该页面或从新翻开后,由于 Abandon 要领,会使 Session 删除,SessionID 会一向转变,以下图:
CodePage、SessionID、Timeout 属性
CodePage 属性定义了当前页面输出内容的字符集,这里的字符集以数字示意。比方
936 示意 Chinese Simplified (GB2312) 简体中文
950 示意 Chinese Traditional (Big5) 繁体中文
65001 示意 Unicode (UTF-8)
迥殊申明
<%@CODEPAGE="65001"%>作用于一切静态的字符串
Response.CodePage, Session.CodePage 作用于一切动态输出的字符串
Response.CodePage 作用局限只在于 a single response
Session.CodePage 的作用局限倒是在 all responses in a session
SessionID 属性能够取得当前用户的 SessionID,有时候在客户端浏览器不支持 Cookies 的情况下,你能够将 SessionID 附加在客户端的 QueryString 变量中,从而标识每一个客户端。
Timeout 属性用于设定客户的 Session 超时代。客户关于 SessionID 并非历久占领的,在其一段时候内没有和服务器端举行任何交互后,服务器端将摒弃该 Session。
下面的代码(SessionCST.asp)中将演示这个三个属性的运用要领,代码以下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <%Session.CodePage = 65001'作用于一切动态输出的字符串%> <!doctype html> <html> <head> <meta charset="utf-8"> <title>CodePage、SessionID、TimeOut属性的运用</title> </head> <body> <h3>当前页面运用的CodePage是:</h3> <h2><%=Session.CodePage%></h2> <hr> <h3>当前页面的SessionID是:</h3> <h2><%=Session.SessionID%></h2> <hr> <h3>当前页面Session默许超时时候为:</h3> <h2><%=Session.Timeout%>分钟</h2> </body> </html>
运转后,结果以下:
【相干引荐】
1. ASP免费视频教程
2. 详解ASP中Session的运用技能
3. ASP session简朴示例
4. 关于ASP中session的细致引见
5. 教你处理ASP session丧失的要领
以上就是引见ASP中Session对象的三种要领的细致内容,更多请关注ki4网别的相干文章!