您的位置:首页精文荟萃软件资讯 → ASP服务器组件的编程

ASP服务器组件的编程

时间:2004/10/7 19:19:00来源:本站整理作者:蓝点我要评论(0)

重庆出版社电脑中心 陈刚

1.什么是ASP服务器组件



ASP(Active Server Page)是当今开发交互式Web页面、Web数据库应用最强大的技术。在其中可以混用HTML、DHTML、

ActiveX、VBScript或JavaScript。当这些技术都无法奏效时(例如进行高密度的数学运算、封装特定的数据库处理逻辑

等),可以使用服务器组件(Server SideComponent)进一步扩展ASP的能力。

Server SideComponent实际上是运行在服务器上的一个DLL,它可以完成常规DLL所能胜任的任何任务。不同之处是:它由

ASP页面调用、并以Web页面为交互对象,读入用户的输入(Web页面上各输入域的值),处理后返回结果到Web页面。这些

交互当然都要通过Web服务器作为中介。可以用VB、VFP、VC++、C++Builder、Delphi等任意支持COM技术的语言编写。由于

它可以利用服务器的任何资源,其功能仅受限于你的想象力。

目前支持ASP的Web服务器有IIS(Internet Information Server,WinNT Server4.0自带)和PWS(Personel Web Server,

用于Win95环境)。并要求安装VisualInterDev中的Server Components:FrontPage Server Extensions、 Active

ServerPages和Client Components:Visual InterDevClient。可以把这些都安装在同一台机器上,这样可以在单机上方便

地编程、调试。

下面用VB5.0开发一个Server Side Component(一个ActiveXDLL),以实现Web页面上的随机图形显示,相信它会为你的站

点增色不少。



2. Web页面上的随机图形显示



一个漂亮的图形可以使Web页面更具吸引力,使人流连忘返。但一旦我们的Web页面设 计完成,这个图形也就确定下来。换

言之,除非我们重新修改HTML代码,则每次打开这个页面,看到的都是同样一个图形。那么能否让用户在每次进入我们的

站点时,都能看到不同的画面呢?例如:每次这个Web页面被访问时,从一个包含若干图形文件的文件夹中随机选取一个,

在该页面上显示,使访问该页面的用户每次都会得到不同的视觉享受。

这个要求用HTML、DHTML或VBScript语言无法做到,这里我们用一个ASP服务器组件实现之。



3.用VB5.0建立ActiveX DLL



首先在VB5.0中新建一个Project ,类型为ActiveX DLL :设定属性如下:

Project Name:RandShowFile,

ClassModule Name:Randimage

其中类Randimage的代码如下:

Option Explicit

Private mvarFilePath As String 'local copy

Public Property Let FilePath(ByVal vData As String)

'设置文件路径

If Right(vData, 1) = "/" Or Right(vData, 1) = "\" Then

mvarFilePath = vData

Else

If InStr(vData, "/") <> 0 Then

mvarFilePath = vData & "/"

Else

mvarFilePath = vData & "\"

End If

End If

End Property



Public Property Get FilePath() As String

'取得文件路径

FilePath = mvarFilePath

End Property



Private Sub Class_Initialize()

mvarFilePath = ""

End Sub



Public Function Show(Optional ByVal Extension As String) As String

'从指定文件路径中随机选取并返回一个文件名

Dim MyPath As String

Dim MyName As String

Dim List() As String

Dim FileCount As Integer

Dim n As Integer

On Error GoTo badnews

If Len(mvarFilePath) <= 1 Then

Show = "NoFilePathSpecified "

Erase List

Exit Function

Else

If IsMissing(Extension) Then

Extension = "*.*" '如果扩展名没有指定,则默认为*.*

End If

MyPath = mvarFilePath & Trim(Extension) ' Set the path.

MyName = Dir(MyPath, vbNormal) ' Retrieve the first entry.

End If

FileCount = 0

ReDim List(10)

Do While MyName <> ""

List(FileCount) = MyName

FileCount = FileCount + 1

If FileCount >= UBound(List) Then

n = UBound(List) + 10

ReDim Preserve List(n)

End If

MyName = Dir()

Loop

If FileCount >= 1 Then

Randomize ' 初始化rand()函数,否则每次将产生相同的数字

n = Int(FileCount * Rnd()) ' 产生在1 和list1.listcount 之间的随机数.

Show = List(n)

Erase List

Exit Function

Else

badnews:

Show = "NoFileFound"

Erase List

End If

End Function

在编译之前,注意要在此Project中加入一个Module并在其中加入代码

Sub Main()

End Sub

然后在菜单Project | RandShowFile Projectise?引出的对话框中,设Startup

Object为Sub Main。最后在菜单File中,选Make Randimage.dll。到此,我们的SSC

就开发完成,并且它已自动注册在机器上。



4.在ASP页面中使用服务器组件



下面将建立一个ASP页面以测试我们的Server Side Component。

启动Visual InterDev,开始一个新的工程:New Projects,然后选取Web Project Wizard,在Project Name中输入

TestRandimage,点击OK后,Visual InterDev产生一些辅助文件,为新的工程做好准备,然后自动打开该工程。为了方便

测试,拷贝几个图形文件到Images文件夹中,文件类型可以是浏览器支持的任意图形文件,如BMP、TIF、GIF等 。

在该工程中建立ASP页面,点击菜单File | New ,在New 对话框中选Files | Active Server Page ,并指定其名字:

Randimage.asp。Visual InterDev将会为我们产生一个空的框架,在其中用手工加入代码。完成后的代码如下



<%@ LANGUAGE="VBSCRIPT" %>







测试randimage 组件,随机显示一个图形文件
图形文件路径:

<%=server.mappath("images")%>


<%set

ox=server.createobject("randshowfile.randimage")'实例化组件ox.filepath=serve

r.mappath("images")

%>



<%set ox=nothing '使用后释放组件%>





由于Web页面使用的路径(URL)都是虚拟路径(Virtual Directory),必须使用server.mappath()将其转换到物理路径

(Physical Directory)。例如,此处的图形文件夹images的虚拟路径是://Servername/TestRand image/Images(其中

Servername是你的Web服务器的名字),其对应的物理路径是C:\Inetpub\wwwroot\TestRandimage\Images 。如果不把

Images映射到物理路径则组件找不到该文件夹,无法正常工作。 代码完成后测试之,注意到在每次打开或刷新该页面时,

会有一个不同的图形显示在上面。



5.结束语



使用SSC可以大大丰富Web应用的功能、提高编程效率;完成HTML或VBScript等不易完成的任务;封装特定的商业逻辑等。

Server Side Component(以及ActiveX)等组件的编程也发展成为一项有利可图的事业。在Internet上可以找到很多有用

组件(免费的或不免费的),有兴趣者可到www.15seconds.com、www.activeserverpages.com、www.serverobjects.com

等站点上查看。如果你有一

个新颖有用的组件,也可以发表在这些站点上,说不定你可以因此得到一笔可观的收入呢。


相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本