ASP基础教程 组件.docx

上传人:b****8 文档编号:9558602 上传时间:2023-02-05 格式:DOCX 页数:16 大小:32.28KB
下载 相关 举报
ASP基础教程 组件.docx_第1页
第1页 / 共16页
ASP基础教程 组件.docx_第2页
第2页 / 共16页
ASP基础教程 组件.docx_第3页
第3页 / 共16页
ASP基础教程 组件.docx_第4页
第4页 / 共16页
ASP基础教程 组件.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

ASP基础教程 组件.docx

《ASP基础教程 组件.docx》由会员分享,可在线阅读,更多相关《ASP基础教程 组件.docx(16页珍藏版)》请在冰豆网上搜索。

ASP基础教程 组件.docx

ASP基础教程组件

当你用ASP编写服务器端应用程序时,必须依靠ActiveX组件来强大Web应用程序的功能,

     其实ActiveX组件是一个存在于WEB服务器上的文件,该文件包含执行某项或一组任务的代码,组件可以执行公用任务,这样就不必自己去创建执行这些任务的代码。

例如,股票行情收报机组件可以在Web页上显示最新的股票报价。

当你在WEB服务器上安装完ASP环境后,就可以直接使用它自带的几个常用组件,如DatabaseAccess组件。

当然你也可以从第三方开发者处获得可选的组件,也可以编写自己的组件。

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

总而言之,ActiveX组件使您不用学习复杂的编程就能够写出强大的WEB服务器端脚本。

如果您是位Web应用程序的开发者,可以使用任何支持组件对象模型(COM)的语言来编写组件,如,C、C++、Java或VisualBasic。

如果你熟悉COM编程,ActiveX组件就是Automation服务器。

但是要在Web服务器上运行,ActiveX组件不能有图形用户接口元素,如VisualBasic的MsgBox函数。

组件是可以重复使用的。

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

组件是包含在动态链接库(.dll)或可执行文件(.exe)中的可执行代码。

组件可以提供一个或多个对象以及对象的方法和属性。

要使用组件提供的对象,我们首先要创建对象的实例并将这个新的实例分配变量名。

使用ASP的Server.CreateObject方法可以创建对象的实例。

接着,使用脚本语言的变量分配指令为对象实例命名。

创建对象实例时,必须提供实例的注册名称“PROGID”。

如下要创建一个AdRotator对象的实例:

  <%SetMyAds=Server.CreateObject("MSWC.AdRotator")%>

    我们必须使用ASP的Server.CreateObject方法来创建对象实例,否者ASP无法跟踪脚本语言中对象的使用。

使用HTML<OBJECT>标签同样可以创建对象实例,但必须为RUNAT属性提供服务器值,同时也要为将在脚本语言中使用的变量名提供ID属性组。

使用注册名(PROGID)或注册号码(CLSID)可以识别该对象。

下面的例子使用注册名(PROGID)创建AdRotator对象的实例:

  <OBJECTRUNAT=ServerID=MyAdPROGID="MSWC.AdRotator"></OBJECT>

下面列出了ASP可安装的常用组件。

 

AdRotator

创建一个AdRotator对象,该对象可按指定计划在同一页上自动轮换显示广告。

BrowserCapabilities

创建一个BrowserType对象,该对象决定访问Web站点的每个浏览器的性能、类型及版本。

DatabaseAccess

提供用ActiveXDataObjects(ADO)对数据库的访问。

ContentLinking

创建一个NextLink对象,该对象可生成Web页内容列表,并象书一样将各页顺续连接。

FileAccess组件

提供文件的输入输出访问。

CollaborationDataObjectsforNTS组件

可以快速、简便的在Web页上添加收发邮件功能。

该组件只适用于InternetInformationServerforWindowsNT?

Server。

MyInfo

创建一个MyInfo对象,该对象追踪个人信息,例如站点管理员的姓名、地址及显示选择。

Counters

创建一个Counters对象,该对象可以创建、保存、增加或检索任意数量的独立计数器。

ContentRotator

自动翻转Web主页上的HTML内容字符串。

PageCounter

记录并显示Web页被打开的次数。

     现在WEB广告几乎充斥了整个网络,那么究竟如何在你自己的网站上建立一个符合广告领域标准功能的广告系统呢?

答案是利用ASPADRotator组件!

它允许在每次访问ASP页面时在页面上显示新的广告,并且提供了很强的功能,例如:

旋转显示在页面上的广告图象的能力、跟踪特定广告显示次数的能力以及跟踪客户端在广告上单击次数的能力。

ADRotator组件的工作是通过读取ADRotator计划文件来完成的,该文件包括与要显示的图象文件的地点有关的信息以及每个图象的不同属性,下面就是一个标准的ADRotator计划文件:

