⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0092.htm

📁 asp教程宝典``还不错
💻 HTM
字号:
<html>

<head>
<title>新时代软件教程:操作系统 主页制作 服务器 设计软件 网络技术 编程语言 文字编辑</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋体}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1  {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
    <p align="center"><big><strong>ASP服务器组件的编程</strong></big></p>

<p align="left"><span class="text"><font color="#0000ff">1.什么是ASP服务器组件</font></span></p>
    <p><span class="text">ASP(Active Server Page)是当今开发交互式Web页面、Web数据库应用最强大的技术。在其中可以混用HTML、DHTML、ActiveX、VBScript或JavaScript。当这些技术都无法奏效时(例如进行高密度的数学运算、封装特定的数据库处理逻辑等),可以使用服务器组件(Server 
    SideComponent)进一步扩展ASP的能力。<br>
    Server SideComponent实际上是运行在服务器上的一个DLL,它可以完成常规DLL所能胜任的任何任务。不同之处是:它由ASP页面调用、并以Web页面为交互对象,读入用户的输入(Web页面上各输入域的值),处理后返回结果到Web页面。这些交互当然都要通过Web服务器作为中介。可以用VB、VFP、VC++、C++Builder、Delphi等任意支持COM技术的语言编写。由于它可以利用服务器的任何资源,其功能仅受限于你的想象力。<br>
    目前支持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。可以把这些都安装在同一台机器上,这样可以在单机上方便地编程、调试。<br>
    下面用VB5.0开发一个Server Side Component(一个ActiveXDLL),以实现Web页面上的随机图形显示,相信它会为你的站点增色不少。</span></p>
    <p><span class="text"><font color="#0000ff">2. Web页面上的随机图形显示</font></span></p>
    <p><span class="text">一个漂亮的图形可以使Web页面更具吸引力,使人流连忘返。但一旦我们的Web页面设 
    计完成,这个图形也就确定下来。换言之,除非我们重新修改HTML代码,则每次打开这个页面,看到的都是同样一个图形。那么能否让用户在每次进入我们的站点时,都能看到不同的画面呢?例如:每次这个Web页面被访问时,从一个包含若干图形文件的文件夹中随机选取一个,在该页面上显示,使访问该页面的用户每次都会得到不同的视觉享受。<br>
    这个要求用HTML、DHTML或VBScript语言无法做到,这里我们用一个ASP服务器组件实现之。</span></p>
    <p><span class="text"><font color="#0000ff">3.用VB5.0建立ActiveX DLL</font><br>
    <br>
    首先在VB5.0中新建一个Project ,类型为ActiveX DLL :设定属性如下:<br>
    Project Name:RandShowFile,<br>
    ClassModule Name:Randimage<br>
    其中类Randimage的代码如下:<br>
    Option Explicit<br>
    Private mvarFilePath As String 'local copy<br>
    Public Property Let FilePath(ByVal vData As String)<br>
    '设置文件路径<br>
    If Right(vData, 1) = &quot;/&quot; Or Right(vData, 1) = &quot;\&quot; Then<br>
    mvarFilePath = vData<br>
    Else<br>
    If InStr(vData, &quot;/&quot;) &lt;&gt; 0 Then<br>
    mvarFilePath = vData &amp; &quot;/&quot;<br>
    Else<br>
    mvarFilePath = vData &amp; &quot;\&quot;<br>
    End If<br>
    End If<br>
    End Property</span></p>
    <p><span class="text">Public Property Get FilePath() As String<br>
    '取得文件路径<br>
    FilePath = mvarFilePath<br>
    End Property</span></p>
    <p><span class="text">Private Sub Class_Initialize()<br>
    mvarFilePath = &quot;&quot;<br>
    End Sub</span></p>
    <p><span class="text">Public Function Show(Optional ByVal Extension As String) As String<br>
    '从指定文件路径中随机选取并返回一个文件名<br>
    Dim MyPath As String<br>
    Dim MyName As String<br>
    Dim List() As String<br>
    Dim FileCount As Integer<br>
    Dim n As Integer<br>
    On Error GoTo badnews<br>
    If Len(mvarFilePath) &lt;= 1 Then<br>
    Show = &quot;NoFilePathSpecified &quot;<br>
    Erase List<br>
    Exit Function<br>
    Else<br>
    If IsMissing(Extension) Then<br>
    Extension = &quot;*.*&quot; '如果扩展名没有指定,则默认为*.*<br>
    End If<br>
    MyPath = mvarFilePath &amp; Trim(Extension) ' Set the path.<br>
    MyName = Dir(MyPath, vbNormal) ' Retrieve the first entry.<br>
    End If<br>
    FileCount = 0<br>
    ReDim List(10)<br>
    Do While MyName &lt;&gt; &quot;&quot; <br>
    List(FileCount) = MyName<br>
    FileCount = FileCount + 1<br>
    If FileCount &gt;= UBound(List) Then<br>
    n = UBound(List) + 10<br>
    ReDim Preserve List(n)<br>
    End If<br>
    MyName = Dir() <br>
    Loop<br>
    If FileCount &gt;= 1 Then<br>
    Randomize ' 初始化rand()函数,否则每次将产生相同的数字<br>
    n = Int(FileCount * Rnd()) ' 产生在1 和list1.listcount 之间的随机数.<br>
    Show = List(n)<br>
    Erase List<br>
    Exit Function<br>
    Else<br>
    badnews:<br>
    Show = &quot;NoFileFound&quot;<br>
    Erase List<br>
    End If<br>
    End Function<br>
    在编译之前,注意要在此Project中加入一个Module并在其中加入代码<br>
    Sub Main()<br>
    End Sub<br>
    然后在菜单Project | RandShowFile Projectise?引出的对话框中,设Startup<br>
    Object为Sub Main。最后在菜单File中,选Make Randimage.dll。到此,我们的SSC<br>
    就开发完成,并且它已自动注册在机器上。</span></p>
    <p><span class="text"><font color="#0000ff">4.在ASP页面中使用服务器组件</font><br>
    <br>
    下面将建立一个ASP页面以测试我们的Server Side Component。<br>
    启动Visual InterDev,开始一个新的工程:New Projects,然后选取Web Project 
    Wizard,在Project Name中输入TestRandimage,点击OK后,Visual InterDev产生一些辅助文件,为新的工程做好准备,然后自动打开该工程。为了方便<br>
    测试,拷贝几个图形文件到Images文件夹中,文件类型可以是浏览器支持的任意图形文件,如BMP、TIF、GIF等 
    。<br>
    在该工程中建立ASP页面,点击菜单File | New ,在New 对话框中选Files | 
    Active Server Page ,并指定其名字:Randimage.asp。Visual InterDev将会为我们产生一个空的框架,在其中用手工加入代码。完成后的代码如下<br>
    :<br>
    &lt;%@ LANGUAGE=&quot;VBSCRIPT&quot; %&gt;<br>
    &lt;html&gt;&lt;head&gt;<br>
    &lt;/head&gt;<br>
    &lt;body&gt;<br>
    &lt;h5&gt;测试randimage 组件,随机显示一个图形文件&lt;h5&gt;图形文件路径:<br>
    &lt;%=server.mappath(&quot;images&quot;)%&gt;&lt;br&gt;<br>
    &lt;%set<br>
    ox=server.createobject(&quot;randshowfile.randimage&quot;)'实例化组件ox.filepath=serve<br>
    r.mappath(&quot;images&quot;)<br>
    %&gt;<br>
    &lt;img src=&quot;&lt;%=ox.filepath&amp;ox.show%&gt;&quot;&gt;<br>
    &lt;%set ox=nothing '使用后释放组件%&gt;<br>
    &lt;/body&gt;<br>
    &lt;/html&gt;<br>
    由于Web页面使用的路径(URL)都是虚拟路径(Virtual Directory),必须使用server.mappath()将其转换到物理路径(Physical 
    Directory)。例如,此处的图形文件夹images的虚拟路径是://Servername/TestRand 
    image/Images(其中Servername是你的Web服务器的名字),其对应的物理路径是C:\Inetpub\wwwroot\TestRandimage\Images 
    。如果不把Images映射到物理路径则组件找不到该文件夹,无法正常工作。 
    代码完成后测试之,注意到在每次打开或刷新该页面时,会有一个不同的图形显示在上面。<br>
    <br>
    <font color="#0000ff">5.结束语</font><br>
    <br>
    使用SSC可以大大丰富Web应用的功能、提高编程效率;完成HTML或VBScript等不易完成的任务;封装特定的商业逻辑等。Server 
    Side Component(以及ActiveX)等组件的编程也发展成为一项有利可图的事业。在Internet上可以找到很多有用的组件(免费的或不免费的),有兴趣者可到www.15seconds.com、www.activeserverpages.com、www.serverobjects.com等站点上查看。如果你有一<br>
    个新颖有用的组件,也可以发表在这些站点上,说不定你可以因此得到一笔可观的收入呢。</span>

  </table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -