ASP内置组件
前三讲中,我们主要介绍了ASP提供的四大内置对象:
l Response对象:向浏览器发送信息。
l Request对象:访问从浏览器发送到服务器的信息(如获取表单数据)。
l Session对象:存储、读取特定用户对话信息。
l Application对象:存储、读取所有用户共享的应用程序信息。
此外还有Server对象和ObjectContext对象我们将在以后的实例中学习(提示:其实不经意之间你已经可以利用所学知识编写网上聊天室了)。本讲的内容是使用ASP的ActiveX Server Components(组件)。
一、 Browser Capabilities Component(浏览器能力组件):
我们知道,不同的浏览器也许支持不同的功能,如有些浏览器支持框架,有些不支持。利用这个组件,可以检查浏览器的能力,使你的网页争对不同的浏览器显示不同的页面(如对不支持Frame的浏览器显示不含Frame的网页)。该组件的使用很简单,需注意的是,要正确使用该组件,必须保证Browscap.ini文件是最新的(其实每一个浏览器及其特性都列在这个文件中,自己打开看看就明白了),否则结果可能相去甚远,如Win98第二版所带的IE5.0,在下例中显示为Netscape。这个文件一般位于Web服务器的"\Winnt\System32\InetSrv"下,最新的版本可去yun_qi_img/468x60_1.gif 广告图片所在位置,也可为本地图形文件
yun_qi_img/www.163.com
http://www.sina.com.cn/
新浪网
30
http://61.139.77.73/images/canon.gif 也可以使用本地图片,如../images/flag.gif
http://www.canon.com.cn/
佳能
50
本例中一共有三个图片(图片大小468X60)及链接,每个链接的描述占四行,实际使用时,你可如法炮制,增加更多的图片。
<% 'wuf26.asp
URL = Request.QueryString("url")
Response.Redirect(URL)
%>
wuf26.asp是一个最简单的处理程序,你可根据实际需要在这里加入更多的代码。
运行一下,原来这个组件的使用也很简单,你要做的就是得到自己的AdrSet.txt文件。利用这个组件,你甚至可以设计一个现在已非常时髦的广告交换主页。
四、 Content Linking组件
显然这个组件与链接有关系,如果想马上知道这个组件的具体用途,恐怕还操之过急,不妨先引用一个经典的例子:假设在网上阅读一本书,你对以下这些链接一定不会陌生:第1章、第2章、…、上一章、下一章(或前一页、后一页)等等。我们现在要做的就是如何在这些链接之间方便快速地设置跳转。
首先建一个链接列表文本文件,如urllist.txt
wuf23.asp 第1章:文件操作(File Access组件)
wuf28.asp 第2章:Content Linking组件使用示例
wuf22.asp 第3章:浏览器能力组件
链接url地址和描述之间用 Tab 键分隔。下面wuf27.asp用来列出urllist.txt中的所有链接。
<% @LANGUAGE = VBScript %>
<% Option Explicit %>
<html><head><title>Content Linking组件使用</title></head>
<body>
<h2>目录列表: 注意核心链接是第2章, 你一定要点击它</h2>
<ul>
<%
Dim NextLink, Count
'建立 Content Linking 组件
Set NextLink = Server.CreateObject("MSWC.NextLink")
'获取文件 urllist.txt 中链接数目
Count = NextLink.GetListCount("urllist.txt")
Dim url, Dscr, I
For I = 1 To Count
url = NextLink.GetNthURL ("urllist.txt", I) '取得超链接
Dscr = NextLink.GetNthDescription ("urllist.txt", I) '取得文字描述
Response.Write "<li><a href = """ & url & """>" & Dscr & "</a>" & vbcrlf
Next
%>
</ul></body></html>
然后,以wuf28.asp为例说明如何自动实现上一章和下一章跳转。
<% @LANGUAGE = VBScript %>
<% Option Explicit %>
<html><head><title>这个链接要注意</title></head>
<body>
<p>这里是第 2 章的正文............</p>
<% '每个文件都包含下面这句, 就实现了自动链接%>
<!--#include file="wuf29.asp"-->
</body></html>
这里最后一句加上去就可以实现自动跳转,核心在wuf29.asp中。
<%
Dim NextLink, rank
Set NextLink = Server.CreateObject ("MSWC.NextLink")
'当前的链接在 urllist.txt 中位于第几个
rank = NextLink.GetListIndex ("urllist.txt")
Response.Write "<hr>"
If (rank > 1) Then 'rank = 1 不存在前一页
Response.Write "|<a href=""" & NextLink.GetPreviousURL("urllist.txt") & """>上一章</a>|"
End If
If (rank < NextLink.GetListCount("urllist.txt")) Then 'rank在最后, 则没有下一页
Response.Write "|<a href=""" & NextLink.GetNextURL("urllist.txt") & """>下一章</a>|"
End If
%>
运行这个例子后,你马上能真正理解这个组件的作用,简而言之,就是不需要在每页都写一个"上一章"、"下一章",完全通过wuf29.asp一下搞定,是不是很方便?!不然你要是手工修改链接的话,不是太麻烦了几点吗?
现在你应该明白了,网上大量的免费计数器、免费留言板、免费聊天室、广告交换网等等……,其原理都不过如此,大可不必崇拜。