📄 16-3.cfm.htm
字号:
FACE="宋体" SIZE="3">Header</font><font SIZE="3">的部分,那么你就必须在你的</font><font
FACE="宋体" SIZE="3">Active Server Pages</font><font SIZE="3">的任何输出语句之前进行这个脚本的操作,或者使用</font><font
FACE="宋体" SIZE="3">Buffer</font><font SIZE="3">输出,(参看</font><font
FACE="宋体" SIZE="3">14</font><font SIZE="3">章的有关小节)。</p>
<p ALIGN="JUSTIFY">前面的脚本是创建一个</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">的简单示例,只是使用了最常用的</font><font FACE="宋体" SIZE="3">Expires</font><font
SIZE="3">属性,其实还有许多其他属性也可以自行设置,下面是一个比较完全的例子:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">Response.Cookies(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">)=</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">Steve Jobs</font><font SIZE="3">”</font><font
FACE="Tms Rmn" SIZE="3"></p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">Response.Cookies(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">).Expires=</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">Jan 1, 1999</font><font SIZE="3">”</font><font
FACE="Tms Rmn" SIZE="3"></p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">Response.Cookies(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">).Path=</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">/examples</font><font SIZE="3">”</font><font
FACE="Tms Rmn" SIZE="3"></p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">Response.Cookies(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">).Domain=</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">aspsite.com</font><font SIZE="3">”</font><font
FACE="Tms Rmn" SIZE="3"></p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">Response.Cookies(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">).Secure=True</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这个脚本例子和前面的其实没有什么区别,不过有三个附加的属性需要解释:</p>
<p ALIGN="JUSTIFY">■</font><font FACE="宋体" SIZE="3">Path</font><font SIZE="3">属性是用来更加严格的限定浏览器发送</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">,在这个例子中,只有针对于</font><font
FACE="宋体" SIZE="3"> /examples</font><font SIZE="3">目录的请求的</font><font
FACE="宋体" SIZE="3">Header</font><font SIZE="3">中才携带</font><font FACE="宋体"
SIZE="3">Cookie</font><font SIZE="3">信息,例如</font><font FACE="宋体" SIZE="3">/examples/hello.asp</font><font
SIZE="3">以及</font><font FACE="宋体" SIZE="3"> /examples/chapter16/hello.asp</font><font
SIZE="3">的请求都会在</font><font FACE="宋体" SIZE="3">Header</font><font SIZE="3">上携带</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">信息,但是如果是浏览器对</font><font
FACE="宋体" SIZE="3">/hello.asp</font><font SIZE="3">的请求就不会携带该</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">信息。</font><font FACE="宋体"
SIZE="3">Path</font><font SIZE="3">属性的默认值是该</font><font FACE="宋体"
SIZE="3">Cookie</font><font SIZE="3">创建的</font><font FACE="宋体" SIZE="3">Active
Server Pages</font><font SIZE="3">所在的路径。(也就是说,即便不做指定,也不会跨过目</font><font
FACE="宋体" SIZE="3"> </font><font SIZE="3">录发送</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">)</p>
<p ALIGN="JUSTIFY">■</font><font FACE="宋体" SIZE="3">Domain</font><font SIZE="3">属性,限定了</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">发送的网站,例子中的</font><font
FACE="宋体" SIZE="3">aspsite.com</font><font SIZE="3">说明</font><font FACE="宋体"
SIZE="3">cookie</font><font SIZE="3">可以被发送到</font><font FACE="宋体" SIZE="3">www.aspsite.com</font><font
SIZE="3">或者</font><font FACE="宋体" SIZE="3">beetle.aspsite.com</font><font SIZE="3">或者</font><font
FACE="宋体" SIZE="3">yeah.aspsite.com</font><font SIZE="3">等等,同样作为默认值是该</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">创建的网站。</p>
<p ALIGN="JUSTIFY">■最后是</font><font FACE="宋体" SIZE="3">Secure</font><font
SIZE="3">属性,顾名思义,该属性设为</font><font FACE="宋体" SIZE="3">True</font><font
SIZE="3">则传递中就实行了加密算法,如果你正在使用安全接口层,那么你就可以使用这个属性(参见第二章,安装使用</font><font
FACE="宋体" SIZE="3"> Internet Information Server</font><font SIZE="3">)</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">在一个</font><font FACE="宋体" SIZE="3">Active
Server Page</font><font SIZE="3">中读取</font><font FACE="宋体" SIZE="3">cookie</font><font
SIZE="3">,你只需要使用</font><font FACE="宋体" SIZE="3">Request</font><font
SIZE="3">对象的</font><font FACE="宋体" SIZE="3">Cookies</font><font SIZE="3">集合,</font><font
FACE="宋体" SIZE="3"> </font><font SIZE="3">例如,输出一个</font><font
FACE="宋体" SIZE="3">cookie</font><font SIZE="3">值,那么脚本如下:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><%=Request.Cookies(</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3">) %></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这个脚本将名字为</font><font
FACE="宋体" SIZE="3">Username</font><font SIZE="3">的</font><font FACE="宋体"
SIZE="3">Cookie</font><font SIZE="3">值进行了输出,和以前同样的是,你依然可以利用</font><font
FACE="宋体" SIZE="3">For Each</font><font SIZE="3">循环或者利用</font><font
FACE="宋体" SIZE="3">Count</font><font SIZE="3">属性和</font><font FACE="宋体"
SIZE="3">For </font><font SIZE="3">…</font><font FACE="宋体" SIZE="3">Next</font><font
SIZE="3">循环结合的方式来将</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">集合</font><font FACE="宋体" SIZE="3"> </font><font SIZE="3">的所有属性值显示出来,下面这个例子的运行结果应当无须解释了。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">For EACH thing IN Request.Cookies</p>
<p ALIGN="JUSTIFY">Response.write(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3"><BR></font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">&thing&Request.Cookies(thing))</p>
<p ALIGN="JUSTIFY">NEXT</p>
<p ALIGN="JUSTIFY">%></p>
</font><b>
<p ALIGN="JUSTIFY">创建多个<font FACE="宋体">Cookie</p>
</font></b><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">你当然还可以创建不止一个</font><font
FACE="宋体" SIZE="3">Cookie,</font><font SIZE="3">只是在</font><font FACE="宋体"
SIZE="3">Response</font><font SIZE="3">对象的</font><font FACE="宋体" SIZE="3">Cookies</font><font
SIZE="3">集合中简单的定义多个名称就可以了。不过,许多浏览器对一个指定网站就限定了三到四个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">创建多个</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">还有一种选择,就是创建一个</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">字典,那么一个</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">字典中就可以含有多个键值对,下面是这么一个字典的例子:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">Response.Cookies(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">User</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">)(</font><font
SIZE="3">“</font><font FACE="宋体" SIZE="3">Name</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3">)=</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">Bill
Gates</font><font SIZE="3">”</font><font FACE="Tms Rmn" SIZE="3"></p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">Response.Cookies(</font><font SIZE="3">“</font><font FACE="宋体"
SIZE="3">User</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">)(</font><font
SIZE="3">“</font><font FACE="宋体" SIZE="3">Password</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3">)=</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">billions</font><font
SIZE="3">”</font><font FACE="Tms Rmn" SIZE="3"></p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这个脚本创建了一个名为</font><font
FACE="宋体" SIZE="3">User</font><font SIZE="3">的</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">字典,其中含有两个键分别是</font><font FACE="宋体" SIZE="3">Name</font><font
SIZE="3">和</font><font FACE="宋体" SIZE="3"> Password</font><font SIZE="3">,当这么</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">字典创建时,请求的</font><font
FACE="宋体" SIZE="3">Header</font><font SIZE="3">中是这样的信息:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">Set-Cookie:User=Name=Bill+Gates&Password=billions</p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">一个名字为</font><font FACE="宋体"
SIZE="3">User</font><font SIZE="3">的</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">创建了,其中含有两个键值对,这意味着所有的键和相应的值都在一个大的</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">中。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">接受这样的</font><font FACE="宋体"
SIZE="3">Cookie</font><font SIZE="3">值,你还可以利用以前的</font><font
FACE="宋体" SIZE="3">Response</font><font SIZE="3">对象的</font><font FACE="宋体"
SIZE="3">Cookies</font><font SIZE="3">集合,既可以将其全部显示,</font><font
FACE="宋体" SIZE="3">(</font><font SIZE="3">这样显示就是没有经过解码的</font><font
FACE="宋体" SIZE="3">Header</font><font SIZE="3">中的源代码,也就是上面</font><font
FACE="宋体" SIZE="3">Header</font><font SIZE="3">中的信息,这样一般都是用于调试工作)也可以按每一个键的相应名称显示相应值,如下例,无须解释结果:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><%=Request.Cookies(</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">User</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">)
%></p>
<p ALIGN="JUSTIFY"><%=Request.Cookies(</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">User</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">)(</font><font
SIZE="3">“</font><font FACE="宋体" SIZE="3">Name</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3">)%></p>
<p ALIGN="JUSTIFY"><%=Request.Cookies(</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">User</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">)(</font><font
SIZE="3">”</font><font FACE="宋体" SIZE="3">Name</font><font SIZE="3">”</font><font
FACE="宋体" SIZE="3">)%></p>
</font><font SIZE="3"><b>
<p ALIGN="JUSTIFY">注意</p>
</b></font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">利用</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">技术传递诸如密码这样的信息要特别小心,因为一般说来,这种信息是未经加密的,当然,如果你的网站有安全接口层技术,也可以进行加密传输,但是在浏览器端该信息还是存放在文本文件中。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">如果希望知道一个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">是否是一个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">字典,可以用</font><font
FACE="宋体" SIZE="3">HasKeys</font><font SIZE="3">属性,例如下面脚本如果返回值为</font><font
FACE="宋体" SIZE="3">True</font><font SIZE="3">,那么就是一个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">字典。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><%=Request.Cookies(</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">User</font><font SIZE="3">”</font><font FACE="宋体" SIZE="3">).HasKeys
%></p>
</font>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -