asp与sql网页数据库程序设计09Word下载.docx
《asp与sql网页数据库程序设计09Word下载.docx》由会员分享,可在线阅读,更多相关《asp与sql网页数据库程序设计09Word下载.docx(37页珍藏版)》请在冰豆网上搜索。
属性
说 明
Expires
指定Cookies存放在客户端浏览器的有效期限,格式为“yyyy/mm/dd”
Domain
指定只有在进入该网时,Cookies的值才有效
续表
Path
指定浏览器的网页必须在指定的路径下,该Cookies才允许被读取
2.属性(Properties)
在Response对象中共有四个属性,以下是这些属性的内容。
表9-3Response对象的属性说明
说明
Buffer
当Buffer被设置为true时(通常是在.ASP文件的最前面完成的),整个网页会在结果送回客户端之前处理完毕。
换句话说,所有在网页里面的脚本在处理完毕之后,才会将结果送回客户端浏览器上显示。
当设为false时,则编译即发送
ContentType
指定即将开始被送至客户端浏览器的信息种类,默认值是text/HTML。
举例来说,如果它被设为text/gif,那么送出去的文件数据将会被解释成gif格式的图形文件
用来决定暂存在客户端的网页其时间的长短,并且Expires变量将会检查它是否已经被更新过,Expires数字以秒为单位。
“0”表示该网页被设置为不会暂存在客户端浏览器中,另一种的替代方法是使用ExpiresAbsolute属性来指定该网页精确的到期日以及时间
Status
一个用来显示状态的三位数字。
这些状态码都已经被定义在HTTP规格之中
3.方法(Methods)
在Response对象中共有八种方法。
使用这些方法可以为用户提供更便于创建网页的方法。
表9-4Response对象的方法说明
方法
AddHeader
AddHeader会在网页中加入HTML的标头以及一个数值,必须在任何网页标记被送出之前使用AddHEader
AppendToLog
在一次请求中,对主机端的记录文件附加一段最多80个字符的字符串至记录文件中,在使用这项变量中,不能在字符串中使用逗号
BinaryWrite
将信息以二进制的形式送到HTTP输出通道。
如果用户有一个自行开发的应用程序必须在客户端执行,并且该程序是利用HTTP通道与服务器作通信用时,使用这个方法相当有用
Clear
使用这个方法会将当前在HTML缓冲区里的Response的信息内容全部清除,但是它不会清除HTML的标头部分,通常是在错误状态下使用这个方法
End
立即停止当前正在处理的.ASP文件,并且将会返回当前缓冲区里的所有信息,如果用户不想返回任何信息,请先使用Clear,再使用End这个方法
Flush
立即将当前缓冲区里所有信息送至客户端
Redirect
将客户端浏览器的网页立即引至新的网页/程序上
Write
以HTML的形式将信息写入到当前网页,一般来说,用户能够将用户的HTML写在<
%及%>
符号之外,或是使用<
%=变量%>
来作同样的事情,不过Write方法特别适用于子程序或函数的内部
9-1-1 Write方法的基础与应用
首先,笔者先介绍有关Response.Write方法。
Response.Write方法可以在ASP程序的执行过程中,将任何数据类型输出到浏览器上显示。
换句话说,输出的内容可以是字符串、HTML标记或变量,而且无论变量的内容是什么,都是以字符串的形式输出到浏览器上,如下所示:
'
输出变量的内容
Strings=“ActiveServerPages与SQL2000的应用”
Response.Write(Strings&
"
<
br>
"
)
直接输出字符串
Response.Write("
ActiveServerPages与SQL2000的应用<
上述程序以变量或是字符串的方式将结果输出到浏览器上,其输出的字符串内含HTML标记。
此外Response.Write方法还有另外一种方法,如下所示:
%=Strings%>
上述“<
%=”、“%>
”符号间就是输出Strings变量的内容,这属于Response.Write方法另一种程序编写方式。
程序范例:
Ch9-1.asp
在ASP程序中,使用三种Response.Write方法,将文字输出到浏览器上,并且显示输出的内容,如图9-1所示。
图9-1“Ex09-1.asp”范例程序的执行结果
上述图例虽然输出的字符串相同,但是第一行为输出变量值,第二行直接输出字符串和标记,最后则使用“<
%=”和“%>
”符号输出变量内容。
程序内容
01:
<
!
--范例程序:
EX09-1.asp-->
02:
HTML>
03:
HEAD>
04:
METANAME="
GENERATOR"
Content="
MicrosoftVisualStudio6.0"
>
05:
TITLE>
EX09-1.ASP<
/TITLE>
06:
/HEAD>
07:
BODY>
08:
%
09:
DimStrings
10:
Strings="
ActiveServerPages与SQL2000的应用"
11:
'
输出变量
12:
Response.Write(Strings&
13:
14:
Response.Write("
ActiveServerPages与SQL2000的应用<
15:
%>
16:
17:
/body>
18:
/html>
程序说明
第9行:
定义变量Strings。
第10行:
设置字符串变量Strings的内容。
第12行:
使用Response.Write方法输出变量的内容,并且使用字符串连接运算符结合HTML标记。
第14行:
使用Response.Write方法直接输出字符串及HTML标记。
第16行:
使用“<
”符号输出字符串变量Strings。
9-1-2 Redirect方法的基础与应用
Response.Redirect方法可以在执行ASP程序时,直接将网页重定向到其他的网址或网站,其他网页或ASP程序。
使用这个方法会将当前的URL转到其他的网页,因此在执行此方法后,相关的命令或是HTML标记将不会显示,如下所示:
Response.Redirect("
EX09-1.asp"
当ASP程序执行到上述程序时,会放弃此行后面所接的相关程序,并且转而执行网站上相应目录下的“EX09-1.asp”。
同时对于Response.Redirect的参数而言,允许使用完整的URL网址或同一个网站相对路径,并且也可以是HTML文件,如下所示:
../EX10/EX10-1.asp"
上述两行程序代码中,第一行所指的是转到相同网站上的EX10子目录下,并且执行该子目录下的EX10-1.asp程序,第二行则是将当前网页直接转到其他网站的首页。
EX09-2.asp
在地址栏输入“http:
//localhost/ex09/EX09-2.asp”,如图9-2所示。
图9-2在地址栏输入“http:
//localhost/ex09/09-2.asp”
当用户按下Enter键之后,用户可以看到网页内容已经改为EX09-3.asp,并非是EX09-2.asp的内容,如图9-3所示。
图9-3直接由ex09-2.asp跳到09-3.asp的画面
由上面的演示,即可发现Response.Redirect方法在实际应用上的作用。
Response.Buffer=True
--EX09-2.asp转到其他的网页或ASP程序-->
EX09-2.asp转到其他的网页或ASP程序<
%Response.Redirect"
EX09-3.asp"
/BODY>
/HTML>
程序说明:
第2行:
如果网站是PWS或IIS4,用户就必须加上缓冲区的设置。
有关详细缓冲区的详细信息,将在后面章节中详细说明。
第11行:
直接将执行后的网页重定向到EX09-3.asp。
程序内容:
--EX09-3.aspResponse.Redirect网页转向范例-->
EX09-3.aspResponse.Redirect网页转向范例<
BODYALIGN=CENTER>
FONTSIZE=6>
Response.Redirect转向范例
/FONT>
HRWIDTH="
85%"
FONTSIZE=5>
这是ASP对象中的Response.Redirect方法的范例<
BR>
用途是将当前的网页内容转到其他的网页或ASP程序
19:
20:
这个程序可以说是纯HTML文件,其内容仅仅为单纯网页内容的显示。
因此笔者在此不多做说明。
9-1-3 END方法的基础与应用
ASP程序主要是使用Response.Write方法输出网页内容,如果程序需要中断输出,只需在程序的断点插入Response.End方法即可,其程序代码如下:
‘其他的程序代码
Response.End
当程序执行到上述代码时,Response.End方法之后的程序代码或HTML标记就不会执行或显示,如果设置为使用缓冲区,此方法就会将缓冲区的内容送到浏览器。
EX09-4.asp
在ASP程序中插入Response.End代码,则只输出此代码前的网页内容,如图9-4所示。
图9-4Response.End中断程序代码的执行范例
由上图可知,在Response.End之后的程序没有执行,后半段程序的文字就没有继续输出。
--EX09-4.aspResponse.End中断程序代码执行的范例-->
EX09-4.aspResponse.End中断程序代码执行的范例<
CENTER>
FONTSize=6>
中断程序代码执行的范例
ALIGN="
center"
FONTSIZE=3>
这是ASP对象中的Response.End方法的范例<
Response.End
用途是中断当前ASP程序代码的执行
/CENTER>
21:
22:
第10~14行:
示范文字。
使用Response.End方法中断网页的输出。
第18行:
这是不会输出的HTML文件内容。
9-1-4 Cookies的基础与应用
ASPResponse对象中的Cookies主要是在客户端浏览器上,存储一些网站上的相关信息。
例如,保存用户访问本网站的次数,以下是Response.Cookies程序代码的范例:
Response.Cookies(“MySite”)
上述代码主要是将存放于用户端的Cookies内容显示在浏览器上。
并且在显示的同时,将只显示变量名称为“Mysite”的内容。
EX09-5.asp
图9-5Cookies的写入范例
在此,用户可以看到整个浏览器的内容是空的,同时并没有出现错误信息。
事实上,当Cookies写入到客户端时,浏览器并不会做出任何响应,这是因为Cookies的写入是在任何的文字(包含HTML的标题)输出到浏览器之前。
如果用户是在程序的中间才写入Cookies,最好能够确定在写入之前没有任何文字输出到浏览器,否则客户端将会得到一个错误的响应信息。
有关错误的Cookies写入方式,将会在下一个范例中为用户展示。
Response.Cookies("
MySite"
)="
MySiteCookies"
--EX09-5.aspResponse.Cookies的写入执行范例-->
EX09-5.aspResponse.Cookies的写入执行范例<
本行程序代码将会在客户端写入一个名为“MySite”的Cookies变量,同时此变量的内容为“MySiteCookies”。
在浏览器执行上述程序代码时,并不会在客户端确实留下Cookies的相关信息,这是因为用户并未指定这个Cookies的有效期限,因此,这个Cookies的有效期仅限于当前这个会话期(Session)。
当这个程序执行结束时,Cookies的内容也就跟着消失。
如果用户希望将这个Cookies的内容确实写入客户端,用户就必须指定这个Cookies的有效期限。
根据上述程序代码的修改范例如下所示:
Response.Cookies("
Response.Cookies(“Mysite”).Expires=“2001/07/30”
%>
EX09-6.asp
这是个错误的Cookies写入范例,笔者在此不提供详细的说明,请读者自行参考程序代码的内容,再参照先前的说明就会明白产生错误的原因,如图9-6所示。
图9-6错误的Response.Cookies写入范例
Response.Buffer=false
--EX09-6.asp错误的Response.Cookies写入范例-->
EX09-6.asp错误的Response.Cookies写入范例<
这是Response.Cookies("
)错误的写入范例
9-1-5 服务器缓冲区处理
Response对象的属性主要用于控制输出的数据类型和缓冲区,这一节先来讨论缓冲区的处理问题。
1.ASP缓冲区的用途
Web服务器在解释ASP脚本的过程中,可以选择将结果立即输出到客户端的浏览器上,或是将结果存放在缓冲区之中,等到所有的ASP脚本执行完毕之后,才将完整的结果输出到浏览器上。
以下所列的是三种将ASP的执行结果送到浏览器的处理方法。
2.ASP程序代码完全解释完成之后
执行到Response.End方法时,将会中断ASP程序的执行,并且将已经解释的部分送到浏览器上显示。
执行到Response.Flush方法时,立即将缓冲区的内容送出。
Response对象另外提供了Clear方法可以清除缓冲区的内容,将当前已经输出的缓冲区的数据都清除掉。
3.设置是否使用缓冲区
Response.Buffer属性可以设置ASP程序在输出时,是否使用缓冲区,以下是在ASP的不同版本上,缓冲区的默认值列表,如表9-5所示。
表9-5缓冲区的默认值列表
ASP版本
Buffer默认值
Web服务器
2.0
False
PWS/IIS4.0
3.0
True
IIS5.0
在ASP2.0中,如果需要使用缓冲区,请在ASP程序开头设置Buffer属性,其值为True,如下所示:
Response.Buffer=True
下面笔者以EX09-6.asp为例,仅将第2行中的“False”改为“True”。
因此,对于程序代码的内容将不提供详细的说明。
图9-7应用缓冲区的范例执行结果
以上所述多半是Response对象较为常用的方法、属性以及集合。
Response对象所提供的其他内容并非完全没有使用价值,但是就笔者接触ASP程序设计多年的经验,其他的方法、属性以及集合几乎很少使用。
如果本节开始时所介绍的无法满足用户的需求时,用户可以参考微软网站上所公布的相关信息。
9-2Request对象
Request对象与Response对象事实上是相辅相成的。
就上一节的内容而言,Response对象是将ASP程序的执行结果送到浏览器上显示,而Request对象则相反,Request对象可以取得浏览器上相关信息。
Request对象的语法如下:
Response对象的语法:
Request[.collection\property\method](variable)
表9-6是Request对象集合的相关变量。
表9-6Request对象集合的相关变量
变量
ClientCertificate
这些值存放在客户端浏览器的认验证里,它可以激活并且识别存取该网页的授权以及评核工作
Cookies
取得存放在客户端中Cookies的内容
Form
存取用户在窗体中输入的相关字段的值
QueryString
作为数据库查询用的变量值,这个信息通常跟随在URL的“?
”符号之后,一般使用在页面的参数传递中
ServerVariables
关于主机端的相关环境变量
以下是Request对象集合的标准语法范例:
Request.Cookies(“ProductInfo”)
Request.QueryString(“Name”)
另外,用户也可以使用类似快捷方式的方法来存取这些字段。
因此,Request的语法范例也可以被改写为如下所示的程序代码:
Request(“ProductInfo”)
Request(“Name”)
但是在使用这种方法时,虽然简单,但同时也存在相当大的风险。
因为在程序设计过程中,很有可能碰到有两个不同种类的字段但却使用相同的名称。
以下是笔者不建议使用简易的Request语法的原因:
对于ASP默认的脚本语言VBScript而言,寻找变量的种类是按照下列顺序:
QueryString→Form→Cookies→ServerVariables,最后才是ClientCertificate。
当程序运行时,程序设计人员不易区分当前所取得信息的种类。
9-2-1 ClientCertificate变量
ClientCertificate这个变量可以取得客户端浏览器的身份确认信息。
但是希望利用此方法取得客户端浏览器的验证之前,首先必须确认客户端浏览器是否支持SSL3.0或PCT1协议。
假若客户端浏览器尚未具备身份确认信息或WebServer也尚未设置向客户端要求身份确认时,那么ClientCertificate将会返回“EMPTY”值。
9-2-2 Cookies集合
Request对象的Cookies集合是用于读取存放于客户端浏览器上的Cookies内容。
Request对象的Cookies集合与Response对象的Cookies集合的使用时机不相同。
Response对象的Cookies的使用时机限定在送出任何HTML标记之前,而Request对象的Cookies集合则可以灵活地运用在ASP程序代码的任何部分。
最为常用的例子是使用在购物车的设计中或是网站广告上。
以下是Cookies对象的语法:
Request.Cookies(名称)[