在Active Server Pages中结合对象和组件
Active Server Pages包括了大量内嵌对象和可安装的ActiveX组件。这些对象以及组件都可以用来拓展你的Active Server Pages的功能,但是确切的什么是对象和组件呢?
一个对象是典型的具有方法、属性或者集合的东西,其中对象方法决定了我们可以用这个对象作什么事情。(还记得response对象的write()方法吧),对象的属性
可以读取出来了解对象状态或者设置对象状态。对象的集合是由很多不同的和对象有关系的键和值的配对对组成的。
举一个日常的例子,书籍“迈至科ASP教程”是一个对象,这个对象包含的方法决定了你可以怎样处理它,比如说,去读它,送人作为礼物,当作敲门的工具,甚至撕得粉碎,只要你愿意。对象的属性,这本书的页数,作者什么的。最后,对象的集合,包含了许多键和值的配对:每一页的页码就是键,那么值就是相对应于页码的这页的内容。
一个ActiveX组件和Active Server Pages内嵌对象十分类似,不过,当你使用Active Server Pages时,二者之间还是存在着明显的差异,首先,一个组件可能包含不只一个对象,其次,在你使用组件之前,将要明确的创建一个实例。
VBScript和JScript都包括一些对象,例如,无论利用VBScript和JScript,你都可以进入处理Dictionary对象。Dictionary并不是Active Server Page的正式部分。但是你可以利用Active Server Pages脚本来建立它,这是一个利用VBScript的例子:
<html>
<%
Set Mydict=Server.CreateObject(“Scripting.Dictionary”)
MyDict.add “电子商务”, “http://207.153.210.86/intro”
MyDict.add “BBS”, “http://www.magicw3.com/bbs”
MyDict.add “广告联盟”, “http://www.magicw3.com/banner”
%>
我的字典中有<%=MyDict.count%>个记录。
<br>
其中第一个记录是<%=MyDict.item(“电子商务”)%>。
</html>
当这个脚本执行的时候,Dictionary对象的一个实例将会生成,然后,三个键以及相对应的值添加到Dictionary对象中,最后,显示出这个Dictionary对象的两个属性(显示结果如图13.3)。
例子中的第一个脚本语句是利用Active Server Pages建立一个新的ActiveX对象实例的常用方法。Server.CreatObject是建立一个对象实例。在这个例子中,变量MyDict指向一个Dictionary对象实例。
当一个对象实例建立之后,就可以调用它的方法,例如,利用Dictionary对象的add方法就可以在这个Dictionary中添加新的记录。例如用add方法配对添加键“电子商务”和相应的值“http://207.153.210.86/intro”。
图13.3 Dictonary对象的一个示例
当一个对象的实例建立之后,你还可以进入处理它的属性,在这里面Count属性用来统计Dictionary中的记录数量。item属性用来根据相应的键来读取对应的值。
最后,你处理完这个对象的实例后,还可以消除它。当然,在服务器进行完这个Active Server Pages的进程后,会自动消除这个对象实例,因此,你完全可以不用去亲自处理这种过程。不过,如果需要的话,你依然可以利用将特定的变量,例如现在的Mydict指向一个新的值或者就是nothing来消除这个实例。例如这样
<% set MyDict=Nothing %>
尽管Dictionary对象并不是Active Server Pages正式部分,这个例子还是能够表明如何使用Active Server Pages对象,你可以调用Server.CreatObject()方法来产生一个对象的实例。在你产生了新的对象后,你可以调用其方法以及读取其属性。
Active Server Pages对象
你已经接触了一个内嵌对象的例子-Response对象。你已经可以利用Response对象将表达式输出到浏览器上。不过,Response对象还有相当数量的其他重要属性、集合以及方法。
下面的章节中将会详细介绍每一种内嵌对象的使用。下面是对每一种内嵌的快速浏览:
■application对象:application对象被用来存储一个应用中所有用户共享的信息。例如,你可以利用application对象来在你的站点的不同用户间传递信息。
■request对象:request对象可以被用来访问所有从浏览器到服务器间的信息,你也就可以利用request对象来接受用户在html主页的form中的信息。
■response对象:response对象用来将信息发送回给浏览器。你可以利用response对象将你的脚本语言结果输出到浏览器上。
■server对象:server对象提供你运用许多server端的应用函数。例如,你可以利用server对象来控制你的脚本语言在超过时限前的运行时间。你也可以利用server对象来创建其他对象的实例。
■session对象:session对象被用来存储一些普通用户其滞留期间的信息,你可以用Session对象来储存一个用户在访问你的站点的滞留时间。
■ObjectContext对象:ObjectContext对象可以被用来控制Active Server Pages的执行。这种执行过程由Microsoft Transaction Server(MTS)来进行管理。
内嵌对象不同于正常的对象。在你利用内嵌对象的脚本时,你不需要首先创建一个它的实例。在整个网站应用中内嵌对象的所有方法、集合以及属性都是自动可访问的。
注意
在附录A中,”ASP对象及组件快速参考”,提供了所有内嵌对象的方法、属性、以及集合的列表清单。
Active Server Pages 组件
象上面所讨论的内嵌对象一样,Active Server Pages组件一样可以被用来拓展你的脚本的功能,组件与内嵌所不同的是它通常被用来去实现那些特定的任务。下面列表中显示的是集成在Active Server Pages中的一些组件。
■Ad Rotator组件:Ad Rotator组件被用来在主页上显示广告图标。你可以利用这个组件来限定不同广告图标显示变换的频率。
■Browser Capabilities组件:Browser Capabilities组件可以根据不同浏览器的性能来显示不同的主页。例如,你可以利用显示单屏或者根据浏览器适应的分屏方式。
■Content Linking组件:例用Content Linking组件你可以连接相当数量的主页这样你就可以更容易进行网络导航。例如,你可以利用这个组件来显示一部在线教程。
■Counters组件:Counters组件能够被用来追踪访问该站点访问者的数量,你可以利用这个组件在主页中添加点击计数器。
■Permission Checker组件:Permission Checker组件可以被用来检验只有授权用户才能访问某些联接。你可以利用这个组件来创建管理员的维护主页。
■ActiveX Data对象:ActiveX Data对象(ADO)提供你可以从诸如SQL Server这样的数据库系统中存储数据的手段。这种对象相当重要,由于这个原因,这种对象将会在所有对象全部讨论完毕后单独分出一部分进行介绍。
下面的章节介绍怎样使用这些对象,第二十八章将讨论怎样建立你自己的对象。
注意
附录A中显示出所有这些组件的方法、属性以及集合的列表。