asp与sql网页数据库程序设计09.docx

上传人:b****5 文档编号:3408999 上传时间:2022-11-22 格式:DOCX 页数:37 大小:388.14KB
下载 相关 举报
asp与sql网页数据库程序设计09.docx_第1页
第1页 / 共37页
asp与sql网页数据库程序设计09.docx_第2页
第2页 / 共37页
asp与sql网页数据库程序设计09.docx_第3页
第3页 / 共37页
asp与sql网页数据库程序设计09.docx_第4页
第4页 / 共37页
asp与sql网页数据库程序设计09.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

asp与sql网页数据库程序设计09.docx

《asp与sql网页数据库程序设计09.docx》由会员分享,可在线阅读,更多相关《asp与sql网页数据库程序设计09.docx(37页珍藏版)》请在冰豆网上搜索。

asp与sql网页数据库程序设计09.docx

asp与sql网页数据库程序设计09

9

Response,Request对象的基础与应用

9-1 Response对象的基础与应用

9-2 Request对象的基础与应用

9-3 Session对象的基础与应用

9-4 Application对象的基础与应用

9-5 Global.asa对象的基础与应用

ActiveServerPage属于面向对象程序语言(ObjectOrientedLanguage)的一种,它提供了五个重要内建对象供程序设计人员使用。

当程序设计人员在使用对象时,无需了解各对象内部复杂的传递及运算过程,这也是面向对象程序设计的好处之一。

以下是这五种ASP对象的名称与简述对照表。

表9-1ASP对象的名称与简述

对 象 名 称

功 能 简 述

Response

用来传输信息到客户端流览器

Request

可用来读取客户端流览器的信息

Server

提供一些WebServer端的相关信息

Session

用来存储不同用户的信息

Application

用来存储所有用户共享的信息

9-1Response对象

ASP程序中的Response对象,主要功能是将ASP程序执行的结果输出到浏览器。

对于Response对象而言,Write,End和Redirect三种方法大约占了80%的应用,其他方法和属性的使用率并不会超过整体应用的20%。

以下是Response对象的语法以及“集合”、“属性”、“方法”的详细说明:

Response对象的语法:

Response.collection|property|method

1.集合(Collection)

在Response对象中属于集合的只有“Cookies”一种。

对于Cookies而言,有一点是非常重要的,Cookies的写入只有在任何数据输出到浏览器之前才能发挥它的作用。

同样,Cookies也有其专用的属性,如表9-2所示。

表9-2Cookies属性说明

属性

说  明

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变量将会检查它是否已经被更新过,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&"
")

'直接输出字符串

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:

03:

04:

05:

EX09-1.ASP

06:

07:

08:

<%

09:

DimStrings

10:

Strings="ActiveServerPages与SQL2000的应用"

11:

'输出变量

12:

Response.Write(Strings&"
")

13:

'直接输出字符串

14:

Response.Write("ActiveServerPages与SQL2000的应用
")

15:

%>

16:

<%=Strings%>

17:

18:

程序说明

第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文件,如下所示:

Response.Redirect("../EX10/EX10-1.asp")

Response.Redirect("")

上述两行程序代码中,第一行所指的是转到相同网站上的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方法在实际应用上的作用。

程序内容

01:

<%

02:

Response.Buffer=True

03:

%>

04:

--EX09-2.asp转到其他的网页或ASP程序-->

05:

06:

07:

08:

EX09-2.asp转到其他的网页或ASP程序

09:

10:

11:

<%Response.Redirect"EX09-3.asp"%>

12:

13:

程序说明:

第2行:

如果网站是PWS或IIS4,用户就必须加上缓冲区的设置。

有关详细缓冲区的详细信息,将在后面章节中详细说明。

第11行:

直接将执行后的网页重定向到EX09-3.asp。

程序内容:

01:

--EX09-3.aspResponse.Redirect网页转向范例-->

02:

<%

03:

Response.Buffer=True

04:

%>

05:

06:

07:

08:

EX09-3.aspResponse.Redirect网页转向范例

09:

10:

11:

12:

Response.Redirect转向范例

13:

14:

15:

16:

这是ASP对象中的Response.Redirect方法的范例

17:

用途是将当前的网页内容转到其他的网页或ASP程序

18:

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之后的程序没有执行,后半段程序的文字就没有继续输出。

程序内容:

01:

--EX09-4.aspResponse.End中断程序代码执行的范例-->

02:

03:

04:

05:

EX09-4.aspResponse.End中断程序代码执行的范例

06:

07:

08:

09:

10:

中断程序代码执行的范例

11:

12:

13:

14:

这是ASP对象中的Response.End方法的范例

15:

<%

16:

Response.End

17:

%>

18:

用途是中断当前ASP程序代码的执行

19:

20:

21:

22:

程序说明

第10~14行:

示范文字。

第16行:

使用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写入方式,将会在下一个范例中为用户展示。

程序内容:

01:

<%

02:

Response.Cookies("MySite")="MySiteCookies"

03:

%>

04:

--EX09-5.aspResponse.Cookies的写入执行范例-->

05:

06:

07:

08:

EX09-5.aspResponse.Cookies的写入执行范例

09:

10:

11:

12:

程序说明:

第2行:

本行程序代码将会在客户端写入一个名为“MySite”的Cookies变量,同时此变量的内容为“MySiteCookies”。

在浏览器执行上述程序代码时,并不会在客户端确实留下Cookies的相关信息,这是因为用户并未指定这个Cookies的有效期限,因此,这个Cookies的有效期仅限于当前这个会话期(Session)。

当这个程序执行结束时,Cookies的内容也就跟着消失。

如果用户希望将这个Cookies的内容确实写入客户端,用户就必须指定这个Cookies的有效期限。

根据上述程序代码的修改范例如下所示:

<%

Response.Cookies("MySite")="MySiteCookies"

Response.Cookies(“Mysite”).Expires=“2001/07/30”

%>

程序范例:

EX09-6.asp

这是个错误的Cookies写入范例,笔者在此不提供详细的说明,请读者自行参考程序代码的内容,再参照先前的说明就会明白产生错误的原因,如图9-6所示。

图9-6错误的Response.Cookies写入范例

程序内容:

01:

<%

02:

Response.Buffer=false

03:

%>

04:

--EX09-6.asp错误的Response.Cookies写入范例-->

05:

06:

07:

08:

EX09-6.asp错误的Response.Cookies写入范例

09:

10:

11:

这是Response.Cookies("MySite")错误的写入范例

12:

<%

13:

Response.Cookies("MySite")="MySite"

14:

%>

15:

16:

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(名称)[

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1