关于用COM封装ASP代码的文章,建议加入精华区

封装|精华

ActiveX是微软提出的广泛应用于Windows系列的一种代码封装技术,提高了程序代码的可重用性,加快了程序项目的开发速度,一般被称为“组件”。在VB6的集成开发环境当中,我们可以看到一下几种ActiveX项目:

  1、ActiveX EXE

  这是在“过程外”运行的ActiveX/COM服务器组件,也就是说他们运行的过程和初始化组件的客户机代码不同。尽管可以用ASP访问ActiveX EXE,但是不推荐改动IIS元库,该库允许所有的可执行文件由服务器上运行的脚本代码启动。

  2、ActiveX OCXs

  这些特殊的组件把主机应用程序显示和操作组件所需的附加支持包含在GUI环境中。还可以把OCX组件放在网页当中。但是,OCX是应用程序界面,不可以使用ASP来创建的。

  3、ActiveX文档DLL和ActiveX文档EXE

  Active文档可以在OLE文件箱应用程序中,例如IE或者Office Binder,显示VB表单。但他们在ASP不能应用。

  4、ActiveX DLLs

  这些ActiveX/COM组件和初始化组件的客户机在同一个进程中运行。而我们要讨论的ActiveX DLL正是整个组件。一般微软的附加组件和其他的一些第三方厂家提供的各种组件都是这种类型的ActiveX DLL,但是并不全是使用VB编写的,同样可以使用VC/JAVA等等语言来开发。

  探讨完了什么是ActiveX DLL,我们开始正式编写我们自己的ActiveX DLL,以便来实现ASP中的同样功能,众所周知,ASP内置了Response、Request、Server、Session、Application五个对象,其实这五个内置对象正是IIS控制台初始化的五个ActiveX DLL组件,既然IIS可以初始化这五个组件用于ASP中,我们当然也可以直接在我们的ActiveX DLL中引用这些组件来实现我们的编程,也就是说我们可以在VB应用程序中通过引用这些组件来实现访问ASP内置对象的功能。

  只要你安装了PWS4或者IIS4以上的WEB服务器,你就拥有了一个名称叫做“Microsoft Active Server Pages Object”的对象库,我们可以在VB的ActiveX DLL应用中引用这个对象库,通过引用这个对象库,我们就获得了一个对象(类):ScriptingContext,这个对象也正是我们整个文章探讨的核心对象。对象库内的关系如下:

  对象库      类        类成员

  ASPTypeLibrary ScriptingContext Application

                    Request

                    Response

                    Session

                    Server

  通过上面的关系图,我们就可以很容易理解类ScriptingContent。下面我们来看一个具体的例子吧:

  1、 使用VB6创建一个新的ActiveX DLL项目

  2、 引用“Microsoft Active Server Pages Object”对象库。

  3、 创建两个组件事件:OnStartPage以及OnEndPage

  4、 在事件OnStartPage中创建类ScriptingContent的一个引用。

  5、 实例化类ScriptingContent。

  Test.cls (类实现)

  '对象的声明

  Dim rp as Response

  Dim rq as Request

  Dim ap as Application

  Dim sr as Server

  Dim sn as Session

  '当组件被创建的时候会触发这个事件

  Public Sub OnStartPage(mysc as ScriptingContent)

   '进行对象的实例化

   set rp=mysc.Response

   set rq=mysc.Request

   set sr=mysc.Server

   set ap=mysc.Application

   set sn=mysc.Session

   rp.write "<br>ActiveX DLL组件已经被创建了!<br>"

  End Sub

  '当组件被销毁的时候触发这个事件

  Public Sub OnEndPage()

   Rp.write "<br>ActiveX DLL组件已经被销毁!<br>"

   '销毁对象

   Set rp=nothing

   Set rq=nothing

   Set sr=nothing

   Set ap=nothing

   Set sn=nothing

  End Sub

  '定义我们自己的一个组件方法

  Public Sub HelloWorld()

   Rp.write "<H1>Hello,World!</H1>"

  End Sub

  这样,我们就创建可以访问ASP内置对象的ActiveX DLL了。我们命名这个组件项目为first,在VB中间编译这项目成为一个DLL文件first.dll,并且我们在系统中注册这个DLL文件。接下来,我们需要一个简单的几乎没有什么代码的ASP程序来调用这个组件:

  test.asp

  <html>

   <head>

    <title>测试ActiveX DLL</title>

   </head>

   <body>

  <%

  Dim testme

  '创建我们刚才编译成功的组件,一旦创建这个组件,同时会在叶面输出文字“ActiveX DLL组件已经被

  '创建了!”

  set testme=server.createobject("first.test")

  '调用组件的方法

  testme.HelloWorld

  '注销组件,在注销的同时,会自动在叶面显示“ActiveX DLL组件已经被销毁!”

  set testme=nothing

  %>

   </body>

  </html>

  通过上面简单的例子,我们可以看到使用ActiveX DLL同样可以实现和ASP同样的功能,并且带来的代码保密和程序运行更加高效的优点。ActiveX DLL和纯ASP有着各自的优点和缺点,只要我们合理的运用这两种技术,比如适当的将商业逻辑封装在ActiveX DLL中,或者在需要保密的地方使用DLL封装技术,一定可以编写出高效快速的WEB应用程序。

  (以上程序在VB6企业版、Windows2000 Server中文版测试通过)

