当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP系列讲座(七)使用组件和对象

ASP
ASP 3.0高级编程(二十七)
ASP 3.0高级编程(二十八)
ASP 3.0高级编程(二十九)
ASP 3.0高级编程(三十)
ASP中时间函数的使用(一)
ASP中时间函数的使用(二)
ASP中时间函数的使用(三)
.NET之ASP WebApplication快速入门(1)
.NET之ASP WebApplication快速入门(2)
.NET之ASP WebApplication快速入门(3)
.NET之ASP WebApplication快速入门(4)
.NET之ASP WebApplication快速入门(5)
asp.NET特写
ASP 3.0高级编程(七)
ASP 3.0高级编程(八)
ASP.NET 入门的五个步骤
ASP 组件指南
XML 数据的编码方式
ASP 3.0高级编程(九)
ASP 3.0高级编程(十)

ASP系列讲座(七)使用组件和对象


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 35 ::
收藏到网摘: n/a

  ActiveX 组件是建立强大的 Web 应用程序的关键。组件提供了用在脚本中执行任务的对象。ASP 同样提供了可在脚本中使用的内建对象。本主题将讨论如何使用组件提供的对象以及由 Active Server Pages 直接提供的内建对象。

关于组件
ActiveX 组件是一个文件,该文件包含执行某项或一组任务的代码。组件可以执行公用任务,这样就不必自己去创建执行这些任务的代码。例如,股票行情收报机组件可以在 Web 页上显示最新的股票报价。ASP 带有可以直接使用的组件,如 Database Access 组件。从第三方开发者处获得可以可选的组件。或者也可以编写自己的组件。

可以利用组件作为脚本和基于 Web 应用程序的基本构造块。只要知道如何访问组件提供的对象。即使是位编写脚本的新手,也可以在不了解组件运作方式的情况下编写脚本。总之,组件使您不用学习编程就能够编写强大的脚本。

如果您是位 Web 应用程序的开发者,可以通过编写组件封装商务逻辑。例如,可以编写组件来计算产品的销售税。然后可以在处理销售订单的脚本中调用这个组件。在订单的处理过程中独立计算税率可以在某地销售税改变的时候只更新组件,而无须更改整个处理过程。可以使用任何支持组件对象模型 (COM) 的语言来编写组件,如,C、C++、Java 或 Visual Basic。如果熟悉 COM 编程,ActiveX 组件就是 Automation 服务器。要在 Web 服务器上运行,ActiveX 组件不能有图形用户接口元素,如 Visual Basic 的 MsgBox 函数。

组件是可以重复使用的。在 Web 服务器上安装了组件后,就可以从 ASP 脚本、ISAPI 应用程序、服务器上的其他组件或由另一种 COM 兼容语言编写的程序中调用该组件。

生成组件对象的实例
组件是包含在动态链接库 (.dll) 或可执行文件 (.exe) 中的可执行代码。组件可以提供一个或多个对象以及对象的方法和属性。要使用组件提供的对象,请创建对象的实例并将这个新的实例分配变量名。使用 ASP 的 Server.CreateObject 方法可以创建对象的实例。接着,使用脚本语言的变量分配指令为对象实例命名。创建对象实例时,必须提供实例的注册名称 (PROGID)。对于由 ASP 提供的基本组件,可以从参考页中获得对象的 PROGID。

例如,ASP 的 Ad Rotator 组件在图形广告中任意循环。Ad Rotator 组件提供了一个被称为 Ad Rotator 对象,该对象的 PROGID 是 "MSWC.AdRotator"。要创建一个 Ad Rotator 对象的实例,请使用下列指令:

VBScript:

<% Set MyAds = Server.CreateObject("MSWC.AdRotator") %>
JScript:

<% var MyAds = Server.CreateObject("MSWC.AdRotator") %>
如果您已经非常熟悉 VBScript 或者 JScript ,将会注意到没有使用创建新对象实例的脚本语言函数,如 VBScript 中的 CreateObject 或 JScript 中的 New。您必须使用 ASP 的 Server.CreateObject 方法,否者 ASP 无法跟踪脚本语言中对象的使用。

使用 HTML <OBJECT> 标签同样可以创建对象实例。您必须为 RUNAT 属性提供服务器值,同时也要为将在脚本语言中使用的变量名提供 ID 属性组。使用注册名 (PROGID) 或注册号码 (CLSID) 可以识别该对象。下面的例子使用注册名 (PROGID) 创建 Ad Rotator 对象的实例:

<OBJECT RUNAT=Server ID=MyAd PROGID="MSWC.AdRotator"></OBJECT>
下面的例子使用注册号码 (CLSID) 创建 Ad Rotator 对象的实例:

<OBJECT RUNAT=Server  ID=MyAd
CLASSID="Clsid:1621F7C0-60AC-11CF-9427-444553540000"></OBJECT>
从 Java 类中创建一个对象
使用 Java 语言编写的 ActiveX 组件可作为 Java 类而不是 DLL 提交。要使用 Server.CreateObject 创建 Java 类对象的实例,必须使用 Javareg 程序将该类注册为 COM 组件。然后就能够以 PROGID 或 CLSID 使用 Server.CreateObject 了。

如果对象实例不需要访问 ASP 内建对象和参与事务,就可以使用由 Java 监视程序提供的更为简单的机制直接调用 Java 类。必须用 Microsoft virtual machine for Java 2.0(由该 Internet Information Server 和 Personal Web Server 的发布版提供)使用 Java 监视程序。

如果要使用监视程序实例化对象,就必须使用 VBScript 或者 JScript 的 GetObject 指令并以 java:classname 的形式提供 java 类的全名。下面这个关于 VBScript 的例子生成了 Java Date 对象的实例。

<%
Dim date
Set date = GetObject("java:java.util.Date")
%>

<p> The date is <%= date.toString() %>
通过调用 GetObject 而不是 Server.CreateObject 生成的对象不能访问 ASP 内建对象也不能参与事务处理。

使用 ASP 内建对象
ASP 提供执行任务的内建对象。例如,Request 对象存储从 HTML 表格参考。

调用 Object 方法
方法是可以在对象上所执行或使用对象执行的活动。调用方法的一