ASP服务器组件的编程


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 
就开发完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值