时间: 2024-11-09 00:20:41

关于用COM封装ASP代码的文章,建议加入精华区的相关文章

用VB生成DLL封装ASP代码一个例子:连接access数据库等

access|封装|数据|数据库 封装为dll会带来很多的好处,主要包括只是产权的保护,以及效率和安全性能的提升.这个例子中被封装的dll文件可以隐藏access数据库的实际路径. VB生成的DLL封装ASP代码来连接数据库(Access). 本文用一个最简单的连接access数据库的例子来说明如何将asp代码封装为dll文件. 我们用vb,最常见的方式来封装asp代码. 我们需要封装的对象如下: 'Proconn.aspdim ProConnset ProConn=Server.CreateO

用VB生成DLL封装ASP代码,连接数据库

封装|连接数据库 这篇文章以VB生成的DLL封装ASP代码来连接数据库(以Access数据库为例). 一般情况下我们在用ASP连接Access的数据库时通常都会进行如下的操作 '//Proconn.asp<%dim ProConnset ProConn=Server.CreateObject("ADODB.CONNECTION")ProConn.Open "driver={Microsoft Access Driver (*.mdb)};uid=;pwd=123;DBQ

Delphi编写组件封装asp代码的基本步骤

如果你想脱离asp爱好者的水平,那么你就应该学会为asp编写组件.我在google上搜索了一下,Delphi编写asp组件的文章一共就几篇,所以今天写了这篇Delphi编写asp组件的基础文章,希望对新手有点帮助.    开始吧,让我们一起编写一个"hello world!"的示例.我这里用的是Delphi 7.     1.文件->新建->其他->ActiveX->ActiveX Library,然后保存成showdll.dpr 2.再次,文件->新建-

asp中的客户端打印问题(建议加入精华区)

    以前在asp中也碰到过实现在浏览器中打印的问题,特别是用局域网中的一些应用,以前的实现定义一个打印开始的标记,和一个结束的标记,然后调用window.print()方法,还有涉及在使用frame时候的打印问题,在msdn的文档中有关于这些的比较详细的介绍,但是,控制起来都比较的麻烦,而且对与打印比较精确的控制都比较难以实现,有很多的朋友也碰到过这个问题,最近读了一片文章,关于在web中的打印的实现(csdn),稍作修改,贴了出来,供大家参考一下,希望对大家有所帮助.     可以调用客户

采用反射实现后期绑定操作EXCEL的简单代码(建议加入精华区)

excel|精华 除了采用TblImp导入Excel object库实现Excel的调用外.其实还可以采用反射的方法获得属性,并进行后期绑定实现Excel的调用.下面是简单的调用EXCEL程序. using System;using System.Reflection;using System.Windows;using System.Windows.Forms; class TestLateBound:System.Windows.Forms.Form{    private Button m

用VB生成DLL封装ASP连接数据库的代码

这篇文章以VB生成的DLL封装ASP代码来连接数据库(以Access数据库为例). 一般情况下我们在用ASP连接Access的数据库时通常都会进行如下的操作 '//Proconn.asp <% dim ProConn set ProConn=Server.CreateObject("ADODB.CONNECTION") ProConn.Open "driver={Microsoft Access Driver (*.mdb)};uid=;pwd=123;DBQ=&quo

用VB将ASP代码封装成DLL

封装|封装 摘 要 主要介绍用VB将ASP代码封装成DLL以保护 ASP代码和加快ASP代码的执行速度.节省服务器的资源关键词 ASP,DLL,编程一.引言Server端的脚本运行环境,它简单易用,不需要编译和连接,脚本可以在 Server端直接运行,并且它支持多用户.多线程,在 Web开发中得到了广泛的应用.服务器端的组件有别于客户端的组件.客户端的组件是通过网络传输,依靠HTML来起作用,而且只能在IE上有用.但是服务器端的组件是运行在服务器端,它在服务器上执行各种操作.因此,所有的浏览器都

使用VB将ASP代码封装到DLL文件_应用技巧

很久以前的文档,整理出来,回味一下 使用VB封装ASP,建立SayHello测试程序 1.打开VB6,新建ActiveX DLL 2.在工程引用中加入Microsoft Active Server Pages Object Library选择 3.填加代码如下: 'Code Start '声明部分 Private MyScriptingContext As ScriptingContext Private MyApplication As Application Private MyReques

使用VB将ASP代码封装到DLL文件

很久以前的文档,整理出来,回味一下 使用VB封装ASP,建立SayHello测试程序 1.打开VB6,新建ActiveX DLL 2.在工程引用中加入Microsoft Active Server Pages Object Library选择 3.填加代码如下: 'Code Start '声明部分 Private MyScriptingContext As ScriptingContext Private MyApplication As Application Private MyReques