---ADROT.TXT---

REDIRECT/scripts/adredir.asp

WIDTH440

HEIGHT60

BORDER1

*

ads/homepage/chinabyte.gif

CheckouttheITsite

2

ads/homepage/gamichlg.gif

-

SponsoredbyFlyteworks

3

ads/homepage/asp.gif

http:

//

GoodASPsiteonnet

3

ads/homepage/spranklg.gif

The#1Sportssiteonthenet

2

    该段代码的前四行包含广告的全局设置。

Redirect行指出广告将成为其热连接的URL,注意这里不是为广告本身指定的URL,而是将调用的中间页面的URL,这样我们就可以通过这个中间页面跟踪单击广告的次数。

该RedirectURL将与包含两个参数的查询字符串一起调用:

特定广告主页的URL和图象文件的URL。

星号上面的其余三行简单说明如何显示广告。

前两行以像素为单位指定网页上广告的宽度和高度,默认值是440和60个像素。

后一行,同样是以像素为单位指定广告四周超链接的边框宽度,默认值是1个像素。

如果将该参数设置为0,则将没有边框。

    星号下面的行以每四行为一个单位描述每个广告的细节。

在此例中共有16行,描述四个广告。

每个广告的描述包含图象文件的URL、广告的主页URL(如果广告客户没有主页,请在该行写上一个连字符“-”,指出该广告没有链接)和图象的替代文字以及指定该页与其他页交替显示频率的数值。

    图象是重定向页面的热连接,它在查询字符串中设置了两个值,url=/scripts/adredir.asp以及image=/ads/homepage/asp.gif。

要确定广告显示的频率,可以将计划文件中所有广告的权值相加,在该例中总数是10,那么aspallian的广告权值为3,这意味着AdRotator组件每调用十次,它则显示3次。

    重定向文件是用户创建的文件。

它通常包含用来解析由AdRotator对象发送的查询字符串的脚本并将用户重定向到与用户所单击的广告所相关的URL。

用户也可以将脚本包含进重定向文件中,以便统计单击某一特定广告的用户的数目并将这一信息保存到服务器上的某一文件中。

增加计数器和重定向用户是通过下面两行ASP脚本来实现的:

<%

Counter.Increment(request.querystring("url"))

response.redirect(request.querystring("url"))

%>

    现在我们看一下AdRotator组件是如何在页面中使用的,首先必须使用Server.CreateObject方法实例化AdRotator对象。

AdRotator组件的PROGID属性是MSWC.AdRotator。

完整的代码如下:

<%Setad=Server.CreateObject("MSWC.AdRotator")%>

<%=ad.GetAdvertisement("/ads/adrot.txt")%>

     AdRotator组件支持的唯一方法是GetAdvertisement,它只有一个参数:

AdRotator计划文件的名称。

注意指向文件的路径是从当前虚拟目录的相对路径,物理路径是不允许的。

GetAdvertisement方法从Rotator计划文件中获取下一个计划广告的详细说明并将其格式化为HTML格式。

下面的HTML由GetAdvertisement方法生成且被添加到网页的输出中,以便显示Rotator计划文件中的下一个广告。

<AHREF="IMG

SRC="ALT="GoodASPsiteonnet"WIDTH=440HEIGHT=60BORDER=1></A>

   使用AdRotator组件我们可以直接通过对象属性而不是计划文件中的设置来直接控制某些广告特性,其可用属性如下:

Border指定广告边框的大小。

Clickable指定广告是否为超链接。

TargetFrame指定显示广告的框架的名称。

<%

Setad=Server.CreateObject("MSWC.AdRotator")

ad.Border=0

ad.Clickable=true

ad.TargetFrame=AdFrame

ad.GetAdvertisement("/ads/adrot.txt")

%>

    通过上面的学习,相信你已经能够熟练运用ASP的内建AdRotator组件为自己的网站建立一个标准的广告显示程序了。

你是否难以相信一切竟是如此的简单?

其实真正能令你震惊的还在后头呢,敬请关注下一篇ASPActiveX组件大揭密!

当你用ASP编写服务器端应用程序时,必须依靠ActiveX组件来强大Web应用程序的功能,譬如:

你需要连接数据库,对数据库进行在线操作等等,继上篇介绍了ADRotator组件后,本篇将接着给大家介绍其它一些常用的ASPActiveX组件的使用方法。

    最近仍有不少朋友来信问我,ASP是否只能在MicrosoftIIS上运行,是否可以在非NT平台上运作?

本来这个问题我已经回答过很多遍了:

我只是听说过有某种可以支持的软件,却从没见过。

