《ASP程序设计教程及实训指导》第10章ASP的内置对象教学目标:了解application、server对象的属性及事件熟练运用它们编写ASP应用程序了解global.asa文件的概念第10章ASP的内置对象《ASP程序设计教程及实训指导》第10章ASP的内置对象第10章ASP的内置对象教学内容:10.1Application对象10.2Server对象10.3ObjectContext对象10.4技能与实训10.5思考与练习《ASP程序设计教程及实训指导》第10章ASP的内置对象10.1Application对象10.1.1Application对象概述Application对象用于存储对所有用户都共享的信息,并可以在Web应用程序运行期间持久地保持数据。所有的用户公用一个Application对象,都可以对Application对象进行修改利用Application对象可以可以创建聊天室、网站计数器等等《ASP程序设计教程及实训指导》第10章ASP的内置对象10.1.2Application对象属性用以下句法设置用户定义的属性也可称为集合:Application(属性/集合名称)=值Application对象的集合有两个:Contents集合:表示没有使用OBJECT元素定义的存储于Application对象中的所有变量(及它们的值)的一个集合StaticObjects集合:表示使用OBJECT元素定义的存储于Application对象中的所有变量(及它们的值)的一个集合《ASP程序设计教程及实训指导》第10章ASP的内置对象10.1.2Application对象属性application.contents(1)=“a”赋值语句和application.contents(“a”)=“a”这个赋值语句功能是一样的。Contents集合还有2个方法:Contents.Remove(“变量名”):从Application.Content集合中删除一个Application变量Contents.RemoveAll():从Application.Content集合中删除所有变量《ASP程序设计教程及实训指导》第10章ASP的内置对象10.1.2Application对象属性适用性:由于存储在Application对象中的数值可以被应用程序的所有用户读取,所以Application对象的属性特别适合在应用程序的用户之间传递信息。《ASP程序设计教程及实训指导》第10章ASP的内置对象10.1.3Application对象方法Application对象有两个方法:1、Lock方法:禁止其他客户修改Application对象的属性。2、Unlock方法:允许其他客户修改Application对象的属性《ASP程序设计教程及实训指导》第10章ASP的内置对象10.1.3Application对象方法[例10-1]用Application对象记录页面被访问的次数htmlheadtitle例10-1/title/headbodybgcolor=lightblue%dimnapplication.lockapplication(n)=application(n)+1application.unlock%《ASP程序设计教程及实训指导》第10章ASP的内置对象10.1.3Application对象方法fontcolor=royalbluesize=4strong欢迎光临本网页/strong/fontpfontcolor=royalbluesize=4strong您是本页的第%=application(n)%位访客/strong/font/p/body/html《ASP程序设计教程及实训指导》第10章ASP的内置对象10.1.3Application对象方法注意:为防止多个用户同时修改存储在Application对象中的变量,在修改Application对象中的变量的时候,我们加了Application.lock方法,以锁定Application对象《ASP程序设计教程及实训指导》第10章ASP的内置对象10.1.4Application对象事件(1)、Application_OnStart当WEB服务器启动并允许对应用程序所包含的文件进行请求时就触发Application_OnStart事件Application_OnStart事件的语法如下:SCRIPTLANGUAGE=ScriptLanguageRUNAT=ServerSubApplication_OnStart...EndSub/SCRIPT《ASP程序设计教程及实训指导》第10章ASP的内置对象10.1.4Application对象事件(2)、Application_OnEndApplication_OnEnd事件在应用程序退出时于Session_OnEnd事件之后发生《ASP程序设计教程及实训指导》第10章ASP的内置对象10.1.4Application对象事件注意的事项:1、不能在Application对象中存储ASP内建对象2、若您将一个数组存储在Application对象中,请不要直接更改存储在数组中的元素《ASP程序设计教程及实训指导》第10章ASP的内置对象10.1.5修改Application变量的值方法:修改Application变量的值,可以直接用赋值符号“=”把值赋给Application变量就可以了。格式如下:application变量=值。问题:当多个客户同时修改application变量时,可能会造成意想不到的错误。那么这时我们就要用到application的两个方法:lock和unlock《ASP程序设计教程及实训指导》第10章ASP的内置对象10.1.6Global.asa文件定义:它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象,专门用来存放全局变量和局部变量原则:该文件的名称必须是Global.asa且必须存放在应用程序的根目录中。每个应用程序只能有一个Global.asa文件。《ASP程序设计教程及实训指导》第10章ASP的内置对象10.2Server对象10.2.1Server对象属性ScriptTimeout:程序能够运行的最大时间原则:Scripttimeout的值要大小要适中。如果Scripttimeout的值太小,则会在连接网页的时候经常出现服务器超时。如果Scripttimeout的值太大,则会浪费资源《ASP程序设计教程及实训指导》第10章ASP的内置对象10.2.2Server对象方法一、CreateObject语法:Server.CreateObject(progID)功能:指定要创建的组件名称要点:一般来说,用由Server.CreateObject方法创建的对象拥有页面的范围.这就说,当这页的asp程序执行完后,这种对象会自动地消失.《ASP程序设计教程及实训指导》第10章ASP的内置对象10.2.2Server对象方法二、Execute语法:Server.Execute(Path)参数:Path,指定执行的那个asp文件的路径。如是它是一个绝对路径,那么它必须是一个在这个ASP应用程序相同的地方(目录)说明:Server.Execute方法提供了一种将一个复杂ASP应用程序分化为小块单位来执行的方法《ASP程序设计教程及实训指导》第10章ASP的内置对象10.2.2Server对象方法[例10-2]用execute方法调用10-1.asp中的内容htmlheadtitle例10-2/title/headbody%server.execute(10-1.asp)%《ASP程序设计教程及实训指导》第10章ASP的内置对象10.2.2Server对象方法%response.write上面调用的是10-1.asp中的内容%/body/html《ASP程序设计教程及实训指导》第10章ASP的内置对象10.2.2Server对象方法三、URLEncode作用:URLEncode方法可以将指定字符串进行URL编码语法:Server.URLEncode(string)参数:string指定要转化的字符串《ASP程序设计教程及实训指导》第10章ASP的内置对象10.2.2Server对象方法[例10-3]用URLEncode方法将指定字符串进行URL编码htmlheadtitle例10-3/title/headbody%response.write您好,欢迎光临我的网站%%response.writebrresponse.write编码是:《ASP程序设计教程及实训指导》第10章ASP的内置对象10.2.2Server对象方法response.writebrResponse.Write(Server.URLEncode())%/body/html《ASP程序设计教程及实训指导》第10章ASP的内置对象10.2.2Server对象方法语法格式:Server.MapPath(Path)功能:用于把webserver的虚拟路径转换为实际路径。虚拟路径映射为物理路径的代码:%response.write“当前文件的虚拟路径为:”%%=request.serverVariables(“PATH_INFO”)%%response.write“该文件的物理路径为:”%%=Server.MapPath(Request.ServerVariables(“PATH_INFO”))%《ASP程序设计教程及实训指导》第10章ASP的内置对象10.2.2Server对象方法Server对象的其他几个方法:GetLastError:返回一个错误代码MapPath:将一个相对路径转化为一个绝对路径.Transfer:将当前的所有状态信息发送给另一个asp文件《ASP程序设计教程及实训指导》第10章ASP的内置对象10.3ObjectContext对象方法:1SetComplete方法:SetComplete方法不理会未完成执行的任何理由。如果所有组件都使用SetComplete方法,则执行就一定被完成。2SetAbort方法:SetAbort方法声明该脚本开始的执行不被完成,并且不再更新资源《ASP程序设计教程及实训指导》第10章ASP的内置对象10.3ObjectContext对象事件:1、OnTransactionCommit:OnTransactionCommit事件发生在脚本的transaction被提交之后。当OnTransactionCommit事件发生时,IIS将运行OnTransactionCommit事件子程序,如果它存在《ASP程序设计教程及实训指导》第10章ASP的内置对象10.3ObjectContext对象2OnTransactionAbortOnTransactionAbort事件发生在脚本的transaction被终止之后。当OnTransactionAbort事件发生时,IIS将运行OnTransactionAbort事件子程序,如果它存在。《ASP程序设计教程及实训指导》第10章ASP的内置对象10.3ObjectContext对象实例:从10-4.asp文件获得请求销售的数据到处理程序10-5.asp。当数量不够时用SetAbort方法终止处理,返回错误代码。否则完成处理。两文件的代码如下:[例10-4.asp]:[例10-4.asp]HTMLHEADTITLE例10-4.