9Response,Request对象的基础与应用9-1Response对象的基础与应用9-2Request对象的基础与应用9-3Session对象的基础与应用9-4Application对象的基础与应用9-5Global.asa对象的基础与应用ASP与SQL网站数据库程序设计248ActiveServerPage属于面向对象程序语言(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|method1.集合(Collection)在Response对象中属于集合的只有“Cookies”一种。对于Cookies而言,有一点是非常重要的,Cookies的写入只有在任何数据输出到浏览器之前才能发挥它的作用。同样,Cookies也有其专用的属性,如表9-2所示。表9-2Cookies属性说明属性说明Expires指定Cookies存放在客户端浏览器的有效期限,格式为“yyyy/mm/dd”Domain指定只有在进入该网时,Cookies的值才有效第9章Response,Request对象的基础与应用249续表属性说明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对象的方法说明方法说明AddHeaderAddHeader会在网页中加入HTML的标头以及一个数值,必须在任何网页标记被送出之前使用AddHEaderASP与SQL网站数据库程序设计250续表方法说明AppendToLog在一次请求中,对主机端的记录文件附加一段最多80个字符的字符串至记录文件中,在使用这项变量中,不能在字符串中使用逗号BinaryWrite将信息以二进制的形式送到HTTP输出通道。如果用户有一个自行开发的应用程序必须在客户端执行,并且该程序是利用HTTP通道与服务器作通信用时,使用这个方法相当有用Clear使用这个方法会将当前在HTML缓冲区里的Response的信息内容全部清除,但是它不会清除HTML的标头部分,通常是在错误状态下使用这个方法End立即停止当前正在处理的.ASP文件,并且将会返回当前缓冲区里的所有信息,如果用户不想返回任何信息,请先使用Clear,再使用End这个方法Flush立即将当前缓冲区里所有信息送至客户端Redirect将客户端浏览器的网页立即引至新的网页/程序上Write以HTML的形式将信息写入到当前网页,一般来说,用户能够将用户的HTML写在%及%符号之外,或是使用%=变量%来作同样的事情,不过Write方法特别适用于子程序或函数的内部9-1-1Write方法的基础与应用首先,笔者先介绍有关Response.Write方法。Response.Write方法可以在ASP程序的执行过程中,将任何数据类型输出到浏览器上显示。换句话说,输出的内容可以是字符串、HTML标记或变量,而且无论变量的内容是什么,都是以字符串的形式输出到浏览器上,如下所示:'输出变量的内容Strings=“ActiveServerPages与SQL2000的应用”Response.Write(Strings&br)'直接输出字符串Response.Write(ActiveServerPages与SQL2000的应用br)上述程序以变量或是字符串的方式将结果输出到浏览器上,其输出的字符串内含HTML标记。此外Response.Write方法还有另外一种方法,如下所示:%=Strings%第9章Response,Request对象的基础与应用251上述“%=”、“%”符号间就是输出Strings变量的内容,这属于Response.Write方法另一种程序编写方式。程序范例:Ch9-1.asp在ASP程序中,使用三种Response.Write方法,将文字输出到浏览器上,并且显示输出的内容,如图9-1所示。图9-1“Ex09-1.asp”范例程序的执行结果上述图例虽然输出的字符串相同,但是第一行为输出变量值,第二行直接输出字符串和标记,最后则使用“%=”和“%”符号输出变量内容。程序内容01:!--范例程序:EX09-1.asp--02:HTML03:HEAD04:METANAME=GENERATORContent=MicrosoftVisualStudio6.005:TITLEEX09-1.ASP/TITLE06:/HEAD07:BODY08:%09:DimStrings10:Strings=ActiveServerPages与SQL2000的应用11:'输出变量ASP与SQL网站数据库程序设计25212:Response.Write(Strings&br)13:'直接输出字符串14:Response.Write(ActiveServerPages与SQL2000的应用br)15:%16:%=Strings%br17:/body18:/html程序说明第9行:定义变量Strings。第10行:设置字符串变量Strings的内容。第12行:使用Response.Write方法输出变量的内容,并且使用字符串连接运算符结合HTML标记。第14行:使用Response.Write方法直接输出字符串及HTML标记。第16行:使用“%=”、“%”符号输出字符串变量Strings。9-1-2Redirect方法的基础与应用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在地址栏输入“”,如图9-2所示。第9章Response,Request对象的基础与应用253图9-2在地址栏输入“”当用户按下Enter键之后,用户可以看到网页内容已经改为EX09-3.asp,并非是EX09-2.asp的内容,如图9-3所示。图9-3直接由ex09-2.asp跳到09-3.asp的画面由上面的演示,即可发现Response.Redirect方法在实际应用上的作用。程序内容01:%02:Response.Buffer=True03:%04:!--EX09-2.asp转到其他的网页或ASP程序--05:HTML06:HEAD07:METANAME=GENERATORContent=MicrosoftVisualStudio6.008:TITLEEX09-2.asp转到其他的网页或ASP程序/TITLE09:/HEAD10:BODYASP与SQL网站数据库程序设计25411:%Response.RedirectEX09-3.asp%12:/BODY13:/HTML程序说明:第2行:如果网站是PWS或IIS4,用户就必须加上缓冲区的设置。有关详细缓冲区的详细信息,将在后面章节中详细说明。第11行:直接将执行后的网页重定向到EX09-3.asp。程序内容:01:!--EX09-3.aspResponse.Redirect网页转向范例--02:%03:Response.Buffer=True04:%05:HTML06:HEAD07:METANAME=GENERATORContent=MicrosoftVisualStudio6.008:TITLEEX09-3.aspResponse.Redirect网页转向范例/TITLE09:/HEAD10:BODYALIGN=CENTER11:FONTSIZE=612:Response.Redirect转向范例13:/FONT14:HRWIDTH=85%15:FONTSIZE=516:这是ASP对象中的Response.Redirect方法的范例BR17:用途是将当前的网页内容转到其他的网页或ASP程序18:/FONT19:/BODY20:/HTML程序说明:这个程序可以说是纯HTML文件,其内容仅仅为单纯网页内容的显示。第9章Response,Request对象的基础与应用255因此笔者在此不多做说明。9-1-3END方法的基础与应用ASP程序主要是使用Response.Write方法输出网页内容,如果程序需要中断输出,只需在程序的断点插入Response.End方法即可,其程序代码如下:‘其他的程序代码Response.End‘其他的程序代码当程序执行到上述代码时,Response.End方法之后的程序代码或HTML标记就不会执行或显示,如果设置为使用缓冲区,此方法就会将缓冲区的内容送到浏览器。程序范例:EX09-4.asp在ASP程序中插入Response.End代码,则只输出此代码前的网页内容,如图