但一些热情的朋友仍然孜孜不倦地来信询问,于是在朋友们的盛情之下,我访遍了ASP相关站点,竟惊奇的发现,原来ASP的确是可以运行在其它非NT平台上的,因此在本篇的开头,我就给来信的朋友们简要介绍一下如何在非NT平台上使用ASP。

    要在非NT平台上开发并运行ASP应用程序我们可以依赖于一套名为InstantASP的第三方软件,它的广告标语非常吸引人“ASPAnytime,Anywhere”,我想所有ASP的开发者们看到如此的标语必然兴奋不已。

这套由Halcyon软件公司开发的软件使得你无需重复开发原有ASP应用程序即可以将它运行在任何操作平台上!

这样非但节省了大量的开发时间,而且使得ASP真正成为了一种跨平台的Internet、Intranet或Extranet应用程序。

InstantASP本身其实是一套基于Java的应用程序,因此通过它你可以将基于WEB的ASP应用程序运行在任何平台上,下表列出了InstantASP目前版本所支持的操作平台。

    更令人吃惊的是InstantASP不仅提供了ASP的运作环境,而且它较目前市场上的ASP应用还提供了更为强大和实用的功能,它将ActiveX组件和EnterpriseJavaBeans或者CORBA-compliantobjects组合起来,从而使ASP有了更为广泛的应用。

它同样提供了通过ADO接口访问连接各种数据库,并生成动态页面的强大功能。

对于开发者而言可以使用自己擅长的编程语言或工具如:

VisualBasic,JScript,VBScript,C++,Java,HTML,Delphi,MSVisualInterDev等等来进行开发。

关于InstantASP具体安装和操作我就不在这里展开了,有兴趣的朋友可以到它的站点上去看看,你还可以免费下载一个试用版试试。

  继上一篇中作者给大家介绍了ADRotator组件的使用方法后,今天我们接着来看看其它的一些ASP常用组件。

  一、DatabaseAccess组件

  我们在WEB服务器上运用WEB应用程序进行的最常见和最实用的任务就是访问服务器端的数据库。

而ASP内建的DatabaseAccess组件使得我们能够轻而易举地通过ActiveXDataObjects(ADO)访问存储在服务器端的数据库或其他表格化数据结构中的信息。

ADO是对当前微软所支持的数据库进行操作的最有效和最简单直接的方法,它是一种功能强大的数据访问编程模式,从而使得大部分数据源可编程的属性得以直接扩展到你的ActiveServer页面上。

可以使用ADO去编写紧凑简明的脚本以便连接到OpenDatabaseConnectivity(ODBC)兼容的数据库和OLEDB兼容的数据源,这样ASP程序员就可以访问任何与ODBC兼容的数据库,包括MSSQLSERVER、Access、Oracle等等。

如果您是一个对数据库连接有一定了解的脚本编写人员,那么您将发现ADO命令语句并不复杂而且容易掌握。

同样地,如果您是一个经验丰富的数据库编程人员,您将会正确认识ADO的先进的与语言无关性和查询处理功能。

熟悉VB数据库编程的朋友会发现ADO与RDO(RemoteDataObjects)有某种类似的地方。

但据说ADO的访问的速度更快,内存需要更小。

   下面给大家简要介绍一下利用ASP的DatabaseAccess组件通过ADO连接并操作WEB数据库的步骤

第一步:

指定想要连接的数据库,有DSN和DSN-less两种方法。

DSN(DataSourceName数据源名称):

建立一个系统数据源名称,方法如下:

1、单击“开始”,选设置控制面板。

2、双击图标“32位ODBC”,将弹出一个对话框,选标签“SystemDSN”

3、单击“Add”添加一个DSN入口,选择如“MicrosoftAccessDrive”并确认。

4、在“DataSourceName”栏里输入你希望指定的DSN,然后单击“Select”选择数据库

存放位置,你可以按“Browse”来选取。

5、以上步骤完成后在ASP程序中指定DSN,如下:

  <%connstr="DSN"%>

   DSN-less:

是另一种通过在ASP文件里直接指定数据库文件所在位置,而无需建立DSN的

方法。

由于许多公司没有自己的WEB服务器,他们的网站往往是存放在远端的虚拟服务器上,因此

要建立和修改DSN的设置比较麻烦。

而使用DSN-less方法直接指定远端数据库所在位置恰恰解决了

这一问题,方法如下:

<%

connstr="DBQ="+server.mappath("database/source.mdb")+";

DefaultDir=;DRIVER={MicrosoftAccessDriver(*.mdb)};

DriverId=25;FIL=MSAccess;

ImplicitCommitSync=Yes;

MaxBufferSize=512;

MaxScanRows=8;

PageTimeout=5;

SafeTransactions=0;

Threads=3;

UserCommitSync=Yes;"

%>

