![web应用程序设计:ASP.NET/PHP/JSP技术教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/193/26832193/b_26832193.jpg)
4.2 Ad Rotator广告轮播组件
ASP的Ad Rotator广告轮播组件又称广告循环组件,它可按指定计划在同一页上自动轮换显示广告,允许在每次访问ASP页面时在页面上显示新的广告。可以利用Ad Ro-tator组件通过读取Ad Rotator计划文件来帮助用户在自己的网站上建立一个符合广告领域标准功能的广告系统。使用Ad Rotator组件制作广告过程有以下三个步骤。
(1)建立Ad Rotator计划表文件。
(2)创建Ad Rotator组件对象。
(3)用Ad Rotator组件的GetAdvertisement方法读取计划文件。
4.2.1 建立Ad Rotator计划表文件
Ad Rotator组件的工作是通过读取Ad Rotator计划文件来完成的,该文件包括与要显示的图像文件的地点有关的信息以及每个图像的不同属性,文件的扩展名为.txt的文本文件,可用任何文本编辑器建立。下面就是一个标准的Ad Rotator计划文件。
![](https://epubservercos.yuewen.com/770EF7/15279425804131106/epubprivate/OEBPS/Images/figure_0111_0230.jpg?sign=1739528623-NqiaffFbXozv4gCUNvM7EC5JMmFIUSdb-0-cf7ecd9da092ea999fe1761513b1b144)
![](https://epubservercos.yuewen.com/770EF7/15279425804131106/epubprivate/OEBPS/Images/figure_0112_0231.jpg?sign=1739528623-98IiAqAaHZEYF5KBDKkekQkOxWxZxEva-0-b3b84570bc2418e184a1054438e5975a)
该段代码的前4行包含广告的全局设置。Redirect行指出广告将成为其热链接的URL,注意这里不是为广告本身指定的URL,而是将调用的中间页面的URL,这样我们就可以通过这个中间页面跟踪单击广告的次数。该Redirect URL将与包含两个参数的查询字符串一起调用特定广告主页的URL和图像文件的URL。星号上面的其余3行简单说明如何显示广告。前2行以像素为单位指定网页上广告的宽度和高度,默认值是250和60个像素。后一行,同样是以像素为单位指定广告四周超链接的边框宽度,默认值是1个像素。如果将该参数设置为0,则将没有边框。
星号下面的行以每4行为一个单位描述每个广告的细节。在此例中共有12行,描述3个广告。每个广告的描述包含图像文件的URL、广告主页的URL(如果广告客户没有主页,应在该行写上一个连字符“-”,指出该广告没有链接)和图像的替代文字以及指定该页与其他页交替显示频率的数值。
图像是重定向页面的热链接,它在查询字符串中设置了两个值,url=http://cn.yahoo.com/以及image=pic/YaHoo.gif。要确定广告显示的频率,可以将计划文件中所有广告的权值相加,在该例中总数是10,那么YaHoo的广告权值为3,这意味着AdRotator组件每调用10次,它则显示3次。
4.2.2 创建Ad Rotator组件对象
创建该组件使用的方法是Server.CreateObject。使用Server.CreateObject方法将Ad Rotator组件实例化成一个对象。由于该组件的注册名为MSWC.AdRotator。所以其Ad Rotator对象的代码应如下:
![](https://epubservercos.yuewen.com/770EF7/15279425804131106/epubprivate/OEBPS/Images/figure_0112_0232.jpg?sign=1739528623-gd2kzdGgLIPXzy9TSsongafBhuzYYAIz-0-ec88d130ebf379b1bb0aa8c37dae1ce2)
4.2.3 用Ad Rotator的GetAdvertisement方法读取计划文件
Ad Rotator组件支持读取计划文件的唯一方法是GetAdvertisement,它只有一个参数,这个参数就是计划文件的文件名。代码格式如下:
![](https://epubservercos.yuewen.com/770EF7/15279425804131106/epubprivate/OEBPS/Images/figure_0112_0233.jpg?sign=1739528623-C87zakxkYXBGeSBdPp5hUCogDjXEdJWK-0-f0257fd355065689fd7973f776757486)
注意指向文件的路径是当前虚拟目录的相对路径,物理路径是不允许的。GetAdver-tisement方法从Rotator计划文件中获取下一个计划广告的详细说明并将其格式化为HT-ML格式。下面的HTML由GetAdvertisement方法生成且被添加到网页的输出中,以便显示Rotator计划文件中的下一个广告。
![](https://epubservercos.yuewen.com/770EF7/15279425804131106/epubprivate/OEBPS/Images/figure_0112_0234.jpg?sign=1739528623-Rhi3LKwMGq7BOrub9uVY0epOsDCe18bb-0-1e3a74cef02eb14faf35d1f3a10310b6)
下面是一个ContentLinking的实例。
【例4.2.1】用Ad Rotator组件制作广告实例。
4-2-1. asp程序代码如下:
![](https://epubservercos.yuewen.com/770EF7/15279425804131106/epubprivate/OEBPS/Images/figure_0113_0235.jpg?sign=1739528623-8RXQ8SmKPxoqUKcIPDvkxjCFn0fXiuYY-0-8ecdc4f14ad83ab0a17707e42bf24e7b)
4-2-1_1. asp程序代码如下:
![](https://epubservercos.yuewen.com/770EF7/15279425804131106/epubprivate/OEBPS/Images/figure_0113_0236.jpg?sign=1739528623-hINF3d9eiKAXUiImd4IWfEUt2A3VxcjO-0-bbc90282eeb2ae04de199f80925ba4e4)
程序的执行结果如图4.2.1~图4.2.3所示。
![](https://epubservercos.yuewen.com/770EF7/15279425804131106/epubprivate/OEBPS/Images/figure_0113_0237.jpg?sign=1739528623-IRxtch4qNGX15Y0riJNm0FhNa8aKcudK-0-575c5dad0912145a21251583320425a3)
图4.2.1 广告轮播一
![](https://epubservercos.yuewen.com/770EF7/15279425804131106/epubprivate/OEBPS/Images/figure_0113_0238.jpg?sign=1739528623-afvwKOMIf4gxEhWk9K5Hlks5BdcPlEhQ-0-4e33c8d48f415a690d9ee152e7b06935)
图4.2.2 广告轮播二
![](https://epubservercos.yuewen.com/770EF7/15279425804131106/epubprivate/OEBPS/Images/figure_0113_0239.jpg?sign=1739528623-pik61GlxblrK4YnDEfpgv8Q93copNecz-0-83f5c7a06f698acbd7ba8c8ed0a3917d)
图4.2.3 广告轮播三