使用Java编写ASP组件
2024年03月12日
ASP通过ActiveX服务器组件(ActiveX服务器组件)制定具有无限可增强性。在ASP开发中,免不了使用组件,网上没有很多的免费的,试用的组件,但这是人家的东西,用起来总不免有些担心,自己写的组件用起来才踏实。ActiveX Server组件可以使用Visual Basic、Delphi、Java、Visual C++、COBOL等编程语言来编写。这篇文章主要介绍如何使用Java来写ASP组件。先写个很简单的Java程序
public class TestJava
{
public String Ver="1.0.1版";
公共intlenstr(String str)
{
return str.length();
}
public String Version()
{
返回Ver;
}
}
编译生成TestJava.class,将其注册成组件。然后注册
Java组件:
也许大多数人想到的是RegSvr32.exe这个程序,但这里用不到它,它用于注册编译成DLL的ActiveX组件,Java写成的Class文件不能够用它来注册,你需要JavaReg.exe,这个程序在Microsoft SDK for java中可以找到。你先安装了microsoft sdk for java,目前最新版本是4.0版本的。下载地址:
Mricrosoft SDK for Java 4.0
如果有误,自己去http://www.microsoft.com上找。下载后直接安装即可。
安装后在Microsoft SDK for java的bin目录下有这个工具。在注册前,你可以将编译好的class文件复制到系统目录下的\java\trustlib\目录下(在我的机器上是C:\winnt\java\trustlib)。在“命令提示符”窗口下输入JavaReg并执行,可以看到它的最有效及参数。
如:
javareg/register/class:TestJava/progid:Components.TestJava
注册上面生成的class文件
可以用中文名。反向注册javareg/unregister...就行了。注意:如果你是Java重新编译过,又想立即生效的话,一定需要重启一下WEB服务器,这样才能正常使用,不然你会发现新加的方法不能用。
ASP中的使用:
<%
'testjava.asp
Set Obj=Server.CreateObject("组件.TestJava")
response.write Obj.lenstr("你好!Hello World!")
response.write"<br>"&Obj.version
response.write"<br>"&Obj.Ver
Obj.asptest
set Obj=nothing
%>
保存为testjava.asp
确定你的Web服务器在工作,然后在浏览器看看结果吧!
关于使用ASP内置对象:
如果能使用response.write("Hello World!"),那么将会很方便。下面简单介绍一下如何使用ASP内置对象。
你打开windows系统目录下的java子目录,如果安装了或者IISPWS后会多出一个目录trustlib
打开com\ms\asp下,这里面就有能够在Java ActiveX组件中使用的东东,使用这些内置对象,只要将它们“导入”进来,就可以
在Java ActiveX组件中获取ASP内置的对象,程序如下:
public class TestJava
{
public String Ver="1.0.1"1版”;
公共intlenstr(String str)
{
return str.length();
}
public String Version()
{
返回Ver;
}
公共无效asptest()
{
IGetContextProperties icp;
变体vari=new Variant();
IResponse iresp;
icp=(IGetContextProperties)MTx.GetObjectContext();
vari=icp.GetProperty("响应");
iresp=(IResponse)vari.getDispatch();
iresp.Write(new Variant("<h1>Java ActiveX组件</h1>"));
}
}
用asp测试一下:
<%
'testjava.asp
Set Obj=Server.CreateObject("组件.
response.write"<br>"&Obj.version
response.write"<br>"&Obj.Ver
Obj.asptest
set Obj=nothing
%>
结果如下:
15
1.0.1版
1.0.1版
Java ActiveX组件
注:这个Java程序使用microsoft sdk for java编译器才能编译成功(使用jvc.exe),另外在microsoft sdk for java安装目录的Samples\ASP下有关于ASP的详细例子。