ASP的组件和对象

十二月 18, 2008 by FDS  
类别:ASP 已经有578次浏览

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 方法
方法是可以在对象上所执行或使用对象执行的活动。调用方法的一般语法为:

Object.Method parameters

参数随着方法的不同而不同。

例如,可以按照下列的指令,使用 Response 内建对象的 Write 方法将信息发送到浏览器:

<% Response.Write “Hello World” %>
注意 一些脚本语言不支持 Object.Method语法。如果使用的语言不支持该语法,那么为了将该语言作为主脚本语言,就必须在注册表中加入条目。

设置对象属性
属性是描绘对象的特征值。属性定义对象的特征(如对象类型)或对象的状态(如启用或禁用)。常规语法为:

Object.Property

可以读取并设置属性值。对某些对象,还可以添加新属性。

例如,Ad Rotator 组件有 Border 属性,该属性指定广告是否有边框及边框的粗细。下面的表达式指明没有边框:

<% MyAds.Border = 0 %>
可以使用 ASP 输出指令显示某些属性的当前值。例如,如果浏览器仍然与服务器连接,下面的命令将返回 TRUE:

<%= Response.IsClientConnected %>

在JavaScript中创建对象

十月 14, 2008 by FDS  
类别:JAVASCRIPT 已经有526次浏览

  使用JavaScript可以创建自己的对象。虽然JavaScript内部和浏览器本身的功能已十分强大,但JavaScript还是提供了创建一个新对象的方法。使其不必像超文本标识语言那样,求于或其它多媒体工具,就能完成许多复杂的工作。
  在JavaScript中创建一个新的对象是十分简单的。首先它必须定义一个对象,而后再为该对象创建一个实例。这个实例就是一个新对象,它具有对象定义中的基本特征。

一、对象的定义
JavaScript对象的定义,其基本格式如下:
Function Object(属性表)
This.prop1=prop1
This.prop2=prop2

This.meth=FunctionName1;
This.meth=FunctionName2;

在一个对象的定义中,可以为该对象指明其属性和方法。通过属性和方法构成了一个对象的实例。如以下是一个关于University对象的定义:
Function university(name,city,creatDate URL)
This.name=name
This.city=city
This.creatDate=New Date(creatDate)
This.URL=URL
其基本含义如下:
Name-指定一个“单位”名称。  
City-“单位”所在城市。  
CreatDate-记载university对象的更新日期。  
URL-该对象指向一个网址。

二、创建对象实例
一旦对象定义完成后,就可以为该对象创建一个实例了:
NewObject=New object();
其中Newobjet是新的对象,Object已经定义好的对象。例:

U1=New university(“云南省”,“昆明市”,"January 05,199712:00:00","http://www.YN.KM")
U2=New university(“云南电子科技大学”,“昆明”,"January 07,1997 12:00:00","htlp://www.YNKJ.CN")
 
三、对象方法的使用
在对象中除了使用属性外,有时还需要使用方法。在对象的定义中,我们看到This.meth=FunctionName语句,那就是为定义对象的方法。实质对象的方法就是一个函数FunctionName,通过它实现自己的意图。
例在university对象中增加一个方法,该方法是显示它自己本身,并返回相应的字串。
function university(name,city,createDate,URL)
This.Name=Name;
This.city=city;
This.createDate=New Date(creatDate);
This.URL=URL;
This.showuniversity=showuniversity;
其中This.showuniversity就是定义了一个方法---showuniversity()。
而showuniversity()方法是实现university对象本身的显示。
function showuniversity()
For (var prop in this)
alert(prop+=”+this[prop]+”");
其中alert是JavaScript中的内部函数,显示其字符串。
 
四、JavaScript中的数组 
使用New创建数组
JavaScript中没有提供像其它语言具有明显的数组类型,但可以通过function定义一个数组,并使用New对象操作符创建一个具有下标的数组。从而可以实现任何数据类型的存储。
a、定义对象的数组
Function arrayName(size){
This.length=Size;
for(var X=; X<=size;X++)
this[X]=0;
Reture this;
}
其中arrayName是定义数组的一个名子,Size是有关数组大小的值(1-size),即数组元素的个数。通过for循环对一个当前对象的数组进行定义,最后返回这个数组。
从中可以看出,JavaScript中的数组是从1到size,这与其它0到size的数组表示方法有所不同,当然你可根据需要将数组的下标由1到size调整到0到size-1,可由下列实现:
Function arrayName (size)
For (var X=0; X<=size;X++)
this[X]=0;
this.lenght=size;
Return this;
从上面可以看出该方法是只是调整了this.lenght的位置,该位置是用于存储数组的大小的。从而调整后的数组的下标将与其它语言一致。但请读者注意正是由于数组下标顺序由1到size,使得JavaScript中的对象功能更加强大。
b、创建数组实例
一个数组定义完成以后,还不能马上使用,必须为该数组创建一个数组实例:
Myarray=New arrayName(n);
并赋于初值:
Myarray[1]=“字串1”;
Myarray[2]=“字串2”;
Myarray[3]=“字串3”;

Myarray[n]=“字串n”;
一旦给数组赋于了初值后,数组中就具有真正意义的数据了,以后就可以在程序设计过程中直接引用。
创建多维数组
Function creatMArray(row,col){
var indx=0;
this.length=(row*10)+col
for(var x=1;x<=row;x++)
for(var y=1;y<=col;y++)
indx=(x*10)+y;
this[indx]=””;
}
myMArray=new creatMArray();
之后可通过myMArray[11]、myMArray[12]、myMArray[13]、myMArray[21]、myMArray[22]、myMArray[23]、
…来引用。
内部数组
在Java中为了方便内部对象的操作,可以使用窗体(Forms)、框架(Frames)、元素(element)、链接(links)和锚(Anchors)数组实现对象的访问。
 anchors[]:使用《A name=“anchorName“》标识来建立锚的链接。

 links[]: 使用<A href=”URL”>来定义一个越文本链接项。

 Forms[]: 在程序中使用多窗体时,建立该数组。

 Elements[]:在一个窗口中使用从个元素时,建立该数组。

 Frames[]:建立框架时,使用该数组

 anchors[]用于窗体的访问(它是通过《form name=“form1”》所指定的),link[]用于被链接到的锚点的访问(它是通过《a href=URL》所指定的)。Forms[]反映窗体的属性,而anchors[]反映Web页面中的链接属性。
有关锚数组的文档:
<HTML>
<HEAD>
<BODY>
<A NAME=”MyAnchorsName1”> 定义第一个锚名
HTML Code
<A NAME=”MyAnchorsName2”> 定义第二个锚名
HTML Code
<A HREF=”#MyAnchorsName1”>建立锚的链接
<A HREF=”#MyAnchorsName2″> 建立锚的链接
….
该文档段建立了两面全锚的链接,可通过Anchors[]访问这些锚。document.Anchors[0]反映第一个锚,而document.Anchors[1]反映第二个锚的有关信息。