Zhlw.com - 中华龙网

站长资讯通告:
搜索: 您的位置中华龙网 > 计算机网络 > 网络编程 > ASP技术 > 文章列表

用VB编写ActiveX DLL实现ASP编程

作者:bear  来源:转载  发布时间:2006-1-25 16:15:00
  ASP是目前一种广为应用的用来快速构建动态WEB站点的编程语言,默认的内置开发语言是VB
  当然了,答案当然是否定的,因为世界上没有绝对不可能的事情,接下来就跟随我来看看如何利用VBScript来开发,无法享用VB里面所有的特性。 

  下面我们先来看看什么是ActiveX DLL吧。ActiveX是微软提出的广泛应用于Windows系列的一种代码封装技术,提高了程序代码的可重用性,加快了程序项目的开发速度,一般被称为“组件”。在VB
  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
  4、ActiveX DLLs 

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

  探讨完了什么是ActiveX DLL,我们开始正式编写我们自己的ActiveX DLL,以便来实现ASP中的同样功能,众所周知,ASP内置了Response、Request、Server、Session、Application五个对象,其实这五个内置对象正是IIS控制台初始化的五个ActiveX DLL组件,既然IIS可以初始化这五个组件用于ASP中,我们当然也可以直接在我们的ActiveX DLL中引用这些组件来实现我们的编程,也就是说我们可以在VB
  只要你安装了PWS4或者IIS4以上的WEB服务器,你就拥有了一个名称叫做“Microsoft Active Server Pages Object”的对象库,我们可以在VB
  对象库      类        类成员 

  ASPTypeLibrary ScriptingContext Application 

                    Request 

                    Response 

                    Session 

                    Server 

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

  1、 使用VB
  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
  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应用程序。 

 

        用户名: 验证码: 验证码,看不清楚?请点击刷新验证码 (注“”为必填内容。)


文章评论: [ 查看全部 ] 网友评论
关于本站 - 网站帮助 - 广告合作 - 友情连接 - 网站地图