ASP 3.0高级编程(十七)
2008-02-23 05:38:27来源:互联网 阅读 ()
前面章节已经介绍了ASP如何使用在服务器上定义的对象的实例,充分利用所提供的方法和属性扩展ASP的性能。有一系列的对象可供使用,包括脚本对象和标准IIS/ASP安装的组件,以及自己创建的或者从其他供应商处购买的对象。也可以在互联网上各种网站免费下载对象,并在自己的页面上使用。
这一章将讨论由ASP脚本环境提供的一般称为“脚本运行期库”(Scripting Runtime Library)的对象。这些对象通过正在使用的脚本引擎提供给代码,与ASP脚本程序一起完成多种实用任务。
还有一种组件是“活动服务器组件”(Active Server Component),通过单独的ActiveX DLL文件或者其他文件来实现。后面章节将讨论相关内容。
当然,需要研究如何在页面上使用这些对象。在前一章中,我们已经了解了服务器如何提供一个方法来实例化对象,本章将深入讨论这个内容。
本章将介绍以下内容:
· 脚本引擎以脚本对象方式提供了什么。
· 如何创建脚本对象及其他组件实例。
· 脚本对象的成员和属性概要。
· 如何在代码中使用脚本对象。
下面开始研究脚本对象的定义。
5.1 脚本对象的定义
前面章节研究了ASP对象模型。
对象模型是用来理解系统的各个部分相互关系的一种基本手段。
ASP对象模型提供了一种结构,用来作为一个整体操纵HTTP请求、响应及ASP环境中的不同元素。例如,我们已经看到,如何通过查看ASP请求对象的cookie集合,得到来自浏览器的任何cookie值。
我们使用的脚本语言也有对象模型。然而,脚本语言提供的这一对象模型,不同于由ASP DLL直接提供的对象模型,脚本对象是由Microsoft脚本运行期库(scrrun.dll)提供的,安装缺省的Active Scripting脚本引擎时,也安装了Microsoft脚本运行期库。
5.1.1 不同类型的对象和组件
不要对“对象”和“组件”这两个名词感到困惑,在一定范围内它们都可以作为ASP的一部分,同样可以通过COM对其进行访问。从概念上可以将它们分为四类:
· ASP内置对象,如ObjectContext、Request、Response、Application、Session、Server和ASPError。本书的第2章到第4章已经研究了这些内容。
· 脚本对象。通过脚本运行期库使用,如Dictionary、FileSystem和TextStream。这是本章要讨论的对象。
· 可安装的组件。由Microsoft在IIS 5.0和ASP 3.0标准安装时提供。这将在下一章讨论。
· 其他组件。从其他独立厂商购买的、在网站上发现的或者自己创建的组件。还有一些其他的由Windows服务或产品提供的组件,如Windows Scripting Host。在本书的附录中提供了相应的列表,本书专门有一部分章节讲述如何构建自己的组件。
5.1.2 VBScript和Jscript脚本对象
作为脚本运行期库的一部分,Microsoft提供三个主要的对象:
· Dictionary对象提供一个极为有用的存储对象,它用来存储值,通过对象的名字而不是其索引进行访问和引用。例如,对于存储从ASP Request对象中检索到的名称/值对,这是非常合适的。
· FileSystemObject对象提供了对服务器底层文件系统的访问(在客户端上使用IE 5.0,与名为“Hypertext Application(HTA)”的特殊类型的页面协同使用)。可用FileSystemObject对象遍历计算机的本地及网络的驱动器、文件夹和文件。
· TextStream对象提供对存储在磁盘上文件的访问,用于同FileSystemObject对象协同使用。TextStream对象能够读出或写入文本(顺序的)文件,并仅能通过FileSystemObject对象进行实例化,所以人们常常认为TextStream对象是FileSystemObject对象的子对象。
FileSystemObject对象是其他一系列用来与文件系统交互的对象和集合的“父代”。该对象提供了对象的三个集合:Drives、Folders和Files集合,每个集合分别是相应的Drive、Folder和File对象的集合。它们用来进行磁盘上的驱动器、文件夹(目录)和文件的遍历和定位。对象间的关系如图5-1所示:
[img]http://dave_lu.myetang.com/asppic/asp79.jpg[/img]
图5-1 脚本运行期库中对象间的关系
下面,将依次介绍这些对象和集合,以及如何使用它们。然而,首先要理解对象实例与组件的创建或实例化方式之间的差异。这是下一节的主要内容。
5.2 创建对象生组件实例
创建脚本运行期库对象的实例与创建任何其他对象和组件的实例化方式完全相同。可使用ASP Server对象提供的CreateObject方法(确保对象创建在当前页面的环境内),或者使用一个<OBJECT>元素。我们将研究这两种方法,究竟采用那种方法依赖于页面的需要。
5.2.1 使用Server.CreateObject方法
正如在研究Server对象的时候看到的,组件或其他对象实例可根据它们的ProgID来创建:
<%
Dim objThis
Set objThis = Server.CreateObject(“ADODB.Connection”)
%>
ProgID字符串“正式的”格式是“供应商.组件.版本”,供应商的名字和版本是可选的。通常ProgID只包含前两部分(如上例)。少数供应商在ProgID中设置版本编号,这将避免向后兼容的新版本使用同样的ProgID,这要求改变ASP页面才能使用新版本。
5.2.2 使用<OBJECT>元素
可以使用标准的HTML<OBJECT>元素通过增加RUNAT参数并指定其值为“SERVER”来在服务器上创建一个组件实例。另外,通常是提供对象的ProgID字符串而不是数字的ClassID:
<OBJECT ID=”objThis” RUNAT=”SERVER” PROGID=”This.Object”>
<PARAM NAME=”param1” VALUE=”value1”>
<PARAM NAME=”param2” VALUE=”value2”>
</OBJECT>
如果上面脚本的对象有相应的属性可在脚本中使用,在<OBJECT>元素内可通过<PARAM>元素进行设置,就像通常在HTML页面中所做的一样。在ASP中使用<OBJECT>元素时不要求CODEBASE属性,当其不可用时,服务器不会试图下载以及安装对象或组件。
1. 指定一个ClassID
另外,可以指定想要创建的对象或组件的ClassID。在不知道目标机安装了什么其他组件的情况下,这是非常有用的。例如在客户端上的浏览器的页面上实例化组件时。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:ASP 3.0高级编程(十六)
下一篇:ASP 3.0高级编程(十八)
- ASP 3.0高级编程(十七) 2019-06-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash