Asp组件中级入门与精通系列之一

初级教程写了七篇了,肯定还有一些初级的东西需要写,我会慢慢的进行补充

中级教程的内容:

这可能也是大家最关心的:如:数据库的操作与封装。Asp内置对象的使用。这些部分我会花费较长的篇幅来说明,这一部分内容需要你能够比较熟练的使用ADO操作数据库并且对asp5大对象比较熟悉。

我们看一下网上比较流传的一些资料:

众所周知,ASP内置了ResponseRequestServerSessionApplication五个对象,其实这五个内置对象正是IIS控制台初始化的五个ActiveX DLL组件,既然IIS可以初始化这五个组件用于ASP中,我们当然也可以直接在我们的ActiveX DLL中引用这些组件来实现我们的编程,也就是说我们可以在VB应用程序中通过引用这些组件来实现访问ASP内置对象的功能。

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

  对象库      类        类成员

  ASPTypeLibrary ScriptingContext        Application

                    Request

                    Response

                    Session

                    Server

  通过上面的关系图,我们就可以很容易理解类ScriptingContent

下面我们来看一个具体的例子吧:

打开vb6,新建Activex Dll工程。工程名修改为fCom,类名修改为fZ1
引用“Microsoft Active Server Pages Object”对象库。
创建两个组件事件:OnStartPage以及OnEndPage
在事件OnStartPage中创建类ScriptingContent的一个引用。
实例化类ScriptingContent

代码如下:
Option Explicit

'对象的声明

Dim myResponse As Response

Dim myRequest As Request

Dim myApplication As Application

Dim myServer As Server

Dim mySession As Session

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

Public Sub OnStartPage(myScriptingContent As ScriptingContext)

     '进行对象的实例化

     Set myResponse = myScriptingContent.Response

     Set myRequest = myScriptingContent.Request

     Set myServer = myScriptingContent.Server

     Set myApplication = myScriptingContent.Application

     Set mySession = myScriptingContent.Session

     myResponse.Write "ActiveX DLL组件已经被创建了!"

End Sub

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

Public Sub OnEndPage()

     myResponse.Write "ActiveX DLL组件已经被销毁!"

     '销毁对象

     Set myResponse = Nothing

     Set myRequest = Nothing

     Set myServer = Nothing

     Set myApplication = Nothing

     Set mySession = Nothing

End Sub

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

Public Sub HelloWorld()

     myResponse.Write "这是用asp内置对象写的"

End Sub


测试

打开visual interdev6.0,生成一个asp文件

<%@ Language=VBScript %>

<HTML>

<BODY>

<%

set obj=server.CreateObject("fCom.fZ1")

call obj.HelloWorld()

%>

</BODY>

</HTML>

配置好虚拟目录,在ie中执行此asp文件,得到结果如下:

ActiveX DLL组件已经被创建了!这是用asp内置对象写的 ActiveX DLL组件已经被销毁!

posted @ 2008-03-28 13:54  Athrun  阅读(266)  评论(0编辑  收藏  举报