ASP的内置对象一、组件、对象、属性、方法、集合、事件对象(Object):•在面向对象编程中,对象就是指由当作完整实体的操作和数据组成的变量。比如:窗体、浏览器、表单等都是一种对象。•对象是基于特定模型的,在对象中客户使用对象的服务通过由一组方法或相关函数的接口访问对象的数据,然后客户端可以调用这些方法执行某中操作。组件:•组件是包含在动态链接库.dll或可执行文件.exe中的可执行代码。组件可以提供一个或多个对象以及对象的方法和属性。要使用组件提供的对象,就要创建对象的实例并将这个新的实例分配变量。•ActiveX组件是建立Web应用程序的关键,组件提供了在脚本中执行任务的对象。ActiveX组件是一个文件,该文件包含执行某项或一组任务的代码,由于组件可以执行公用任务,这样程序员们就不必自己去创建执行这些任务的代码。可以利用组件作为脚本和基于Web应用程序的基本构造块。只要知道如何访问组件提供的对象,即使是位编写脚本的新手,也可以在不了解组件运作方式的情况下编写脚本。总之,组件使您不用学习编程就能够编写强大的脚本。•使用ASP的Server.CreateObject方法可以创建对象的实例,使用脚本语言的变量分配指令可以为对象实例命名。如下例:Setdb=Server.CreateObject(ADODB.Connection)这里的变量db就是ASP程序创建的访问数据库的对象实例。属性(Property):•属性是用来描述对象的特性。比如:窗体对象的外观、名称等存取对象的属性可以使用:ObjectName.PropertyName方法(Method):•方法是用来执行对象的动作,如窗体对象的打开、关闭等。使用对象的方法可以使用:ObjectName.Method集合(Collection):•集合是指一群放在一起的“值”(Value)。事件(Event):•事件是指在特定情况下发生的一种行为。比如:在按下鼠标会产生一个鼠标事件(onclick),关闭窗体会产生退出窗体事件(onUnload)等。组件、对象、属性、方法、集合、事件组件、对象、属性、方法、集合、事件之间的关系组件对象属性方法集合事件子对象二、ASP的内置对象•ASP提供了可在脚本中使用的内建对象。这些对象使用户更容易收集通过浏览器请求发送的信息、响应浏览器以及存储用户信息,从而使对象开发者摆脱了很多烦琐的工作。•目前的ASP版本总共提供了七个内建对象,他们包括:Response对象用来决定何时或如何将输出由服务器端传送至浏览器端。Request对象用来获取由浏览器端返回服务器端的数据。Application对象记录浏览器端共享的变量。Session对象记录浏览器端专用的变量。Server对象提供服务器端最基本的属性和方法。ObjectContext用来链接ASP和MicrosoftTransactionServer。ASPError对象取得Script发生错误的信息(IIS5.0才支持此对象)。1、Response对象•Response对象是用来控制发送给用户的信息,包括直接发送信息给浏览器、重定向浏览器到另一个URL或设置cookie的值。语法:Response.collection|property|methodproperty——Response对象的属性method——Response对象的方法collection——Response对象的集合**Response对象没有事件Response属性1、Buffer属性Buffer属性指示是否缓冲页输出。当缓冲页输出时,只有当前页的所有服务器脚本处理完毕或者调用了Flush或End方法后,服务器才将响应发送给客户端浏览器,服务器将输出发送给客户端浏览器后就不能再设置Buffer属性。因此应该在.asp文件的第一行调用Response.Buffer。Response属性•2、Charset属性Charset属性将字符集名称附加到Response对象中content-type标题的后面。对于不包含Response.Charset属性的ASP页,content-type标题将为:content-type:text/html。我们可以在.asp文件中指定content-type标题,如:%Response.Charset=gb2312%将产生以下结果:content-type:text/html;charset=gb2312注意,无论字符串表示的字符集是否有效,该功能都会将其插入content-type标题中。且如果某个页包含多个含有Response.Charset的标记,则每个Response.Charset都将替代前一个CharsetName。这样,字符集将被设置为该页中Response.Charset的最后一个实例所指定值。Response属性•3、ContentType属性ContentType属性指定服务器响应的HTTP内容类型。如果未指定ContentType,默认为text/HTML。•4、Expires属性Expires属性指定了在浏览器上缓冲存储的页距过期还有多少时间。如果用户在某个页过期之前又回到此页,就会显示缓冲区中的页面。如果设置response.expires=0,则可使缓存的页面立即过期。这是一个较实用的属性,当客户通过ASP的登陆页面进入WEB站点后,应该利用该属性使登陆页面立即过期,以确保安全。Response属性•5、ExpiresAbsolute属性与Expires属性不同ExpiresAbsolute属性指定缓存于浏览器中的页面的确切到期日期和时间。在未到期之前,若用户返回到该页,该缓存中的页面就显示。如果未指定时间,该主页在当天午夜到期。如果未指定日期,则该主页在脚本运行当天的指定时间到期。如下示例指定页面在1998年12月10日上午9:00分30秒到期。%Response.ExpiresAbsolute=#Dec12,19989:00:30#%Response对象的方法•1、Clear可以用Clear方法清除缓冲区中的所有HTML输出。但Clear方法只清除响应正文而不清除响应标题。可以用该方法处理错误情况。但是如果没有将Response.Buffer设置为TRUE,则该方法将导致运行时错误。•2、EndEnd方法使Web服务器停止处理脚本并返回当前结果。文件中剩余的内容将不被处理。如果Response.Buffer已设置为TRUE,则调用Response.End将缓冲输出。•3、FlushFlush方法立即发送缓冲区中的输出。如果没有将Response.Buffer设置为TRUE,则该方法将导致运行时错误。Response对象的方法•4、RedirectRedirect方法使浏览器立即重定向到程序指定的URL。这也是一个我们经常用到方法,这样程序员就可以根据客户的不同响应,为不同的客户指定不同的页面或根据不同的情况指定不同的页面。一旦使用了Redirect方法任何在页中显式设置的响应正文内容都将被忽略。如:%Response.redirect(URL)%其中URL是传递给该方法的值。若URL=。在这个URL中可以使用相对地址,也可以使用绝对地址。如:Response.redirect(“newpage.asp”)•5、WriteWrite方法是我们平时最常用的方法之一,它是将指定的字符串写到当前的HTTP输出。如:Response.Write“今天是”&Date()此语句会将今天的日期输出到浏览器。Response对象的集合•Response对象只有一个集合——Cookies集合Cookies集合设置cookie的值。若指定的cookie不存在,则创建它。若存在,则设置新的值并且将旧值删去。•语法:Response.Cookies(cookie)[(key)|.attribute]=value•这里的cookie是指定cookie的名称。而如果指定了key,则该cookie就是一个字典。attribute指定cookie自身的有关信息。attribute参数可以是下列之一:•Domain若被指定,则cookie将被发送到对该域的请求中去。•Expires指定cookie的过期日期。为了在会话结束后将cookie存储在客户端磁盘上,必须设置该日期。若此项属性的设置未超过当前日期,则在任务结束后cookie将到期。•HasKeys指定cookie是否包含关键字。•Path若被指定,则cookie将只发送到对该路径的请求中。如果未设置该属性,则使用应用程序的路径。Response对象使用示例示例1:CH04/ChangeBG.asp%@Language=VBScript%%OptionExplicit%HTML%DimWeekDay,BG,WeekDayNameWeekDay=DatePart(w,Date())'取得今天是星期几SelectCaseWeekDayCase1BG=BG1.gifWeekDayName=星期日(SUN)Case2BG=BG2.gifWeekDayName=星期一(MON)Case3BG=BG3.gifWeekDayName=星期二(TUE)Case4BG=BG4.gifWeekDayName=星期三(WED)Case5BG=BG5.gifWeekDayName=星期四(THU)Case6BG=BG6.gifWeekDayName=星期五(FRI)Case7BG=BG7.gifWeekDayName=星期六(SAT)ENDSelect%BODYBACKGROUND=%Response.Write(BG)%FONTFACE=幼圆SIZE=4P今天为%Response.Write(Date())%%=WeekDayName%/PP今天的背景图片为BI%=BG%/I/B/P/FONT/BODY/HTMLResponse对象使用示例•示例2:CH04/saple1.asp%@Language=VBScript%HTMLBODY%Response.Write(BI文渊阁工作室/I/B)Response.WriteBRResponse.WriteBI文渊阁工作室/I/BResponse.WriteBRResponse.WriteHRALIGN=LeftWIDTH=70%\Response.WriteAHREF=default.htm回首页/AResponse.WriteBRResponse.WriteAHREF='default.htm'回首页/AResponse.WriteBRResponse.Write(Server.HTMLEncode(HRALIGN=LeftWIDTH=70%\))%/BODY/HTML使用Write方法时应注意的几个问题•在示例中给出了使用Write方法时应注意的几个问题:1.括号可以省略;2.当%和%之间只有一行Response.Writeexpression语句时可以简写成:%=expression%,如:%Response.WriteNow()%或%=Now()%。3.当要显示的信息包含“%”符号时应写成“%\”,否则,“%”符号会被当做ASP代码的结尾。如:Response.Write“HRAlign=leftWidth=70%\”。4.可以混合使用HTML标记。如:Response.Write“H1快快乐乐H1BR”5.当要显示的信息包含”符号时应写成“”或‘。如:Response.WriteAHREF=default.htm回首页/AResponse.WriteAHREF='default