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页面上的随机图形显示,相信它会为你的站 点增色不少。
首先在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 就开发完成,并且它已自动注册在机器上。
使用SSC可以大大丰富Web应用的功能、提高编程效率;完成HTML或VBScript等不易完成的任务;封装特定的商业逻辑等。 Server Side Component(以及ActiveX)等组件的编程也发展成为一项有利可图的事业。在Internet上可以找到很多有用 的组件(免费的或不免费的),有兴趣者可到www.15seconds.com、www.activeserverpages.com、www.serverobjects.com 等站点上查看。如果你有一 个新颖有用的组件,也可以发表在这些站点上,说不定你可以因此得到一笔可观的收入呢。