ASP编程入门进阶(十三):Ad Content Rotator

2018-09-06 12:41

阅读:409

  ASP的强大不仅仅局限于接受和显示的交互,更多的是运用ActiveX组件进行更强大的Web应用。

那究竟ActiveX组件为何物?它又是如何运作的呢?其实ActiveXServerComponents(ActiveX服务器组件)是一个存在于WEB服务器上的文件,该文件包含执行某项或一组任务的代码,组件可以执行公用任务,这样就不必自己去创建执行这些任务的代码。很形象的一句话:运用组件直接采用别人经典的功能强大的程序。只不过这程序已被封装了的。

那具体ActiveX组件是如何产生、如何得来的呢?一般由下面三个路径获得:
1,安装完IIS服务器以后,自带的一些内置组件,如DatabaseAccess数据库连接组件。
2,从第三方开发者处获得可选的组件,或者免费或者收费的,如一些上传组件(当然现在有无组件上传)。
3,如果你是一位Web程序开发者,可以使用VisualBasic、Java、VisualC++、COBOL等程序设计语言来编写你所需要的ActiveXServerComponent。这也就是所谓的ASP进行COM(ComponentObjectModel)、COM+开发了。

当然无论是第三方还是自行开发,在使用之前都必须要进行系统的注册。不过这些都是后话。我们现在需要的,是尽快先把ASP自带的一些组件搞懂吧。

不过在使用内置组件之前,先用一个程序检测一下自己机器中的组件支持情况。
引用一段网上流行的“阿江ASP探针”,将下列代码保存为asp文件进行调试查看。

1,objcheck.asp

<%Option Explicit %> <% Dim filename filename=Request.ServerVariables(SCRIPT_NAME) Dim ObjTotest(14,4) ObjTotest(0,0) = MSWC.AdRotator ObjTotest(0,1) = 广告轮显组件tentRotator ObjTotest(1,1) = 内容轮显组件 ObjTotest(2,0) = MSWC.BrowserType ObjTotest(2,1) =浏览器类型显示组件nters ObjTotest(7,0) = MSWC.IISLog ObjTotest(8,0) = MSWC.PermissionChecker ObjTotest(9,0) = Microsoft.XMLDom ObjTotest(10,0) = IISSample.ContentRotator ObjTotest(11,0) = IISSample.PageCounter ObjTotest(12,0) = Scripting.FileSystemObject ObjTotest(13,0) = adodb.connection public IsObj,VerObj,TestObj dim i for i=0 to 13 on error resume next IsObj=false VerObj= TestObj= set TestObj=server.CreateObject(ObjTotest(i,0)) If IsObject(TestObj) then IsObj = True VerObj = TestObj.version if VerObj= or isnull(VerObj) then VerObj=TestObj.about end if ObjTotest(i,2)=IsObj ObjTotest(i,3)=VerObj next sub ObjTest(strObj) on error resume next IsObj=false VerObj= TestObj= set TestObj=server.CreateObject (strObj) If IsObject(TestObj) then IsObj = True VerObj = TestObj.version if VerObj= or isnull(VerObj) then VerObj=TestObj.about end if End sub %> <title>Object Check</title> <table border=1 cellpadding=0 cellspacing=0 style=border-collapse: collapse bordercolor=#cccccc width=80%> <tr align=center><td width=40%>组 件 名 称</td><td width=40%>相 关 信 息</td></tr> <%For i=0 to 13%> <tr> <td>nbsp;<%=ObjTotest(i,0) nbsp;<font color=#888888> ObjTotest(i,1)%></font></td> <td>nbsp; <% If Not ObjTotest(i,2) Then Response.Write <font color=red>不支持</font> Else Response.Write 支持, left(ObjTotest(i,3),22) End If%></td> </tr> <%next%> </table> <FORM action=<%=filename%> method=post> <input type=text name=classname size=40> <INPUT type=submit value= 确 定 > </FORM> <% Dim strClass strClass = Trim(Request.Form(classname)) If strClass <> then Response.Write <br>您指定的组件的检查结果: Dim Verobj1 ObjTest(strClass) If Not IsObj then Response.Write <br><font color=red>很遗憾,该服务器不支持 strclass 组件!</font> Else if VerObj= or isnull(VerObj) then Verobj1=无法取得该组件版本 Else Verobj1=该组件版本是: VerObj End If Response.Write <br><font class=fonts>恭喜!该服务器支持 strclass 组件。 verobj1 </font> End If End if %> [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

如果你可以运行该ASP文件,也就是说你拥有IIS的WEB服务了。既然有IIS,不出意外,我们今天要学的组件AdRotator相信应该也是支持的。
P.S.一般微软自带的大多是MSWC开头,我也一般戏称为MicrosoftWC:)

一、AdRotator组件
该组件通常又称广告轮显组件,其功能相当于在网站上建立了一个,符合广告领域标准功能的广告系统。它具有:每次访问ASP页面时,在页面上显示不同的广告内容;跟踪特定广告显示次数的能力以及跟踪客户端在广告上单击次数的能力。

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

1,类型为txt文本,命名为myadrot.txt


redirectgourl.asp
width88
height31
border1
*


Blue!dea
10


代码的前四行包含了广告的全局设置:

1,Redirect指出广告将成为其热连接的URL。但其并非直接跳转的URL,它包含了两个参数的查询字符串:特定广告主页的URL和图象文件的URL。这些值从而可在gourl.asp文件中进行提取,并且与此同时gourl.asp还可以进行其他的处理工作,比如跟踪单击广告的次数、跳转到接受的的广告主页等。
2,width、height、border不用说一看就知道是连接图片的宽、高以及边框线大小。

“*”号表示了分隔符,以及“*”号下面的每四行为一个单位进行描述每个广告的细节。其中分别代表:

1,每个广告的描述包含图象文件的URL
2,广告对象的主页URL(如果广告客户没有主页,则该行为一个连字符“-”,指出该广告没有链接)
3,图象的替代文字
4,及指定该页与其他页交替显示频率的数值。

该文件是用户自创建的文件。它通常用来解析由AdRotator对象发送的查询字符串的脚本,并将用户重定向到与用户所点击的广告所相关的URL。那具体怎么应用该定向文件呢?

2、adrotator.asp
该文件最主要的是连接myadrot.txt文件,并且执行myadrot.txt文件中的信息内容。很简单,两行代码。


<%setmyad=Server.CreateObject(MSWC.adrotator)%>
<%=myad.getadvertisement(myadrot.txt)%>



“<%setmyad=Server.CreateObject(MSWC.adrotator)%>”学过Server对象,相信还记得该对象强大的一个方法,那就是CreateObject。他可用于创建已经注册到服务器上的ActiveX组件实例。那这就表示引用组件MSWC.adrotator了。

“<%=myad.getadvertisement(myadrot.txt)%>”AdRotator组件支持的唯一方法也就是GetAdvertisement了,它只有一个参数:AdRotator计划文件的名称。注意指向文件的路径是当前虚拟目录的相对路径,物理路径是不允许的。也就是说当前的adrotator.asp和myadrot.txt是在同一目录下了。

然后进行执行该ASP文件,多次刷新,会发现每次的广告确实是在轮显着的。这时再注意点击图片的超级连接地址。比如:


评论


亲,登录后才可以留言!