VB编写Active DLL实现ASP编程.docx
《VB编写Active DLL实现ASP编程.docx》由会员分享,可在线阅读,更多相关《VB编写Active DLL实现ASP编程.docx(31页珍藏版)》请在三一办公上搜索。
1、VB编写Active DLL实现ASP编程VB编写ActiveX DLL实现ASP编程 ASP是目前一种广为应用的用来快速构建动态WEB站点的编程语言,默认的内置开发语言是VBScript,由于ASP和微软Windows系列操作系统的结合非常的好,使得ASP已经成为了NT开发平台上面进行WEB开发的首选语言和环境。他有着简单易学,方便快速开发的种种优点,但是他也有着致命的弱点,就是他是脚本语言解释执行的,速度会受到一定的影响,更为关键的是,使用ASP来开发完成一个项目之后,整个项目在交付客户使用的时候,是会连带所有的ASP脚本源代码的,也就无法将商业程序保密了,源代码泄漏会给自己造成很大的损失
2、,虽然微软也相应的推出了用来加密ASP程序的软件,但是有着诸多的限制,以及会降低程序运行的速度和二次开发调试的难度,难道ASP做出来的项目就真的要暴露所有的源代码吗? 当然了,答案当然是否定的,因为世界上没有绝对不可能的事情,接下来就跟随我来看看如何利用VB的ActiveX DLL来实现将ASP程序封装起来吧,也就是我们可以使用ActiveX DLL来完成所有ASP能完成的事情,而ActiveX DLL是编译好的DLL文件,别人是无法得知你的源代码的,也就保证的自己的商业机密和核心技术,并且达到同样的效果,使用完全封装的ActiveX DLL会比完全适用ASP脚本语言的执行速度要快很多,尤其是
3、大运算量的时候跟为明显!经过我们的具体测试,在操纵10000条数据库记录的时候,封装成为ActiveX DLL的WEB应用程序比纯ASP代码的应用程序,速度上面要快大约21%左右,在目前国内过于缓慢的网络来讲,速度就是一个WEB站点的很关键的一部分。并且采用了ActiveX DLL来开发WEB程序,要比单纯使用ASP好得多,毕竟ASP只能使用VBScript来开发,无法享用VB大量的优点,而ActiveX DLL则可以充分利用VB里面所有的特性。 下面我们先来看看什么是ActiveX DLL吧。ActiveX是微软提出的广泛应用于Windows系列的一种代码封装技术,提高了程序代码的可重用性,
4、加快了程序项目的开发速度,一般被称为“组件”。在VB6的集成开发环境当中,我们可以看到一下几种ActiveX项目: 1、ActiveX EXE 这是在“过程外”运行的ActiveX/COM服务器组件,也就是说他们运行的过程和初始化组件的客户机代码不同。尽管可以用ASP访问ActiveX EXE,但是不推荐改动IIS元库,该库允许所有的可执行文件由服务器上运行的脚本代码启动。 2、ActiveX OCXs 这些特殊的组件把主机应用程序显示和操作组件所需的附加支持包含在GUI环境中。还可以把OCX组件放在网页当中。但是,OCX是应用程序界面,不可以使用ASP来创建的。 3、ActiveX文档DLL
5、和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中的同样功能,众所周知,AS
6、P内置了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应用中引用这个对象
7、库,通过引用这个对象库,我们就获得了一个对象:ScriptingContext,这个对象也正是我们整个文章探讨的核心对象。对象库内的关系如下: 对象库 类 类成员 ASPTypeLibrary ScriptingContext Application Request Response Session Server 通过上面的关系图,我们就可以很容易理解类ScriptingContent。下面我们来看一个具体的例子吧: 1、 使用VB6创建一个新的ActiveX DLL项目 2、 引用“Microsoft Active Server Pages Object”对象库。 3、 创建两个组件事件:O
8、nStartPage以及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.Respons
9、e set rq=mysc.Request set sr=mysc.Server set ap=mysc.Application set sn=mysc.Session rp.write ActiveX DLL组件已经被创建了! End Sub 当组件被销毁的时候触发这个事件 Public Sub OnEndPage Rp.write ActiveX DLL组件已经被销毁! 销毁对象 Set rp=nothing Set rq=nothing Set sr=nothing Set ap=nothing Set sn=nothing End Sub 定义我们自己的一个组件方法 Public Su
10、b HelloWorld Rp.write Hello,World! End Sub 这样,我们就创建可以访问ASP内置对象的ActiveX DLL了。我们命名这个组件项目为first,在VB中间编译这项目成为一个DLL文件first.dll,并且我们在系统中注册这个DLL文件。接下来,我们需要一个简单的几乎没有什么代码的ASP程序来调用这个组件: test.asp 测试ActiveX DLL 通过上面简单的例子,我们可以看到使用ActiveX DLL同样可以实现和ASP同样的功能,并且带来的代码保密和程序运行更加高效的优点。ActiveX DLL和纯ASP有着各自的优点和缺点,只要我们合理的
11、运用这两种技术,比如适当的将商业逻辑封装在ActiveX DLL中,或者在需要保密的地方使用DLL封装技术,一定可以编写出高效快速的WEB应用程序。 用VB编写ASP组件(DLL) 用vb编写asp组件(dll)示例 下面,将演示如何使用vb制作asp的dll组件 1. 启动你的vb,选择activex dll图标,然后在点击菜单的工程引用,接着在弹出的引用窗口从中选择microsoft active server pages object library. 2. 给工程和类重命名,在asp中调用时,就全靠它了_!我们的工程名改为aspdll,类名为demo.在asp中调用的方法是: set
12、objreference = server.createobject(工程名.类名) 本例调用的相应代码如下: set objreference = server.createobject(aspdll.demo) 调用的方法和一般常见的,比如fso等组件的方法一模一样. 心动了吧,呵呵,下面我们继续. 3. 接着,我们开始编写代码,打开我们刚才新建工程类窗口,第一步,先声明我们要用到的变量.主要是在vb声明替代asp几大对象的变量名,定义这asp的几大对象后,我们就可以像在asp环境中调用类似request,server等这样的几大对象了.(声明的变量名完全可以和asp对象名一样)代码如下:
13、 * private myscriptingcontext as scriptingcontext private myapplication as application private myrequest as request private myresponse as response private myserver as server private mysession as session * 4. 声明完变量后,我们必须在类中写onstartpage子函数.本函数的作用是当用户访问一个带有本组件的asp文件时,iis就会把scriptingcontext传送给我们vb组件对象.这
14、个scriptingcontext包括了全部的asp方法和属性.这样,就使得我们有能力访问所有asp的对象.代码如下: * public sub onstartpage(passedscriptingcontext as scriptingcontext) set myscriptingcontext = passedscriptingcontext set myapplication = myscriptingcontext.application set myrequest = myscriptingcontext.request set myresponse = myscriptingc
15、ontext.response set myserver = myscriptingcontext.server set mysession = myscriptingcontext.session end sub * 通过上面的函数,我们在asp中调用本组件后,上面的几大对象就完全可以像平时我们在asp使用一样了,举个例子: 在asp中实现接收提交的表单值并输出屏幕: 在vb中实现方法是: formvalue=myrequest.form(username) myresponse.write (你提交的用户名是&myformvalue&,欢迎您!) 5. 相对应于onstartpage函数,
16、我们还要编写一个关闭onstartpage中对象 的onendpage函数,代码如下: * public sub onendpage set myscriptingcontext = nothing set myapplication = nothing set myrequest = nothing set myresponse = nothing set myserver = nothing set mysession = nothing end sub * 6.通过编写上面的代码,我们在vb中编写asp组件实例的环境已经具备了,下面,我就尝试写两个与asp中基本相类似的函数,也就是说,关
17、键部位就在这里了,你完全可以把你所有的asp源码封装在这里. 先写个最简单的输出屏幕信息函数: * public sub welcomeinfo myresponse.write (欢迎来访我的空间-冰点寄语!) end sub * 再写个带参数传递及显示now现在时间的函数: * public sub setinfo(content as string) myresponse.write content & myresponse.write 现在的时间是: & now end sub * 通过上面的asp代码实例,你会发现其实这和asp源码基本没有区别_ 7. 好了,整个类就编写完了,我们开
18、始打包封装成dll.我们先保存工程,这里我们保存到e:vbdll,接着选择菜单上的文件生成aspdll.dll,很快的dll组件就封装并生成完毕了 8. 生成dll文件后,我们开始调试和使用.在系统运行栏输入cmd,进入dos命令行状态,我们要注册刚才生成的dll组件,注册方法是可以直接输入regsvr32 e:vbdllaspdll.dll ,为了安装方便,你同时可以写个批处理文件,这里不一一举例了.好,注册成功! 9.注册完dll组件后,我们针对刚才的组件,按照上面介绍过的方法编写一个asp文件来调试.代码如下: * % set redll = server.createobject(as
19、pdll.demo) redll.welcomeinfo response.write redll.setinfo(传递参数到服务器组件,并返回值及当前日期now!) response.write set redll = nothing % 在iis中打开此文件,屏幕显示: 欢迎来访我的空间-冰点寄语! 传递参数到服务器组件,并返回值及当前日期now! 现在的时间是:xxxx-xx-xx-xx:xx:xx 特别推荐: ASP.NET 2.0入门经典连载中 初学者学习ASP.NET的优秀教程 CSDN读书频道独家奉献 asp ASP.NET Ajax快速开发连载 .net平台下ajax解决方案
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB编写Active DLL实现ASP编程 VB 编写 Active DLL 实现 ASP 编程
链接地址:https://www.31ppt.com/p-3168296.html