Transcript Document

第8章 应用程序与会话
主要内容
• 在ASP中,为了保存与应用程序有关的
一些公共信息,设置了应用程序对象;
又为了保存访问应用程序的各用户的一
些个人信息,设置了会话对象。本章主
要讨论:
–
–
–
–
–会话级变量的使用
应用程序的概念
应用程序级变量的使用 –会话对象的属性和事件
应用程序对象的事件 –什么是Cookie
–怎样使用Cookie
会话的概念
本章目录
8.1 应用程序对象
8.1.1 创建新的应用程
序
8.1.2 应用程序级变量
8.1.3 应用程序对象的
事件
8.2 会话对象
8.2.1 会话
8.2.2 会话级变量
8.2.3 会话对象的属性
和方法
8.2.4 会话对象的事件
方式发送的信息
8.3 使用Cookie
8.3.1 什么是Cookie
8.3.2 写入Cookie
8.3.3 读出Cookie
8.3.4 使用字典
8.3.5 Cookie的属性
8.3.6 检测浏览器Cookie
的启用状态
本章小结
习题
8.1 应用程序对象
• 基于Web方式的应用程序是指在一个目录下的
一组网页文件,及网页文件中所有引用的其它
文件的集合。
• ASP内置的Application对象,称为应用程序对
象,它封装了有关应用程序的全部信息,通过
它,可以实现让所有访问该站点的用户共享某
些信息。
• 以下分别讨论:
– 8.1.1 创建新的应用程序
– 8.1.2 应用程序级变量
– 8.1.3 应用程序对象的事件
8.1.1 创建新的应用程序
• NT上的每个应用程序都属于某个站点,
你可以先创建一个站点,再在该站点中
创建新的应用程序。
• 为了建立站点和应用程序,你可以先新
建两个目录,一个作为站点的起始目录,
另一个作为应用程序的起始目录,后者
物理上可包含在前者之中。
• 所有的网页文件将放在作为应用程序的
目录中。
1. 创建Web站点
•在NT上建立站点及站点中的应用程序的操
作过程如下:
打开ISM(Internet Server Manager)。显示
如图所示。
1. 创建Web站点
右击计算机名,选择添加=>Web站点。显示如
图:
1. 创建Web站点
单击下一步,输入站点说明(如网上教室),如图
所示:
1. 创建Web站点
单击下一步,选择站点的IP地址(在NT中可
以为一台机器设置多个IP地址),显示如图:
1. 创建Web站点
单击下一步,选择主目录(它将作为站点
的起始目录,)如图所示。
1. 创建Web站点
单击下一步,选择访问权限,如图所示。
1. 创建Web站点
完成后单击窗口中的启动按钮,启动该站点,
结果如图所示。
1. 创建Web站点
注意:为了验证书中各例,你并不需要创建
新的Web站点,只须使用默认Web站点即可。
2. 创建应用程序
右击站点名称,选择添加,虚拟目录,通过
向导依次输入虚拟目录别名,它将作为应用
程序的名称,如图所示。
2. 创建应用程序
选择目录路径,作为应用程序的起始目录,
如图所示。单击下一步,选择权限后完成。
3. 在PWS中创建虚拟目录
在Windows 98中,通过PWS也可以创建一个
基于Web的应用程序,只需要创建一个虚拟
目录指向存放一组网页文件的目录即可。
具体操作过程如下:
创建一个子目录,用于作为应用程序的
起始目录。如C:\newApp。
3. 在PWS中创建虚拟目录
双击状态栏上的个人Web管理器图标,打开
个人Web管理器窗口,选择高级,显示如
图 :
3. 在PWS中创建虚拟目录
单击添加,显示添加虚拟目录对话框,如
图 :
3. 在PWS中创建虚拟目录
单击“浏览”,选择目录,如C:\newApp,
这一目录是实际存放网页文件的目录,它可
以是本机上的任意目录。
3. 在PWS中创建虚拟目录
别名框中输入虚拟目录的别名,它将作为应
用程序的名称,可以由数字、字母或中文符
号构成。选中“执行”复选框,这样你的网
页中就可以使用各种应用程序和扩展控件。
如图所示。
3. 在PWS中创建虚拟目录
单击确定,关闭对话框。可看到已经建立的
虚拟目录。如图所示。
3. 在PWS中创建虚拟目录
• 注意:在单击“添加”按钮时,要注意
当前选中的是哪个目录,否则,可能建
立的虚拟目录包含在其它虚拟目录中,
给访问带来麻烦。
• 另外,同一组文件可以创建不同的虚拟
目录,从而构成不同的应用程序。
8.1.2 应用程序级变量
• 应用程序级变量是用于记录应用程序一
级的信息的公共变量,如应用程序的点
击次数,应用程序的版权信息等。它是
访问应用程序的各用户间实现交换信息
的重要手段。以下分别讨论:
1.变量的定义
2.锁定应用程序对象
3.变量的使用
1.变量的定义
• 定义应用程序级变量的形式如下:
Application(“变量名”)=值
• 其中变量名可以是一般的符号串。值可
以是字符串或数值。例如:
Application(“Hitcount”)=1000
2.锁定应用程序对象
• 为了控制由于并发访问而可能产生的错
误,在ASP中为Application对象设计了Lock
和Unlock这两个方法。使用格式如下:
Application.Lock
Application.Unlock
• 使用Application 对象的Lock方法后,其
它用户若要修改Application对象的值,则
只能等待。而Unlock方法则允许其他用户
修改Application对象的值。
3.变量的使用
• 有了Application对象的Lock和Unlock方法
后,就可以改变应用程序级变量的值了。
如将一个名为“abc”的应用程序级变量加1,
可写成形式如下:
Application.Lock
Application(“abc”)=Application(“abc”)+1
Application.Unlock
使用举例(1)
• 网页点击计数
网页被访问一次或刷
<%@ language=VBScript%>
新一次,变量加一
<html><body>
<%
Application.lock
Application("NumHits")=Application("NumHits")+1
Application.unlock
%>
<p align="center"><font size="+3">
欢迎光临<br>
本页被点击过<u><%=Application("Numhits")%></u>次!
</font></p>
</body></html>
显示变量值
使用举例(1)
• 为了验证本例中的代码,有条件的可以
在两台不同的机器上访问该网页。一般
情况可以打开两个浏览器窗口,并分别
输入如下地址:
Localhost/L8_1.asp
127.0.0.1/L8_1.asp
交替刷新后观察结果。
使用举例(1)
• 为了测试本例的代码,你可以先单击
“第一种地址”按钮,等出现浏览器窗
口后,通过最小化回到本窗口。
• 再单击“第二种地址”按钮,完成后,
用Alt+TAB键切换到浏览器窗口,或通过
停止放映后,再切换到浏览器窗口观察
效果。
第一种地址
第二种地址
使用举例(2)
• 显示所有应用程序变量
<%@ language=VBScript%>
<html><body>
<%Application("MyFirst")="你好!"%>
<%Application("MySecond")="欢迎你到我们主页!"%>
< % Application.contents("MyEnd")=" 希 望 能 很 快 地 再 见 到
你!"%>
<table width="100%" border="1">
<tr align="center">
<td width="50%"><b>变量名</b></td>
<td width="50%"><b>变量值</b></td>
</tr>
使用举例(2)
• 显示所有应用程序变量
<%for each item in Application.contents%>
<tr align="center">
<td width="50%"><%=item%></td>
<td width="50%"><%=Application.contents(item)%></td>
</tr>
<%next%>
</table>
应用程序的变
</body></html>
量集合
使用举例(2)
• 代码中,使用了一个for each循环,逐
个输入Application对象的contents集合
中的所有元素的名称和对应的值。浏览
结果如图所示。
单击测试
8.1.3 应用程序对象的事件
• 系统为应用程序对象设计了两个事件,即
Application_onStart 和 Application_onEnd 通
过编写相应的事件过程,可以实现必要的
控制。 以下分别讨论:
1.应用程序开始事件Application_OnStart
2.应用程序结束事件Application_OnEnd
3.Global.asa文件
1.应用程序开始事件
• 应用程序的开始事件是在应用程序起始
目录下的第一个文件被浏览器访问时发
生的,通过这一事件过程,我们可以为
一些应用程序级变量设置初值。
• 形式如下:
Sub Application_OnStart
‘应用程序启动时所需执行的一些初始化操作
代码
End Sub
1.应用程序开始事件
• 例如:若要将应用程序级变量“NumHits”
初始化为0,可使用如下的事件过程。
Sub Application_OnStart
Application.lock
Application(“NumHits”)=0
Application.Unlock
End Sub
2.应用程序结束事件
• 当网站被关闭时,将发生应用程序的结
束事件,可以利用这一事件过程,来保
存应保存的一些信息,如当前的点击次
数、访问者个数等,以便下次开机后装
入。这一事件过程的一般形式:
Sub Application_OnEnd
‘在应用程序结束时需执行的代码放在这里
End Sub
3.Global.asa文件
• 在ASP中,为了存放以上各事件过程,专
门设计了一个特殊的文件,名字为
“Global.asa”,当应用程序开始时,该
文件内容将被装入内存,这一文件的格
式为:
<Script Language=VBScript RUNAT=Server>
相应的事件过程
</Script>
表示在服务器
上运行
3.Global.asa文件
• 将点击次数初始化为10000的global.asa
文件。
<Script Language=VBScript RUNAT=Server>
Sub Application_OnStart
Application.lock
Application(“NumHits”)=10000
Application.Unlock
End Sub
</Script>
3.Global.asa文件
• 为了验证本例中的内容,可以先为子目
录8下面的L8_3创建一个虚拟目录,设名
为LL,这样就可以使用如下地址访问:
Localhost\LL\L8_1.asp
单击测试
注意:如果你修改了Global.asa的内
容,应该为这一目录创建另一个名
称的虚拟目录,否则该文件不被重
新装入内存。
3.Global.asa文件
• 虚拟目录创建后,所在位置和其中包含
的文件如图:
8.2 会话对象
• 会话对象能封装用户和服务器在一次会
话期间的一些信息,用于保存用户的一
些个人信息。以下分别讨论:
–
–
–
–
8.2.1 会话
8.2.2 会话级变量
8.2.3 会话对象的属性和方法
8.2.4 会话对象的事件
8.2.1 会话
• 当用户打开浏览器窗口,并输入一个合理
的地址,一个会话就创建了,其后,请求
的同一应用程序中的不同网页,都属于同
一个会话。
• 当服务器确认浏览器窗口已关闭,则会话
结束。
• 若浏览器窗口的内容由于长时间的不更新,
超过了失效时间,也会自动结束会话。
8.2.2 会话级变量
•会话级变量用于保存用户会话一级的个人
数据。访问同一网页的不同用户,会话级
变量有不同的取值。
• 要在网页中定义一个会话级变量,可使用
如下形式:
session(“变量名”)=值
• 例如:
session(“xm”)= “张三”
8.2.2 会话级变量
•由于会话级变量是私有的,不会因为同一
网页可能被同时访问而造成错误,所以和
应用程序级变量不同,要改变会话变量的
值,不需要进行锁定操作。
•对会话变量numhits进行加1操作可写成:
session(“numhits”)=session(“numhits”)+1
•可以使用session对象的contents集合设
置和读取会话级变量的值,形式如下:
session.contents(“numhits”)
会话级变量使用例
•显示当前设置的所有会话级变量
<%
session("username")="xwl"
session.contents("numhits")=100
for each item in session.contents
response.write
item
&
"="
session.contents(item) &"<BR>"
next
%>
&
会话级变量使用例
•为了验证本例中的代码,输入并保存文件
到指定目录,打开浏览器输入地址,显示
结果会如图所示。
单击测试
会话级变量使用例
•在没有关闭浏览器窗口时,试着修改文件
中 的 代 码 , 如 可 以 将 “ username” 改 为
“un”,保存后刷新浏览器窗口,观察其中
的变化。
•若先关闭浏览器窗口,再修改文件内容,
观察其中的区别。
8.2.3 会话对象的属性和方法
• ASP内置的会话对象sessione有一些属性,
通过读取这些属性值,可以了解和会话
有关的一些信息,另外,通过对某些属
性的设置,可以为用户会话创建一个较
合适的环境。
• 会话对象有如下主要的属性:
1.CodePage属性
3.SessionID属性
2.LCID属性
4.Timeout属性
1.CodePage属性
• session对象的CodePage属性用于设定使用的服
务器代码页。一旦在网页中设置了某一代码页,
则以后内容将使用该代码页中的字符显示。
• 形式如下:
session.codepage=936
• 其中:936使用gb2312字符集
• 也可以在网页开始位置使用如下形式的一行指
定缺省的代码页。
<% @CODEPAGE = 936 %>
2.LCID属性
• LCID是Local indentifier(本地标识符)
的缩写,常见的值有3081(澳大利亚英
语)、4105(加拿大英语)、2057(英
国英语)、1033(美国英语)、1036
(法语)、1031(德语)、1041(日
语)、1049(俄语)等。该属性设置不
同的值会影响日期时间的显示形式。
3.SessionID属性
• SessionID属性返回当前会话的标识值,
只要Web服务器没有重新启动,该值是连
续编号的。通过该属性,可以很方便地
判断出是否产生了新的会话。
4.Timeout属性
• Timeout属性用于设定应用程序会话状态
的超时时限。
• 当网页打开后,由于用户长时间不发出
新的请求,会话过程会自动终止,通过
设置Timeout属性的值,可以指定在考虑
终止会话之前等待用户的时间。
会话对象的属性使用例
•会话标识和超时时间
<%
session.timeout=1
response.write "本会话的标识值为:" &
session.SessionID
%>
•设置会话的超时值为1分钟,并显示当前
会话的标识值。
会话对象的属性使用例
•使用如图所示的两种方式打开窗口会得到
不同的结果。
第一种地址
第二种地址
8.2.4 会话对象的事件
• Session对象也具有开始和结束事件。当用户第
一次请求ASP页时,发生开始事件;当会话超时
或调用Abandon方法时,发生结束事件。
• Session对象的开始和结束事件过程也是放在文
件Global.asa中,形式如下:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
‘执行的语句
End Sub
Sub Session_OnEnd
‘执行的语句
End Sub
</SCRIPT>
会话对象举例
• 网页的点击次数(本例需编辑两个文件)
• (1)Global.asa
<Script Language=VBScript RUNAT=Server>
Sub Application_OnStart
Application.lock
Application("numhits")=0
Application.Unlock
End Sub
Sub Session_OnStart
session("SessionHits")=0
End Sub
</Script>
会话对象举例
•网页的点击次数(本例需编辑两个文件)
•(2)asp文件
<%
Application.lock
Application("numhits")=Application("numhits")+1
Application.unlock
session("SessionHits")=session("SessionHits")+1
%>
本网页的点击次数是:<%=Application("numhits")%><BR>
在本会话期间的点击次数是:<%=session("SessionHits")%>
会话对象举例
•验证本例时,同样应为相应目录创建虚拟目录,
设为djcs,再以几种方式打开,结果如图:
第一种地址
第二种地址
会话对象举例
•记录访问者个数 (本例需编辑两个文件)
•(1)Global.asa
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
Application.Lock
Application("User")=0
Application.UnLock
End Sub
Sub Session_OnStart
Application.Lock
Application("User")=Application("User")+1
session("User")=Application("User")
Application.Unlock
End Sub
</Script>
会话对象举例
•网页的点击次数(本例需编辑两个文件)
•(2)asp文件
你 是 本 站 的 第 < % = session("User")%> 位 访 问 者
<BR>
目前本站的总用户数为:
<%=Application("User")%>
会话对象举例
•验证本例时,同样应为相应目录创建虚拟目录,
设为fwcs,再以几种方式打开,结果如图:
第一种地址
第二种地址
8.3 使用Cookie
• 当服务器接到一个用户请求时,常常希望知道
该用户最近是否访问过本网站的其它网页,为
此,浏览器的制造商提出了一种叫作cookie的
概念。
–
–
–
–
–
–
8.3.1 什么是Cookie
8.3.2 写入Cookie
8.3.3 读出Cookie
8.3.4 使用字典
8.3.5 Cookie的属性
8.3.6 检测浏览器Cookie的启用状态
8.3.1 什么是Cookie
• Cookie是一些在客户端和服务器之间交换的小
段信息,用于标识在服务器上请求多个页的客
户。
• Cookie有两种形式:会话cookie和永久cookie。
前者是临时性的,只在浏览器打开时存在;后
者则永久性地存在于客户的硬盘上,并且在指
定过期日期之前一直可用。
• 由服务器将Cookie信息发送给浏览器或写入到
浏览器端的硬盘中,其后,浏览器在向一些网
站提出访问请求时将同时携带cookie信息。
8.3.2 写入Cookie
1. 写入Cookie
• 使用response对象的cookies集合,可以方
便地将cookie信息发送到客户端。形式如下:
response.cookies(“名称”)=值
• 例如:
response.cookies(“xm”)= “张三”
8.3.2 写入Cookie
•浏览器将没有过期设置的cookie保存在内
存中。若要写入客户端的硬盘中,必须设
置cookie的过期时间,形式如下:
response.cookies(“名称”).Expires=日期值
写入Cookie举例
•网页内容
<%@language=VBScript%>
<%response.cookies("xm")="张三"
response.cookies("xm").expires=Date+365%>
<html><body>
<p><font size="+3">cookie设置完成</font></p>
</body></html>
•例中设置了一个名称为“xm”的Cookie,它的值
为“张三”,并设置该cookie的失效时间为365
天,即一年。
8.3.2 写入Cookie
2. 观察Cookie文件
•从windows\Cookies目录中可以找到所有
保存在客户端的cookie文件。
•Cookie被保存成简单的文本文件(扩展名
为txt),其名称由用户名和Web站点名组
成。
•Cookie文件的内容包括:域名、过期时间、
安全信息以及路径信息。
8.3.2 写入Cookie
•打开文件后可以看到一些文字信息和一些
不可读的字符和数据。上例中生成的
Cookie文件内容如图所示。
“xm”为设置的
Cookie名称,
“%D5%C5%C8%Fd”为
该Cookie的值
8.3.3 读出Cookie
•可以使用request对象的Cookies集合来读取
已经设置的Cookie值,形式如下:
<%=request.Cookies(“名称”)%>
•同样,可以使用循环来读取所有已经设置
的Cookie内容。
读出Cookie举例
•显示所有的Cookie
<%
response.cookies("username")="xwl"
%>
<html><body>
存放所有cookie的
目前有如下Cookies存在:<BR>
集合
<%
for each item in request.cookies
response.write item & "=" & request.cookies(item) &
"<BR>"
next
%>
</body></html>
读出Cookie举例
•验证本例时可先运行前一例,浏览结果如
图:
单击运行前一例
单击测试
8.3.4 使用字典
• 有时,希望同时保存多个内容,如用户
的姓名、口令等,这时,如果使用多个
Cookie,则在逻辑意义上显得不完整,
对此,在ASP中可以使用字典型Cookie,
即在一个Cookie中存放多个值,而用不
同的关键字来识别不同的内容。
• 字典的使用形式如下:
response.cookies(“名称”)(“关键字”)=值
8.3.4 使用字典
•例如:
response.cookies(“user”)(“name”)=”张三”
response.cookies(“user”)(“password”)=”abc”
•为了让字典型Cookie长期保存在客户端磁
盘上,也要设置一个失效时间,形式如下:
response.cookies(“名称”).Expires=日期值
•对于字典,在读出时也要使用类似的形式:
request.cookies(“名称”)(“关键字”)
使用字典举例
•把来自表单的输入信息写入到Cookie中
<% if request.servervariables("CONTENT_LENGTH")<>0 then
xm=request.form("username")
写入名为“user”的
kl=request.form("password")
字典型cookie中,
response.cookies("user")("xm")=xm
response.cookies("user")("kl")=kl
response.cookies("user").expires=dateadd("m",1,Now())
response.write "提交的姓名和口令已保存"
else
%>
<html><body>
<H2>请输入下列信息</H2>
使用字典举例
•把来自表单的输入信息写入到Cookie中
<form
action="<%=request.servervariables("SCRIPT_NAME")%>"
method="POST">
用户姓名:<input type="text" name="username"><BR>
口令:<input type="password" name="password"><BR>
<input type="submit" value="提交">
</form>
</body></html>
调用自身来接收表单中
<% end if %>
输入的信息,
使用字典举例
•本例网页第1次被访问时,将显示一个表
单供用户填写信息,如图所示
使用字典举例
•当用户填写内容后提交时,显示“提交的
姓名和口令已保存”,如图所示。
单击测试
•浏览后可用前例
代码显示结果
单击运行前一例
8.3.5 Cookie的属性
• Request对象的Cookies集合有以下属性
可供使用:
1.Expires属性
2.Domain属性
3.Path属性
4.Secure属性
5.HasKeys属性
1.Expires属性
• 该属性指出写入到客户端硬盘上的
cookie信息什么时间失效,即什么时间
之后,用户来访问该站点时,不再携带
该cookie信息。
2.Domain属性
• 当服务器有多个域时,通过此属性指出
用户访问哪个域时携带该Cookie信息。
3.Path属性
• 同Domain属性类似,通过此属性指出用
户访问哪个路径下的文件时才携带该
Cookie信息。
• 注意:这里的路径是区分大小写的。
4.Secure属性
• Secure属性指出Cookie本身是否加密
5.HasKeys属性
• 当既有单个cookie,又有字典型cookie
的情况下,通过该属性可以得到某一指
定名称的cookie是否是字典的信息。
属性使用举例
• 检索所有的Cookie
<% @LANGUAGE = VBScript %>
如果不是字
<% Option Explicit %>
典显示单个
<html><body>
cookie
<%
Dim cookie, key
For Each cookie In Request.Cookies
If Not Request.Cookies(cookie).HasKeys Then
Response.Write
cookie
&
"
=
"
&
Request.Cookies(cookie) & "<br>"
是字典时对
Else
每个关键字
For Each key In Request.Cookies(cookie)
循环输出
Response.Write cookie
属性使用举例
• 检索所有的Cookie
Response.Write
Response.Write
Response.Write
Response.Write
Next
End If
Next
%>
</body></html>
"(" & key & ")"
" = "
Request.Cookies(cookie)(key)
"<br>" & vbCrLf
显示字典中对
cookie的名称,
关键字和值
属性使用举例
• 为了验证本例,应该首先运行前面几例
的脚本,最后再运行本例。结果如图:
运行前面例子
运行前面例子
测试本例
8.3.6 检测浏览器Cookie的启用状态
• 要正确使用Cookie,需要正确设置浏览
器的相应属性。本小节来讨论以下有关
内容:
1.禁止写入cookie
2.检查客户端的cookie启用状态
1.禁止写入cookie
• 客户可以通过设置,不让服务器将Cookie
写入到硬盘。设置过程如下:
(1) 在浏览器的菜
单中找到Internet选
项,或右击桌面上的
浏览器图标,选择属
性。
1.禁止写入cookie
(2)选择安全选项卡,显示结果如图所示。
在低版本的浏览器
上,设置Cookie的
启用状态在高级选
项卡中。
1.禁止写入cookie
(3)单击自定义
级别按钮,在出
现的对话框中选
择,禁止存储在
计算机上的
Cookies和禁止
每个会话
Cookies。
1.禁止写入cookie
(4)单击确定,
显示确认对话框
后,单击图中的
应用,并关闭窗
口。
2.检查客户端的cookie启用状态
• 当客户端设置成不允许写入cookie时,
许多网页可能不能正常浏览,为此,必
须告诉客户不能浏览的原因。这里,需
要首先检测出客户端是否启用了cookie。
• 由于会话级变量是通过cookie来实现的,
可以通过先设置一个会话级变量,再读
取该变量来判断客户端是否启用了
cookie。
2.检查客户端的cookie启用状态
• 网页内容
<% @LANGUAGE = VBScript %>
<% Option Explicit %>
检查会话变量是否设置,条
<%
件为真时表示第1次访问或
Dim strQS
客户不接受Cookies
Response.Expires = 0
If Session("Cookies") <> "set" then
strQS = Request.ServerVariables("QUERY_STRING")
If Request.QueryString("try") = "Cookie" Then
strQS = Mid(strQS,Len("try=Cookie&")+1)
If strQS <> "" Then
条件为真表示不是
strQS = "?" & strQS
End If
第1次访问
%>
2.检查客户端的cookie启用状态
• 网页内容
<html><body>
你的浏览器是不接受cookies,但本站点需要使用Cookie.
<BR>
请重新设置后
<a href="<%=Request.ServerVariables("SCRIPT_NAME")
& strQS %>">
单击这里</a>
重新调用自身
</body></html>
<%
Response.End
Else
设置会话变
Session("Cookies") = "set"
量
If strQS <> "" Then
strQS = "?try=Cookie&" & strQS
2.检查客户端的cookie启用状态
• 网页内容
Else
strQS = "?try=Cookie"
End If
Response.Redirect
Request.ServerVariables("SCRIPT_NAME") & strQS
End If
End If
重定向到自身
%>
<html>
<body bgcolor=#ffffff>
你的浏览器是接受cookies的!
</body></html>
2.检查客户端的cookie启用状态
• 浏览结果
若浏览器接受cookies的,则显示如图:
2.检查客户端的cookie启用状态
• 浏览结果
若浏览器不接受cookies的,则显示如图:
测试本例
本章小结
•本章讨论了应用程序的概念、应用程序的
创建,以及如何使用应用程序级变量来保
存访问该应用程序的各个用户间共享的一
些信息。
•另外,为了设置应用程序开始时的一些初
始状态,以及保存应用程序结束时需要保
存的一些信息,本章中讨论了应用程序对
象的事件。
本章小结
•为了保存用户访问某一应用程序期间的一
些个人信息,以便在应用程序的各网页间
传递,本章中讨论了会话对象,介绍了会
话的概念、会话的开始和结束标志,会话
级变量的使用方法。
•同样,为了设置会话开始时的一些初始状
态和保存会话结束时的一些状态,本章讨
论了会话的有关事件。
本章小结
• Cookie是客户端和服务器间传递的小段
信息,它能较好地识别客户,记录与客户
有关的信息,但客户端可能认为它是不安
全的而关闭该功能。为此,本章中讨论了
用网页识别客户端是否启用了Cookie。
习 题
1.从例8-3执行结果,你看出session(“numhits”)
和session.contents(“numhits”)完全等价吗?
2.试验证以下形式的代码:
<% @CODEPAGE = 936 %>
<% session("userlanguage")="中文"
session.codepage=1252
session.contents("numhits")=100
for each item in session.contents
response.write item & "=" & session.contents(item)
&"<BR>"
next %>
结果是什么?如果把第1行的%>和第2行的<%删
除,结果会怎样。
习 题
3.请分析,例8-12中测试的是会话型
cookie,还是永久cookie。