<<<返回

Sessions的介绍
什么是Sessions? session其实指的就是访问者从到达某个特定主页到离开为止的那段时间，每个访问者都会单独获得一个session。 Sessions可以用来储存访问者的一些喜好，例如：访问者是喜好绿色背景还是兰色？访问者是否对分屏方式怀有敌意。以及访问者是否宁可浏览纯文本的站点，这些信息可以依据sessions来跟踪。 Sessions还可以创建虚拟购物篮。无论什么时候用户在你的网站中选择了一种产品，那么这种产品就会进入购物篮，当他或她准备离开时，就可以立即进行以上所有选择的产品的订购。这些购物信息可以被保存在Session中。
最后，Sessions还可以用来跟踪访问者的习惯，就象现在环境学者跟踪大白鲨生活习性一样。你可以跟踪你的访问者从一个主页到另一个主页，这样对于你对站点的更新和定位是非常有好处的。
Sessions的使用和处理
session的发明是填补HTTP协议的局限，请注意HTTP协议是怎样工作的－用户发出请求，服务端作出响应，这种用户端和服务端之间的联系就是离散的，非连续的。
在HTTP协议中没有什么能够允许服务端来跟踪用户请求。在服务端完成响应用户请求后，服务端不能持续与该浏览器保持连接。从网站的观点上看，每一个新的请求都是单独存在的，因此，HTTP协议被认为是stateless协议，在用户在多个主页间转换时，你就根本无法知道他的身份。
Sessions的引用就是弥补了这个缺陷。利用Sessions，你就可以在一个用户在多个主页间切换的时候也能保存他的信息。这样很多以前根本无法去做的事情变得简单多了。
请注意，现在还有很多浏览器不能支持Cookies，如果想要具体了解这些，看后面的相关部分。
开始Session信息
Active Server Pages的Sessions非常好用，你能够利用Session对象来对session全面控制，如果你需要在一个用户session中存储信息，你只需要简单的直接调用Session对象就可以了，下面是个例子：
<HTML>
<HEAD><TITLE>Session示例</TITLE></HEAD>
<BODY>
<%
Session(“Greeting”)=“欢迎!”
Response.Write(Session(“Greeting”))
%>
</BODY>
</HTML>
当Active Server Page执行时，浏览器上显示出”欢迎!”的字段，脚本第一行是给Greeting赋值为”欢迎!”，第二行将这个字段显示出来。
不过，这种操作没什么大不了的，但是，可以假象一个同样的用户进入另一个主页，例如，下面这个Active Server Pages:
<HTML>
<HEAD><TITLE>另一页</TITLE></HEAD>
<%=Session(“Greeting”)%>
</Body>
</html>
当他进入这页，同样的”欢迎!”又显示出来了，注意这一页没有赋值操作，这个Greeting变量的值是前面那页赋值的。
你无法用普通的脚本变量来进行这种处理，因为一般的变量只在一个单独主页内有效，而Session变量在用户离开网站前一直存在生效。
要理解的很重要的一点是Session变量是针对特定用户相联系的。针对某一个用户赋值的Session变量是和其他用户的Session变量完全独立的，不会存在相互影响。换句话说，这里面针对每一个用户保存的信息是每一个用户自己独享的，不会产生公享情况。例如下面这个例子(针对于注册表的例子)：
<%
Session(“Myname”)=Response.form(“Username”)
Session(“Mycompany”)=Response.form(“Usercompany”)
%>
很明显，对于不同的用户，Session的Myname变量和Mycompany变量各自是不同的，在每个人在网站的不同主页间浏览时，这种针对这个个人的变量会一直保留，这样作为身份认证是十分有效的。