引言:
在我前面的那篇《手把手教你使用VB来编写ASP组件》中我已具体的介绍了如何使用VB来实现ASP组件的编程,其实使用Java语言同样可以编写一个性能非常优秀的组件。本文就想介绍一下如何使用Microsoft Visual J++来编写一个组件来访问ASP内置的对象。
实例的提出 :
我们大家都知道,我们可以访问Response和Request对象来创建组件。这种组件的一个实例就是广告治理系统,它能够通过内部访问数据库并且随机选择一条广告,然后输出它的Html旗帜广告代码。在本文中,我不想讨论从Java COM组件中访问数据库,也不想讨论广告治理系统,因为那是一个非常大的问题。我只想谈谈从Java COM组件中调用ASP的内部对象的方法。 下面我就想教您一步一步的编写这个组件
一、开始新的工程:
1、 打开Visual J++ 并且点击 Open/New Project,创建一个新的工程。
2、 选择“Visual J++ Projects”中的Components选项,然后选择COM DLL选项
3、 把工程名改名为WayneStudio,然后在Location 对话框中给出你想保存工程文件和编译组件的路径。
4、 在屏幕右边的Project EXPlorer窗口中 ,把Class1.java改为JavaASP.java。
5、 双击JavaASP.java,会出现一个代码框,把下面的代码输入代码框,并保存。
import com.ms.iis.asp.*;
import com.ms.mtx.*;
这两句应当出现在程序的最前面,它们是导入命令,导入我们在工程中需要用到的某些Java类的包,我下面给出完整的程序
/** * This class is designed to be packaged with a COM DLL output format. * The class has no standard entry points, other than the constrUCtor. * Public methods will be exposed as methods on the default COM interface. * @com.register ( clsid=ADE14872-9CF6-42A0-A8F2-7A571E51A840, typelib=5E11D496-7229-4283-A40B-139E05DEF44C ) */ //上面我们看到一个clsid,它是用来标记微软COM组件所用的。
import com.ms.iis.asp.*;//导入两个包
import com.ms.mtx.*;
public class JavaASP
{
public boolean HelloWorld()
{
Response newRes = AspContext.getResponse();//创建一个Response
newRes.write("Hello World,Maybe it is your first JavaASP COM!");
return true;
}
}
6、 好程序写完了,现在点开工具栏的Project,点击WayneStudio Properties (在最底下)。选择COM Classes,,在Automatically generate Type Library中选中JavaASP'类,并且点击'OK'。
二、编译工程Project :
好,现在我们终于要预备编译我们的Java COM 组件了。点击工具栏中的Build/Build,在下面的状态栏中,你会看到不同的状态信息显示组件正在被注册而且type library 正在被生成。这之后,你会看到一个成功信息Solution Update Succeeded,恭喜你编译成了你的第一个用来访问ASP内部对象的Java COM组件。
三、在远程服务器上注册组件
当你使用Visual Studio来编译一个COM组件,它会自动的注册组件并且生成type library,但是假如你想在其他服务器上使用你的组件的话,那么你就必须在使用它之前注册你的组件假如你想在别的机器上注册你的组件,你可以在DOS状态下使用下列格式:
C:\regsvr32 WayneStudio.dll
注重,使用你编写并且编译后的DLL文件名代替WayneStudio.dll 。
四、创建一个调用组件的ASP页
我们已经编译了组件,并且已经注册了它,现在我想介绍一下如何在ASP程序中调用我们刚注册的组件。打开一最喜欢使用的ASP编辑器,创建一个新的ASP页面。取名为FirstCom.asp :
<%Option Explicit
Response.Buffer = True
Response.Expires = 0
%>
<html>
<head>
<title> 你的第一个Java COM组件 </title>
</head>
<body>
<p align="center" id="com"><b>
<%Dim JavaASP
Set JavaASP = Server.CreateObject("WayneStudio.JavaASP")
JavaASP.HelloWorld
Set JavaASP = Nothing %>
</b>
</p>
</body>
</html>
上面的程序代码中我们简单的从WayneStudio.JavaASP组件中创建了一个JavaASP 对象,然后我们调用了它的方法HelloWorld来显示如何从组件中使用Response方法。