1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,本章主要学习,ASP,的高级应用,实现真正的网页交互功能,.,通过本章学习,应该掌握以下内容:,ASP,基础,ASP,的内置对象,各个内置对象的属性和方法,第,11,章 示例网页利用,ASP,实现交互功能,11.1 ASP,基础,11.1.1 ASP,的特点和功能,1,ASP,的特点,使用,VBScript,、,JavaScript,等简单易懂的脚本语言,结合,HTML,代码,即可快速地完成网站的应用程序。,无须编译,可直接解释执行。,使用普通的文本编辑器,即可进行页面的编辑与设计。,独立于浏览器,用户端只
2、要使用可执行,HTML,码的浏览器,即可浏览,ASP,所设计的网页内容。,ASP,能与任何,Activex,Scripting,语言相容。,源程序不会外漏,,ASP,脚本是在服务器上执行,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。,面向对象,具有无限可扩充性。,2,ASP,的功能,从应用角度看,,ASP,具有如下功能:,处理由浏览器传送到服务器的表单输入。,访问和编辑服务器的数据库表。,读写服务器的文件,实现访客计数器等功能。,提供广告轮播器,取得浏览器信息、,URL,表管理等内置功能。,可以实现在多个主页间共享信息。,11.1.2 ASP,对象,ASP,
3、提供了可在脚本中使用的对象。这些对象可分为内置组件以及外挂组件。,1,内置组件,内置组件是指组件本身内置于,ASP,中,使用时不需要设置即可运行。最常用的包括,Application,、,Session,、,Response,、,Request,及,Server5,种。,2,外挂组件,在存取数据库时,最常使用,ADO,(,ActiveX Data Object,),的技术和,ASP,结合,达到存取数据库的功能。这样,在网页上不但可以显示数据库的内容,还可以运行,SQL,语句,让用户可以在网页上对数据进行查询、删除、和新增等等操作。,ADO,主要的,3,个对象为,Connection,、,Rec
4、ordset,及,Command,。,11.2 Request,对象,Request,对象通常包括了用户端的相关信息,如浏览器的种类、表头信息、表单参数及,cookies,等。,Request,对象的语法描述如下:,Request.collection|property|method,(,variable,),1,Request,对象属性(,Property,),Request,对象只提供一个只读的,TotalBytes,属性,它表示从客户端所接收的数据大小。,语法如下:,字节大小,=,Request.TotalBytes,2,Request,对象方法(,Method,),Request,对象
5、提供的,BinaryRead,方法在实际应用上并不是很常用的,它是以二进制方式来读取客户端使用,POST,传递方法所传递的数据。,语法如下:,Variant,数组,=,Request.BinaryRead,(,Cont,),3,QueryString,数据集合,QueryString,数据集合可以取得,HTTP,的附加参数,这些附加参数通常用“?”来表示连接,.,4,Cookies,数据集合,如果要判断某个用户是否曾经进入本网站,只能使用,Cookies,文件。,语法如下:,Cookies Value=Request.,Cookies(CookiesName)(key,)|.Attribute
6、5,Server Variables,数据集合,ServerVariables,数据集合负责取得,Web,服务器端的环境变量,.,6,ClientCertificate,数据集合,Request,对象的,ClientCertificate,数据集合可以让用户取得客户端的身份权限数据,,11.3 Response,对象,Response,对象包含,Web,服务器所要响应给用户的各项信息,。,11.3.1,方法,1,Write,方法,Response,的,Write,方法是负责将字符串信息输出至用户端,其语法如下:,Response.Write,任何数据类型,2,Redirect,方法,Resp
7、onse,的,Redirect,方法是负责引导客户端的浏览器显示新的网页,其语法如下:,Response.Redirect URL,字符串,3,Binary Write,方法,Response,的,Binary Write,方法可以在不作任何转换动作而直接显示二进制数据库给用户,其语法如下:,Response.Binary Write,二进制数据,4,Append,ToLog,Response,的,Append,ToLog,方法允许用户以附加的方式,将用户信息记录至,Web,服务器的记录文件,以便日后追踪与分析,其语法如下:,Response.AppendToLog,“,所要记录的字符串”,5
8、AddHeader,方法,Response,对象的,AddHeader,方法可以允许用户自行设置,HTML,文件的,HTTP,标题(,header,)。,AddHeader,方法的语法如下:,Response.AddHeader,Name,Value,6,Clear,方法,Response,对象的,Clear,方法会清除在缓冲区里的,HTML,输出数据。,7,Flush,方法,Response,对象的,Flush,方法会将缓冲区的数据立即送至服务客户端。,11.3.2,属性,1,CacheControl,属性,Response,对象的,CacheControl,属性值可以,为,Public,
9、或,Private,两种,前者表示,Web,服务器会将,ASP,的处理结果暂时存放于,Proxy,服务器上,后者则不会将数据存放于,Proxy,服务器上。,2,Charset,属性,Response,对象的,Charset,属性可以用来设置,Web,服务器响应给客户端的文件字符编码,.,3,ContentType,属性,Response,对象的,ContentType,属性可以用来设置,Web,服务器响应给客户的,HTTP,文件类型,.,4,Expires,属性,Response,对象的,Expires,属性可以用来设置网页将保留在浏览器的,Cache,中的数据,或是直接从,Web,服务器中重
10、新取得数据。,5,ExpiresAbsolute,属性,Response,对象的,ExpiresAbsolute,属性在功能上于,Expires,属性非常相似,其最大的不同在于前者是以日期时间来设置数据被保留在客户端,Cache,的时间长短,而后者是以保留分钟数来设置的。,6,IsClientConnected,属性,Response,对象的,IsClientConnected,属性是一个只读属性,它可以取得最近一次,Response.Write,之后,客户端是否还是与,Web,服务器保持连接的信息。,7,PICS,属性,Response,对象的,PICS,属性可以设置,PICS,标签到响应的
11、标头,.,8,Status,属性,Response,对象的,Status,属性可以用来设置,Web,服务器响应给服务器端浏览器的状态值。,11.3.3,数据集合,Response,对象只有,Cookies,一个数据集合,,Cookies,数据集合允许用户将数据设置在客户端的浏览器中,假如用户所指定名称的,Cookies,不存在,系统会自动在客户端的浏览器中建立新的,Cookies,,,反之,如果指定的,Cookies,已经存在客户端的浏览器中,那么系统会自动更新数据。其使用语法如下:,Response.Cookies,(,CookiesName,),(,Key,),.Attribute=Coo
12、kies Value,11.4 Server,对象,Server,对象提供对服务器上的方法和属性的方法,其中大多数方法和属性是作为实用程序的功能服务的。语法如下:,Server.property|method,其中,property,表示,Server,对象的属性,,method,表示,Server,对象的方法,。,11.4.1,属性,Server,的属性只有一个,ScriptTimeout,属性,该属性主要是来设置,ASP,程序所允许的最长时间,其设置以“秒”为单位,系统的缺省值为,90,秒。,11.4.2,方法,1,CreateObject,方法,CreateObject,方法允许客户端用
13、户建立一个,ActiveX Server,组件实例,当前,ASP,页处理完成之后,服务器将自动破坏这些实例对象。,2,MapPath,的方法,MapPath,方法可以将指定的虚拟路径转换为真实的路径,这里所谓的虚拟路径是指,Web,服务器所建立的虚拟路径。,3,HTMLEncode,方法,HTMLEncode,方法是对指定的字符串应用,HTML,编码。,4,URLEncode,方法,URLEncode,方法将,URL,编码规则,包括转义字符,应用到指定的字符串中。,11.5 Application,对象,Application,对象是可以让所有用户共同使用的对象。通过,Application,
14、对象的使用,可以让所有用户存取,Application,所设置为同一个名称的变量,让用户可以同时得到某一项信息。,11.5.1,属性,虽然,Application,对象没有内置的属性,但可以设置用户定义的属性也可称为集合。,11.5.2,方法,Application,对象有两个方法,它们都是用于处理多个用户对存储在,Application,中的数据进行写入的问题。,(,1,),Lock,方法禁止当前客户同时修改同样的,Application,应用级变量。,(,2,)和,Lock,方法相反,,Unlock,方法允许其他客户修改,Application,对象的属性。,11.5.3,事件,1,App
15、lication-,OnStart,事件,Application_OnStart,事件在首次创建新的会话(即,Session_OnStart,事件)之前发生。当,Web,服务器启动并允许对应用程序所包含的文件进行请求时就触发,Application_OnStart,事件。,2,Application_On End,事件,Application_OnEnd,事件在应用程序退出时于,Session_OnEnd,事件之后发生,,Application_,OnEnd,事件的处理过程也必须写在,Global.asa,文件之中。,11.6 Session,对象,用户可以使用,Session,对象存储特定的
16、用户会话所需的信息。当用户在应用程序的页之间跳转时,存储在,Session,对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。当用户请求来自应用程序的,Web,页时,如果该用户还没有会话,则,Web,服务器将自动创建一个,Session,对象。当会话过期或被放弃后,服务器将终止该会话。,11.6.1,属性,1,SessionID,SessionID,属性是返回用户的会话标识。,2,TimeOut,Timeout,属性以分钟为单位为该应用程序的,Session,对象指定超时时限。,11.6.2,方法,Session,对象仅有一个方法,即,Abandon,,,该方法删除所有存储
17、在,Session,对象中的对象并释放这些对象的源。,11.6.3,事件,Session,对象有两个事件可用于在,Session,对象启动和释放时运行过程。,(,1,),Session_OnStart,事件在服务器创建新会话时发生。,(,2,),Session_OnEnd,事件在会话被放弃或超时发生。,11.7 Object Context,对象,可以使用,Object Context,对象提交或撤消由,ASP,脚本初始化的事务。该对象用于控制,Active Server Pages,的事务处理。,11.7.1,事件,Object,Context.OnTransactionAbort,由放弃的事务处理事件激发,在脚本完成处理后发生。,Object,Context.OnTransactionCommit,由成功的事务处理事件处理激发,在在脚本完成处理后发生。,11.7.2,方法,Object,Context.SetAbort,显示的放弃一次事务处理。,Object,Context.SetComplete,覆盖前面任何调用,Object,Context.SetAbort,方法的调用。,






