您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > Server对象与服务器端文件访问
第七章Server对象与服务器端文件访问7.1Server对象属性及方法Server对象是专门为处理服务器上的事物而设计的内置对象,特别是与服务器的环境和处理活动有关的任务。有了sever对象,就可以在服务器上启动ActiveX控件。事实上,当你用ASP编写服务器端应用程序时,必须依靠ActiveX组件来强大Web应用程序的功能,譬如:你需要连接数据库,对数据库进行在线操作或者对WEB服务器上的文件系统进行操作,亦或你需要一个WEB广告交换程序,所有这一切你都必须通过调用ASP内建的ActiveX组件或自己编写所需的组件来完成。其实ActiveX组件是一个存在于WEB服务器上的文件,该文件包含执行某项或一组任务的代码,组件可以执行公用任务,这样就不必自己去创建执行这些任务的代码。当你在WEB服务器上安装完ASP环境后,就可以直接使用它自带的几个常用组件,如DatabaseAccess组件。当然你也可以从第三方开发者处获得可选的组件,也可以编写自己的组件。可以使用任何支持组件对象模型(COM)的语言来编写组件,如,C、C++、Java或VisualBasic。ActiveX是Microsoft对INTERNET上使用OLE/COM作为基础技术的规格定义,ActiveX是Microsoft提出的一组使用COM(ComponentObjectModel,部件对象模型)使得软件部件在网络环境中进行交互的技术集。它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。同时,ActiveX技术也被用于方便地创建普通的桌面应用程序。可以使用VB、VC等编程工具开发该控件。要使用Active控件必须先注册才能使用(已注册的组件,可以在注册表的HKEY—CLASSES—ROOT中找到)。具体使用组件时,首先要创建对象的实例并将这个新的实例分配变量名。使用ASP的Server.CreateObject方法可以创建对象的实例。7.1.1Server对象的属性Server对象的属性为:ScriptTimeOut.通过设置该属性值可以强制规定脚本的最长执行时间(单位:秒)。ScriptTimeout默认值为90秒。设置该属性值的方法:例如Server.ScriptTimeout=120思考题:如何验证ScriptTimeout的默认值为90秒呢?例:应用ScriptTimeout防止脚本出现死循环。htmlheadtitleScriptTimeout属性用法示例/title/headbody%Server.ScriptTimeout=1'设置脚本文件最长执行时间为1秒Dimii=1DoWhilei0'死循环程序i=i+1Loop%/body/html7.1.2Server的方法Server的方法主要有:CreateObject(component):建立组件实例Execute(path):调用PATH指定的程序GetlastError():返回一个ASPError对象的实例,该实例描述最近发生的错误HTMLEncode(string):将String进行编码,使它不会被解释为HTML语法URLEncode(string):将String进行编码,以放入QueryString返回服务器MapPath(path):将Path指定的虚拟路径转换为实际路径Transfer(path):将控制权转移到Path指定的ASP程序Server.Execute方法格式:Server.Execute(path)功能:该方法是IIS5.0新增的功能,用途类似程序语言中的函数调用,也就是说,你可以在ASP程序中使用Server.Execute(path)方法调用path指定的ASP程序,待彼此调用的程序执行完毕之后再返回原来的程序,继续执行接下来的指令。举例:Server.Execute方法使用HTMLBODYP%Response.Write调用Execute方法之前%/P%Server.Execute(page_2.asp)%'执行page_2.asp后会再返回P%Response.Write调用Execute方法之后%/P/BODY/HTMLpage_1.aspHTMLBODYP%Response.Write“这是page_2.asp的执行结果%/P/BODY/HTMLpage_2.aspServer.Transfer方法格式:Server.Transfer(path)功能:该方法也是IIS5.0新增的功能,用于将目前ASP程序的控制权转移到path指定的ASP程序,即使转移之后的程序已经执行完毕,控制权不会返回原来的程序。举例:Server.Transfer方法使用HTMLBODYP%Response.Write调用Transfer方法之前%/P%Server.Transfer(page_2.asp)%'将控制权转移至page_2.asp后便不再返回P%Response.Write调用Transfer方法之后%/P/BODY/HTMLpage_3.asp注意:Server.Transfer、Server.Execute和Redirect三者的区别:(1)Transfer与Execute基本相似,唯一区别是Transfer方法执行完新网页后并不回到原来网页。(2)Redirect与Transfer有点相似,都有页面导向的功能,所不同的是,使用Transfer能够保留原来所有内置对象的值,而Redirect却做不到。思考题:编程验证Redirect与Transfer对内置对象的值的影响有何不同。Server.HTMLEncode和Server.URLEncode方法Server对象提供的Server.HTMLEncode和Server.URLEncode两个方法可以进行字符串编码。1.Server.HTMLEncode编码方式该编码方式可以将String进行编码,使字符串不会被解释为HTML语法。其格式为:Response.Write(Server.HTMLEncode(“段落标记:P”))例如,请分析下列程序的运行结果%Response.write(这是对HTMLEncode方法的测试。br这里应该不会另起一行。)%%Response.writeServer.HTMLEncode(这是对HTMLEncode方法的测试。br这里应该不会另起一行。)%2.Server.URLEncode编码方式该方式可以将Srting进行编码,以放入Querystring返回服务器。服务器端用Request.Querystring(“keyname”)获取即可。例如,分析下列程序找出错误原因。%language=vbscript%htmlHeadtitleURLENCODE举例/title/Headbodyahref=urlsample.asp?name=%=server.urlencode(李四)%传name过去/a/body/htmlurlsam.asp%@language=vbscript%%name=request.form(name)%htmlHeadtitle注意观察/title/Headbody%=name&你好%/body/htmlurlsample.aspServer.MapPath方法格式:Server.MapPath(path)功能:该方法用于将path指定的虚拟路径转换为实际路径。举例:Server.MapPath方法使用HTMLBODY%Response.Write父目录为&Server.MapPath(../)%BR%Response.Write现在目录为&Server.MapPath(./)%BR%Response.Write根目录为&Server.MapPath(/)%BR%Response.Write网页的实际路径为&Server.MapPath(path.asp)%BR/BODY/HTMLServer.CreateObject方法格式:Server.CreateObject(component)功能:这是Server对象最重要的一个方法。它用于创建已经注册到服务器(从注册表里能找到已经注册的组件)上的ActiveX组件的实例。有了它,我们就可以使用ActiveX组件轻松的扩展ActiveX的能力,使设计更加多元化。举例:下面就声明了FileSystemObject的一个实例:DimobjFSO'声明objFSO的变量,以存放对象实例SetobjFSO=Server.CreateObject(Scripting.FileSystemObject)说明:1.Set是VBScript关键字,用来建立对象实例,objFSO是这个对象的名称;Scripting.FileSystemObject是FileSystem组件在服务器注册时的ID标识。2.服务器组件不能直接使用,必须先用Server.CreateObject建立一个组件的对象实例,然后才能通过次对象实例访问其集合、方法和属性。7.2ASP内置组件本节主要介绍如下几个ASP内置组件:FileSystemObject组件:主要负责对服务器断文件或文件夹的相关操作。BrowserCapabilities组件:获取浏览器信息。ContentLinking组件:用于建立网络导航,这在建立大型网站非常有用。Dictionary组件:功能类似于数据库操作,所有操作在内存中完成,不需要存取磁盘上的文件,适合保存少量的数据。AdRotator组件:广告轮显组件。用于制作动态交替变换的广告Web页面。7.2.1FileSystemObject组件FSO(FileSystemObject)组件模式包含在Scripting类型库中,该库位于Scrrun.dll文件中。因而,要使用FSO对象模式,必须把Scrrun.dll放在Web服务器的适当系统目录中。一、检查指定的磁盘、文件夹或文件是否存在在进行磁盘、文件夹或文件的读写之前,我们都必须先确定磁盘、文件夹或文件是存在的,否则将产生错误信息。我们可以分别使用FilesystemObject组件的DriveExistes(path)、FileExists(path)及FolderExists(path)方法来检查磁盘、文件夹或文件是否存在,例如以下程序:01:HTMLBODY02:%03:DimobjFSO'声明一个名称为objFSO的变量以存放对象实例04:SetobjFSO=Server.CreateObject(Scripting.FileSystemObject)05:IfobjFSO.DriveExists(C:)Then06:Response.WriteC:磁盘是存在的&BR07:Else将虚拟路径转换为实际路径08:Response.WriteC:磁盘是不存在的&BR09:EndIf10:IfobjFSO.FolderExists(Server.MapPath(\Ch07))Then11:Response.WriteCh07文件夹是存在的&BR12:Else13:Response.WriteCh07文件夹是不存在的&BR将虚拟路径转换为实际路径14:EndIf15:IfobjFSO.FileExists(Server.MapPath(CheckExist.asp))Then16:Response.WriteCheckExist.asp文件是存在的&BR17:Else18:Response.Wri
本文标题:Server对象与服务器端文件访问
链接地址:https://www.777doc.com/doc-1580270 .html