ASP服务器端组件编程实例介绍
ASP服务器端组件编程实例介绍
[前言:]ASP 编写服务器端应用程序时,必须依靠组件提供的强大的Web应用程序的功能,熟练使用ASP内建的以及第三方厂商提供的组件可以极大的提高开发效率。
Ad Rotator 组件参考
Ad Rotator组件创建一个Ad Rotator对象,该对象在Web页上自动轮换显示广告图像。当用户每次打开或重新加载Web页时,Ad Rotator组件将根据在Rotator Schedule文件中指定的信息显示一个新广告。
可以记录每个广告被多少个用户单击访问,方法是在Rotator Schedule文件中设置一个URL参数,将用户定向到重定向文件中。如果指定了此参数,那么当每次跳转到一个广告客户的URL时,都会在Web服务器的活动日志中作相应的记录。关于活动日志的详细信息,请参阅记录Web站点活动。
文件名
adrot.dll Ad Rotator组件。
重定向文件 可选文件,用于实现重定向并允许Ad Rotator组件记录每个广告被多少个用户单击访问。
Rotator Schedule文件文本文件,包含广告的显示计划和文件信息。此文件必须在Web服务器的某个虚拟路径上可用。
语法
Set AdRotator = Server.CreateObject("MSWC.AdRotator")
参数
AdRotator 指定AdRotator对象的名称,此对象通过调用Server.CreateObject创建。
注册表项
无。
属性
Border指定广告边框的大校
Clickable指定广告是否为超链接。
TargetFrame 指定显示广告的框架的名称。
方法
GetAdvertisement从数据文件中获取下一个计划广告的详细说明并将其格式化为HTML格式。
示例
下面的示例在用户每次查看Web页时显示不同的广告。
<% Set ad = Server.CreateObject("MSWC.AdRotator") %>
<%= ad.GetAdvertisement("/ads/adrot.txt") %>
下面的HTML由GetAdvertisement方法生成且被添加到网页的输出中,以便显示Rotator Schedule文件中的下一个广告。
<A HREF="http://www.msn.com/isapi/adredir.asp?http://www.company.com/">
<IMG SRC="http://msnnt3web/ads/homepage/chlogolg.gif" ALT="Check out the new Technology Center" WIDTH=440 HEIGHT=60 BORDER=1></A>
Rotator Schedule文件包含的Ad Rotator组件用于管理和显示各种广告图象的信息。在该文件中,用户可以指定广告的细节,例如广告的空间大孝使用的图象文件以及每个文件的显示时间所占百分比。
Rotator Schedule文件由两部分组成。第一部分设置应用于轮换安排中所有广告图象的参数;第二部分指定每个单独广告的文件和位置信息以及应当接收的每个广告的显示时间所占百分比。这两部分由全是星号(*)的一行隔开。
在第一部分中有四个全局参数,每个参数都由一个关键字和值组成。所有的参数都是可选的。如果用户未指定全局参数的值,则Ad Rotator将使用默认的值。在这种情况下,文件的第一行必须只有一个星号(*)。
语法
[REDIRECT URL] [WIDTH numWidth] [HEIGHT numHeight] [BORDER numBorder] * adURL adHomePageURL Text impressions |
参数
URL
指定动态链接库(.dll)或执行重定向的应用程序(.asp)文件的路径。该路径必须是完整的(http://MyServer/MyDir/redirect.asp)或相对的虚拟目录(/MyDir/redirect.asp)。
numWidth
以像素为单位指定网页上广告的宽度。默认值是440个像素。
numHeight
以像素为单位指定网页上广告的高度。默认值是60个像素。
numBorder
以像素为单位指定广告四周超链接的边框宽度。默认值是1个像素。如果将该参数设置为0,将没有边框。
adURL
广告图象文件的位置。
adHomePageURL
广告主页的位置。如果广告客户没有主页,请在该行写上一个连字符(-),指出该广告没有链接。
Text
在浏览器不支持图形或关闭图象功能的情况下显示的替代文字。
impressions
从0到4,294,967,295的数,指出广告的相对权值。
例如,如果Rotator Schedule文件包含3个广告,其impressions分别设为2、3和5,则第一个广告占用20%的显示时间,第二个占用30%的显示时间,第三个占用50%的显示时间。
示例
下面的脚本演示是如何使用Rotator Schedule文件显示各种广告以及如何包含重定向文件。
---ADROT.TXT---
REDIRECT /scripts/adredir.asp WIDTH 440 HEIGHT 60 BORDER 1 * http://kabaweb/ads/homepage/chlogolg.gif http://www.bytecomp.com/Check out the ByteComp Technology Center20 http://kabaweb/ads/homepage/gamichlg.gif -Sponsored by Flyteworks20 http://kabaweb/ads/homepage/ismodemlg.gif http:// www.proelectron.com/28.8 internal PC modem, only $99 80 http://kabaweb/ads/homepage/spranklg.gif http://www.clocktower.com/The #1 Sports site on the net 10 |
重定向文件是用户创建的文件。它通常包含用来解析由 AdRotator 对象发送的查询字符串的脚本并将用户重定向到与用户所单击的广告所相关的URL。
用户也可以将脚本包含进重定向文件中,以便统计单击某一特定广告的用户的数目并将这一信息保存到服务器上的某一文件中。
示例
下面的示例将用户重定向到广告客户的主页。
---ADREDIR.ASP---
<% Response.Redirect(Request.QueryString("url")) %>
AdRotator 对象有下列属性:
一.Border
二.Clickable
三.TargetFrame
1.Border 属性允许用户指定显示广告时四周是否带边框。
语法
Border = size
参数
size
指定显示的广告四周的边框宽度。其默认值在 Rotator Schedule 文件的文件头中设置。
示例
下面的例子显示不带边框的广告。
<% Set ad = Server.CreateObject("MSWC.AdRotator") ad.Border = 0 %>
<%= ad.GetAdvertisement("/ads/adrot.txt") %>
2.Clickable
Clickable 属性允许用户指定是否将广告作为超链接显示。
语法
Clickable = value
参数
value
指定广告是否为超链接。此参数可为下列值之一。默认值是TRUE。值意义:TRUE 将广告作为超链接显示。
FALSE 将广告不作为超链接显示。
示例
下面的示例只将广告作为图像显示,而不是作为超链接。
<% Set ad = Server.CreateObject("MSWC.AdRotator") ad.Clickable = FALSE %>
<%= ad.GetAdvertisement("/ads/adrot.txt") %>
3.目标框架
TargetFrame 属性指定链接将被装入的目标框架。该属性完成的功能等价于 HTML 语句中的 TARGET 参数。
语法
TargetFrame = frame
参数
frame
指定用来显示广告框架的名称。该参数也可以是一个 HTML 框架关键字, 例如 _TOP、_NEW、_CHILD、_SELF、_PARENT 或 _BLANK。默认值是 NO FRAME。
示例
下面的例子显示框架 AdFrame中的广告。
<% Set ad = Server.CreateObject("MSWC.AdRotator") ad.TargetFrame = AdFrame %>
<%= ad.GetAdvertisement("/ads/adrot.txt") %>
AdRotator 对象只有一个方法.GetAdvertisement
GetAdvertisement 方法从 Rotator Schedule 文件中获取下一个广告。每次运行脚本时,例如当用户打开或刷新一页时,此方法会获取下一个安排的广告。
语法
GetAdvertisement(rotationSchedulePath)
参数
rotationSchedulePath
指定 Rotator Schedule 文件相对于虚拟目录的位置。例如,若物理路径为 C:/Inetpub/Wwwroot/Ads/Adrot.txt(其中Wwwroot 是 "/" 虚拟目录)则应指定路径 /Ads/Adrot.txt。
返回值
返回在当前页中显示广告的 HTML。
示例
下面的示例从 Adrot.txt 文件中获取广告,此文件位于 /Ads/ 虚拟目录下。
<% Set NextAd = Server.CreateObject("MSWC.AdRotator") %>
<%= NextAd.GetAdvertisement("/ads/adrot.txt") %>
浏览器性能组件
对于ASP的扩展组件,有些大家已耳熟能详,有些则还陌生的很,写这篇文章的的意图无非想抛砖引玉,在各位对ASP几大对象已烂熟于心时,不妨玩玩一些不常用的可扩展组件,相信会对各位的ASP编程有很大的启发。(这篇文章的内容来自MSDN,对其了若指掌的朋友自不必看。还有,小妹的耐 心不好,如果写完了这篇没有长性就此罢笔,望各位在大骂的时候留点口德,多谢多谢。):b
[center]Browser Capabilities Component——浏览器性能组件[/center]
浏览器性能组件创建一个浏览器类型(BrowserType)对象用以向你的脚本描述客户端浏览器能力。
一旦一个浏览器连接到Web服务器,浏览器会自动将一串用户代理HTTP报头(User Agent HTTP Header)传送到服务器。该报头为一ASCII字符串用以识别该浏览器及其版本号。浏览器类型(BrowserType)对象将该报头与Browsercap.ini文件中的条目进行比较。
如果找到匹配的条目,浏览器类型(BrowserType)对象假设该浏览器具备Browsercap.ini文件中所描述的属性。
如果对象没有在Browsercap.ini文件中找到与报头匹配的条目,浏览器类型(BrowserType)对象假设该浏览器具备默认浏览器的属性。如果没有匹配条目并且Browsercap.ini文件没有定义默认浏览器的各项设置,则浏览器类型(BrowserType)对象将该浏览器的各项属性值赋为“Unkown”。
通过升级Browsercap.ini文件,你可以方便的把浏览器属性或者对新浏览器的描述加入到这个组件(稍候介绍如何升级Browsercap.ini文件)。
文件名
Browsercap.dll 浏览器性能组件
Browsercap.ini 一个用以描述浏览器属性的文本文件,该文件必须和Brwosercap.dll文件处于同一目录下
语法
Set BrowserType = Server.CreateObject("MSWC.BrowserType")
参数
BrowserType——用Server.CreateObject语句创建的浏览器类型(BrowserType)对象的名字
注册条目
无需注册
例子
以下例子给出如何用浏览器性能组件取得当前浏览器一些属性。
<% Set bc = Server.CreateObject("MSWC.BrowserType") %> <table border=1> <tr><td>Browser</td><td> <%= bc.browser %> </td></TR> <tr><td>Version</td><td> <%= bc.version %> </td></TR> <tr><td>Frames</td><td> <% if (bc.frames = TRUE) then %> TRUE <% else %> FALSE <% end if %> </td></TR> <tr><td>Tables</td><td> <% if (bc.tables = TRUE) then %> TRUE <% else %> FALSE <% end if %> </td></TR> <tr><td>BackgroundSounds</td><td> <% if (bc.BackgroundSounds = TRUE) then %> TRUE <% else %> FALSE <% end if %> </td></TR> <tr><td>VBScript</td><td> <% if (bc.vbscript = TRUE) then %> TRUE <% else %> FALSE <% end if %> </td></TR> <tr><td>JScript</td><td> <% if (bc.javascript = TRUE) then %> TRUE <% else %> FALSE <% end if %> </td></TR> </table> |
Browscap.ini文件
你可以在Browscap.ini文件中描述任意多个浏览器的属性。你也可以设置一套默认属性,当浏览器发送的报头无法和Browscap.ini中的任何条目匹配时,浏览器类型(BrowerType)对象会假设该浏览器具备默认的属性。
每个浏览器定义由一个HTTP报头、一些属性名以及相关属性值构成。关于各种浏览器的HTTP报头的定义可参考[link]http://www.w3.org/[/link]网站中的内容。
语法
[; comments] [HTTPUserAgentHeader] [parent = browserDefinition] [property1 = value1] ... [propertyN = valueN] [Default Browser Capability Settings] [defaultProperty1 = defaultValue1] ... [defaultPropertyN = defaultValueN] |
参数
comments
注释,以;开头的任意多行
HTTPUserAgentHeader
HTTP用户代理报头,类似于以下格式[Mozilla/2.0 (compatible; MSIE 3.0;* Windows 95)],其中可以使用通配符*。
browserDefinition
用以定义父类的HTTP报头
propertyN
浏览器的属性名,可从属性列表中选取所需的属性(详细列表见附录)
valueN
浏览器的属性值
defaultPropertyN
默认浏览器的属性名,可选属性同propertyN
defaultValueN
默认浏览器的属性值
例子
;;ie 4.0 [IE 4.0] browser=IE Version=4.0 frames=TRUE tables=TRUE cookies=TRUE backgroundsounds=TRUE vbscript=TRUE javascript=TRUE javaapplets=True ActiveXControls=TRUE beta=False ;;ie 4.01 [Mozilla/2.0 (compatible; MSIE 4.01*; Windows 95)] parent=IE 4.0 version=4.01 minorver=01 platform=Win95 ; Default Browser [Default Browser Capability Settings] browser=Default frames=FALSE tables=TRUE cookies=FALSE backgroundsounds=FALSE vbscript=FALSE javascript=FALSE |
附录——浏览器属性列表
属性名 | 描述 |
ActiveXControls | 指定浏览器是否支持ActiveX控件 |
backgroundsounds | 指定浏览器是否支持背景音乐 |
beta | 指定浏览器是否是测试版 |
browser | 指定浏览器的名字 |
cdf | 指定浏览器是否支持Web发布的频道解释定义(Channel Definition Format) |
cookies | 指定浏览器是否支持cookies |
frames | 指定浏览器是否支持帧显示 |
Javaapplets | 指定浏览器是否支持Java applets |
javascript | 指定浏览器是否支持javascript |
platform | 指定浏览器运行所需的操作系统 |
tables | 指定浏览器是否支持表格 |
vbscript | 指定浏览器是否支持vbscript |
version | 指定浏览器的版本 |
注:以上解释内容为“指定浏览器是否支持”开头的属性,其属性值应为True/False,其余为字符串
细说ASP中Counters 组件
概述
Counter 组件创建一个可创建、存储、增长和检索任何数量的独立计数器的 Counters 对象。
计数器是一个包含整数的持续值。可以使用 Counters 对象的 Get、Increment、Set 和 Remove 方法控制计数器。一旦您创建了计数器,它将一直持续下去直到被删除为止。
计数器不会在一个事件比如访问一页时自动增加。您必须使用 Set 和 Increment 方法人工的设置或增长计数器。
计数器不受作用域限制。一旦您创建了一个计数器,那么您的站点上的任何页都可以检索和控制它的值。例如,若您在一个名为 Page1.asp 的页上显示和增加一个叫做 hits 的计数器的值,而又在另一个叫做 Page2.asp 的页上增加 hits 的值,则两页将增加同一计数器。若您访问 Page1.asp 时,计数器的值增加到 34,则访问 Page2.asp 会将 hits 增加到 35。下一次访问 Page1.asp,hits 将增加到 36。
所有计数器都存储在一个单独的名为 counters.txt 的文本文件中,它同 counters.dll 文件存储在同一目录下。
文件名
counters.dll Counters 组件。
counters.txt 该文件在一个站点上存储所有独立的计数器。counters.txt 是一个 UTF8 编码文件。您可以在计数器名称中使用任何 Unicode 字符。
语法
将下列内容加入到 global.asa 文件中在您的服务器上可一次性创建 Counters 对象:
<OBJECT RUNAT=Server SCOPE=Application ID=Counter PROGID="MSWC.Counters"> </OBJECT> |
注册表项
无。
注释
在您的站点上仅创建一个 Counters 对象。这一单个 Counters 对象可以创建任意数量的独立计数器。
注意 对于 Windows® 95 上的 Personal Web Server,已在默认的虚拟目录下的 global.asa 文件 中指定了一个 Counters 组件。可以通过调用 Counters.Get、Counters.Increment、Counters.Remove 和 Counters.Set 使用组件创建的 Counters 对象,就好象它是内建的一样。您不可以创建 Counters 对象的其他实例。
方法
Get 返回计数器的值。
Increment 计数器的值加一。
Remove 从 counters.txt 文件中删除计数器。
Set 将计数器的值设为一个特定的整数。
示例
通过将 ID 属性设置为 Counter,在 global.asa 文件中创建 Counters 对象的实例:
<OBJECT RUNAT=Server SCOPE=Application ID=Counter PROGID="MSWC.Counters">
</OBJECT>
然后就可以在某一页上使用 Counters 对象创建全部所需的计数器:
There have been <%= Counter.Increment('defaultPageHits') %> to this site.
然后在另一页上就可以使用下列方法增加计数器的值:
You are visitor number<%= Counter.Increment('LinksPageHits') %> to this page.
注意 该组件可从包含 IIS IIS Resource Kit 的 CD 中得到。
Get方法
Get 方法根据计数器的名称返回此计数器的当前值。若此计数器不存在,则该方法创建它并将其置为 0。
语法
Counters.Get(CounterName)
参数
CounterName
包含计数器名称的字符串。
示例
用 <%= Counters.Get(CounterName) %> 可显示计数器的值。用 <% countervar = Counters.Get(CounterName) %> 将计数器的值赋给一个变量。
下列脚本显示关于所喜爱的颜色的民意测验的投票记分。
<% If colornumber = "1" Then Counters.Increment("greencounter") Else If colornumber = "2" Then Counters.Increment("bluecounter") Else If colornumber = "0" Then Counters.Increment("redcounter") End If End If End If %> <P>Current vote tally: <P>red: <% =Counters.Get("redcounter") %> <P>green: <% = Counters.Get("greencounter") %> <P>blue: <% = Counters.Get("bluecounter") %> |
Increment方法
Increment 方法根据计数器的名称,将该计数器的值加 1,并返回计数器的新值。若计数器不存在,此方法将创建该计数器并将其值设为 1。
语法
Counters.Increment(CounterName)
参数
CounterName
包含计数器值的字符串。
示例
使用 <% Counters.Increment(CounterName) %> 可增加计数器的值。使用 <%= Counters.Increment(CounterName) %> 可增加和显示计数器的值。
为了获取计数器的值,可使用 Counters.Get。要将计数器的值设为一个特殊值,请使用 Counters.Set。
下列代码实现联机页访问计数器。
<P>There have been <%= Counters.Increment("hits") %> visits to this Web page.
</P>
在上面的示例中,每次客户端向服务器发出页请求时,都使用 Counters.Increment 将计数器的值加 1。
Remove方法
Remove 方法根据计数器的名称,从 Counters 对象和 counters.txt 文件中删除计数器。
语法
Counters.Remove(CounterName)
参数
CounterName
包含计数器名称的字符串。
示例
下列代码从 counters.txt 文件中删除计数器 hitscounter 。
<% Counters.Remove(hitscounter) %>
Set方法
Set 方法根据计数器的名称和一个整数参数,将计数器设置为该整数值,并返回此新值。若该计数器不存在,则 Counters.Set 创建计数器并将其值设为这一整数。
要获取计数器的值,可使用 Counters.Get。要使计数器的值加一,可使用 Counters.Increment。
语法
Counters.Set(CounterName, int)
参数
CounterName
包含计数器名称的字符串。
int
CounterName 的新的整数值。
示例
下列代码将访问计数器 pageHits 重置为 0。
<% Counters.Set(pageHits, 0) %>
用CDO组件来发邮件
我们这里来玩玩发邮件的功能,当然,我们不能向perl,php一样有内置的发邮件的东东,嘿嘿!我们还是得用组件,不过,这个组件可不需要你花钱的啊!它是iis中SMTP中自带的! 我们来对其发邮件的功能来一次快闪吧!
Set cdo=Server.CreateObject("CDONTS.NewMail")
cdo.send "webmaster@aspcn.com","dd@263.net","ASP中华网的来信","你好啊!",0
Set cdo=Nothing
!!!!???就这么的短!!!不可能吧!
嘿嘿,你来试试,如果你有服务器,把dd@263.net改成你的电子邮件,再把这个代码拿到上面去试试,你一定能够收到信的!
这是发信的最直接的方法!格式是:
cdo.send fromAddress,ToAddress,Subject,Body,Importance
当然,我们要让它复杂一点也是可以的,我们来看看,把上面的例子写详细点!
Set cdo=Server.CreateObject("CDONTS.NewMail") cdo.From="webmaster@aspcn.com" cdo.To="dd@263.net" cdo.Subject="ASP中华网的来信" cdo.Body="你好啊!" cdo.MailFormat=0 cdo.BodyFormat=0 cdo.Importance=0 cdo.Send Set cdo=Nothing |
这样大家都看清楚了吧!
里面有几个要解释一下咯!
Importance是指邮件的重要性,0是表示低重要性,1表示正常,2表示高重要
bodyFormat是指邮件的正文的格式,0表示HTML格式,1表示普通文本
MailFormat是指邮件的格式,是文本消息(1),还是MIME格式(0)
我们还可以为邮件加附件,只需一句:
cdo.AttachFile "c:/du/asp.gif"
很简单吧!
好了,发邮件就这么多了,你们快回去发自己的第一封用ASP发出来的信吧!
以后再讲讲用ASP来收取本服务器上邮件吧!
from
其他文章: ASP 编程中20个非常有用的例子[转] 在ASP中调用dll 软件构件技术在MIS开发中的应用 J2EE中间件集成企业应用 WINDOWS程式设计--动态链接库(2) Hooks(钩子)监听消息的方法 aspjpeg组件高级使用方法介绍 |
<script type="text/javascript"> google_ad_client = "pub-2416224910262877"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_channel = ""; google_color_border = "E1771E"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>