欢迎光临
我们一直在努力

ASP服务器组件的编程

建站超值云服务器,限时71元/月

重庆出版社电脑中心 陈刚

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" %>

<html><head>

</head>

<body>

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

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

<%set

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

r.mappath("images")

%>

<img src="<%=ox.filepath&ox.show%>">

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

</body>

</html>

由于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

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

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

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP服务器组件的编程
分享到: 更多 (0)