在指定了想要连接的数据库后,就可以通过以下方法连接并打开数据库:

<%

SetConn=Server.CreateObject("ADODB.Connection")Conn.Openconstr

%>

第二步:

指定想要执行的SQL指令,可以使用RecordSet。

   当连接了数据库后就可以对数据库进行操作,比如查询、删除、更新等等,这些操作都是通过SQL指令来完成的,如下例在数据库表datebase中查询所有姓名中有“A”的记录:

<%

sql="select*fromdatebasewherenamelike\'A%%\'"

Setrs=Conn.Execute(sql)

%>

    尽管Connection对象简化了连接数据库和查询任务,但Connection对象仍有许多不足。

确切地说,检索和显示数据库信息的Connection对象不能用于创建脚本,您必须确切知道要对数据库作出的更改,然后才能使用查询实现更改。

对于检索数据、检查结果、更改数据库,ADO提供了Recordset对象。

正如它的名称所暗示的那样,Recordset对象有许多您可以使用的特性,根据您的查询限制,检索并且显示一组数据库行,即记录。

Recordset对象保持查询返回的记录的位置,允许您一次一项逐步扫描结果。

根据Recordset对象的指针类型属性设置,您可以滚动和更新记录。

数据库指针可以让您在一组记录中定位到特定的项。

指针还用于检索和检查记录,然后在这些记录的基础上执行操作。

Recordset对象有一些属性,可用于精确地控制指针的行为,提高您检查和更新结果的能力。

Recordset的使用方法如下:

  Setrs=Server.CreateObject("ADODB.Recordset")

  rs.OpenSQL指令,Conn,1,1\'读取

  或

  rs.OpenSQL指令,Conn,1,3\'新增、修改、或删除

第三步:

使用RecordSet属性和方法,并显示执行的结果。

    通过以上指令,我们创建了一个包含数据的游标(RecordSet)“rs”,事实上游标是存储在活动内存中的类似记录和字段的数组的东西,当通过RecordSet组件创建一个游标时,它从数据提供者的得到一个数据集,并用它来充实游标,我们可以想象ADO产生的RecordSet是一个象电子表格的记录,它有一行行的记录,在任何时候都有一行是它的当前行,而RecordSet的字段是用RecordSet的Field集合表示的。

下面列出了所创建的RecordSet对象(游标)的一些属性和方法:

  rs.Fields.Count:

RecordSet对象的字段总数。

  rs(i).Name:

第i个字段的名称,i由0算起到rs.Fields.Count-1。

  rs(i):

读取第i个字段的数据,i由0算起到rs.Fields.Count-1。

  rs("字段名称"):

读取指定字段的数据。

  rs.RecordCount:

游标中的数据记录总数。

  rs.EOF:

是否已指到最后一条记录。

  rs.MoveNext:

将指标移到下一笔记录。

  rs.MovePrev:

将指标移到上一笔记录。

  rs.MoveFirst:

将指标移到第一笔记录。

  rs.MoveLast:

将指标移到最后一笔记录。

  rs.Close:

关闭RecordSet对象

  有关ADO的其他介绍,作者将在今后给大家详细讲解。

    二、ContentLinking组件

   如果你的网站有一系列相互关联的页面的话,ContentLinking组件将非常适合你的需求,它非但可以使你在这些页面中建立一个目录表,而且还可以在它们中间建立动态连接,并自动生成和更新目录表及先前和后续的Web页的导航链接。

这对于列出联机报刊、电子读物网站以及论坛邮件是十分理想的选择。

  ContentLinking组件创建管理URL列表的Nextlink对象,要使用ContentLinking组件,必须需要先创建ContentLinkingList文件。

ContentLinking组件正是通过读取这个文件来获得处理我们希望链接的所有页面的信息。

事实上该文件是一个纯文本文件,其内容如下:

page1.htmone

page2.htmtwo

page3.htmthree

page4.htmfour

page5.htmfive

page6.htmsix

这个文本文件的每行有如下形式:

  urldescriptioncomment

     其中,URL是与页面相关的超链地址,description提供了能被超链使用的文本信息,comment则包含了不被ContentLinking组馐偷淖⑹托畔ⅲ淖饔萌缤绦蛑械淖⑹汀?

description和comment参数是可选的。

    下面我们来看看如何具体使用ContentLinking组件:

网络电子读物宝藏

网络电子读物导航

<%

SetLink=Server.CreateObject("MSWC.NextLink")

count=Link.GetListCount("nextlink.txt")

DimI

ForI=1tocount

%>

  • "><%=Link.GetNthDescription("nextlink.txt",I)%>

    <%Next%>

        在以上代码中,我们先用GetListCount方法确定在文件nextlink.txt中

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1