第5章ASP对象本章主要讲解:Response、Request对象常用属性与方法Application对象存储数据及其事件和方法Session对象在Web程序设计中的应用Server对象的属性与方法5.1ASP对象概述对象是基于特定模型,所提供的服务是通过由一组方法或相关函数的接口来访问对象的数据,客户端可以调用这些方法来执行某种操作。5.1ASP对象概述ASP提供了可在脚本中使用的内建对象。使用这些对象编写的ASP脚本可帮助Web服务器收集浏览器请求发送的信息、响应浏览器的请求、存储用户信息,从而使对象开发者摆脱很多烦琐的工作。5.1ASP对象概述(1)Application对象:是用来存储一个应用中所有用户共享的信息。(2)Request对象:是用来访问所有从客户端浏览器发送给服务器的信息(3)Response对象:是用来将服务器端的信息发送给客户端浏览器。。(4)Server对象:提供许多服务器端的应用函数。(5)Session对象:5.2Application对象5.2.1Application对象变量的定义与使用Application对象可以产生一个在整个Web应用程序中都可以存取的变量,这个变量的范围涵盖全部的使用者,只要正在使用这个网页程序的联机用户都可以存取这个变量5.2Application对象Application对象的应用场合:Ø一个application变量可以用来在每个主页上显示动态信息,。ØApplication可以用来记录广告条被点击的时间和次数。ØApplication可以从数据库中读取数据。Ø一个Application变量可以用来统计目前上站人数。Ø一个application变量可以用于网站上不同用户间的通讯。5.2Application对象Application对象变量的产生方式与Session对象一样。都只要先设定一个变量名称,并给一个初值即可,如下所示:Application(“变量”)=值例如:Application(online_count)=1005.2.2Application对象的方法1.Lock方法Lock方法可以阻止其他客户修改存储在Application对象中的变量,以确保在同一时间内仅有一个客户可修改和存取Application变量。使用语法如下:Application.Lock5.2.2Application对象的方法2.Unlock方法Unlock方法可以使其他客户端在使用Lock方法锁定Application对象并修改存储在该对象中的变量后,使用该方法来解除对Application对象变量的锁定。使用语法如下:Application.Unlock5.2.2Application对象的方法其中为Application对象定义了一个名为NumVists的变量,每当网页被访问一次,该变量的值就加1:%Application.LockApplication(NumVisits)=Application(NumVisits)+1Application.Unlock%这个应用程序网页已被访问了%=Application(NumVisits)%次!5.2.3Application对象的事件1.Application_OnEnd事件Application_OnEnd事件在应用程序退出时并在Session_OnEnd事件之后发生,只有Application和Server内嵌对象可用。其定义语法如下:SCRIPTLANGUAGE=ScriptLanguageRUNAT=ServerSubApplication_OnEnd...EndSub/SCRIPT5.2.3Application对象的事件2.Application_OnStart事件Application_OnStart事件在首次创建新的会话(即Session_OnStart事件)之前发生。只有Application和Server内嵌对象是可用的。在Application_OnStart事件脚本中引用Session、Request或Response对象都将导致错误。其语法如下:SCRIPTLANGUAGE=ScriptLanguageRUNAT=ServerSubApplication_OnStart...EndSub/SCRIPT5.2.4Application对象的集合集合是存储字符串、数字、对象和其它值的地方。1.contents集合Contents是由所有通过脚本命令添加到应用程序的项目组成的集合。2.StaticObjects集合StaticObjects集合包含所有的在Application对象范围中使用OBJECT标记创立的对象。5.3Session对象可以使用Session对象存储特定用户会话所需的信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。htmlheadtitleSession.SessionID示例/title/headbodycenterh2Session.SessionID示例/h2hr%response.write(您此次会话的SessionID值为)response.write(b&CStr(Session.SessionID)&b)%/center/html5.3.1Session变量的使用Session变量是同一用户在不同页面之间的数据共享。声明会话对象的语句如下:Session(“变量名”)=值可在一个页面中建立一个Session级变量,在另一个网页中访问这个Session级变量。5.3.2Session对象属性1.SessionID属性SessionID属性返回用户的会话标识符2.Timeout属性Timeout属性,可用来限制Session对象的生存时间。5.3.2Session对象属性3.CodePageCodePage属性决定将被用以显示动态内容的代码页。CodePage的语法如下:Session.CodePage(=CodePage)4.LCIDLCID属性决定用于显示动态内容的位置标识。LCID的语法如下:Session.LCID(=LCID)5.3.2Session对象属性5.3.2Session对象的方法Session对象只有一个方法,就是有Abandon方法,使用Abandon方法可删除所有存储在Session对象中的变量,并释放这些对象的资源。下面示例将释放Session对象资源:%Session.Abandon%5.3.3Session对象的事件Global.asa文件中的内容如下所示:SCRIPTLANGUAGE=VBScriptRUNAT=ServerSubSession_OnStartEndSub/SCRIPTSCRIPTLANGUAGE=VBScriptRUNAT=ServerSubSession_OnEndEndSub/SCRIPT5.3.3Session对象的事件1.Session_OnStart事件Session_OnStart事件在服务器创建新会话时发生。2.Session_OnEnd事件Session_OnEnd事件在会话被放弃或超时发生。在关闭服务器时会被作为关闭过程的一部分被执行。5.3.4Session对象的集合Session对象有两个集合:Contents集合和StaticObject集合。1.Contents集合包括所有未使用OBJECT标记而为该会话建立的项目。使用的语法如下:Session.Contents(key)5.3.4Session对象的集合2.StaticObject集合StaticObjects集合包含Session对象中用OBJECT标记创建的所有对象。该集合可用于确定对象特定属性的值,或用于遍历集合并获取所有对象的全部属性。使用语法如下:session.staticObjects(Obj)5.4Request对象Request对象包含了关于获取ASP要执行的HTTP请求的所有信息。Request对象包括了客户端的相关信息,例如,浏览器的种类、表头信息、表单信息、Cookie等等。5.4.1Request对象的集合1.QueryString集合当在HTML中的Form使用Get方法传送数据时,所提交的数据不是被单独发送,而是被附在查询字符串(QueryString)中,一起被提交到服务器端指定的文件中。QueryString集合的使用语法如下:Request.QueryString(参数)[(索引)|.Count]5.4.1Request对象的集合2.Form集合1)遍历Form集合Form集合通过使用POST方法的表格检索传送到HTTP请求正文中的表单元素的值。当使用HTTP的GET方法去向Web服务器传递长而复杂的表单值时,可能丢失信息。5.4.1Request对象的集合2.Form集合2)Form集合的多值访问在某些情况下,Form集合中的各个成员可能不只一个值,这种情况发生在HTML定义中有几个表单元素有相同Name属性时。5.4.1Request对象的集合例如:FORMaction=test.aspmethod=POSTid=form1name=form1INPUTtype=textname=text1INPUTtype=textname=text1INPUTtype=textname=text1INPUTtype=textname=text1INPUTtype=submitvalue=提交name=submit1/FORM5.4.1Request对象的集合3.ServerVariables集合ServerVariables集合包含了两种值的结合体,一种是随同页面请求而从客户端发送到服务器的HTTP报头中的值,另外一种是由服务器在接收到请求时本身所提供的值。5.4.1Request对象的集合4.Cookie集合ServerVariables集合包含了两种值的结合体,一种是随同页面请求而从客户端发送到服务器的HTTP报头中的值,另外一种是由服务器在接收到请求时本身所提供的值。其使用语法如下:Request.Cookies(cookie)[(key)|.attribute]5.5Response对象Response对象是用来访问服务器端所创建的、并送回到客户端浏览器的响应信息。它为程序脚本提供HTTP变量,用来指明服务器、服务器的功能、发送给客户端浏览器的内容信息等。htmlheadtitleRESPONSE对象示例/title/headbodycenter%dimiFORi=1to7Response.Write(fontsize=&i&)Response.Write(网上商店)Response.Write(/font)Response.Write(br)NEXT%/center/body/html5.5.1Response对象属性1.Buffer属性Buffer属性指出是否允许缓冲页输出。如果为true,则Response的内容要写入缓冲区,当脚本处理完或者调用了Flush或End方法后再发给客户。5.5.1Response对象属性2.ContentType属性ContentType属性指定响应的HTTP内容类型。如果未指定ContentType,其默认值为text/HTML。设置方法如下:Response.ContentType=text/html5.5.1Response对象属性3.Charset属性Charset属性将字符集名称附加到Response对象中的content-type头信息后面。可以在.asp文件中指定content-type头信息,如:%Response.Charset=gb2312)%将产生以下