彩票走势图

如何利用Java编写ASP组件

转帖|其它|编辑:郝浩|2010-09-30 11:37:04.000|阅读 520 次

概述:ASP 通过 ActiveX Server Components(ActiveX 服务器元件 ) 使其具有无限可扩充性。在 ASP 开发当中,免不了使用组件,网上的确有很多的免费,试用的组件,但这是人家的东西,用起来总不免有些担心,自己写的组件用起来才踏实。ActiveX Server Component 可以使用 Visual Basic、 Delphi、 Java 、 Visual C++ 、 COBOL 等编程语言来编写。本文主要介绍如何使用 Java 来写 ASP 组件。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

  ASP 通过 ActiveX Server Components(ActiveX 服务器元件 ) 使其具有无限可扩充性。在 ASP 开发当中,免不了使用组件,网上的确有很多的免费,试用的组件,但这是人家的东西,用起来总不免有些担心,自己写的组件用起来才踏实。ActiveX Server Component  可以使用 Visual Basic、 Delphi、 Java 、 Visual C++ 、 COBOL 等编程语言来编写。本文主要介绍如何使用 Java 来写 ASP 组件。

先写个很简单的 Java 程序

 

      public class TestJava
{
public String Ver="1.0.1版";

     public int lenstr(String str)
{
return str.length();
}

     public String Version()
{
return Ver;
}
}

     
编译生成 TestJava.class ,然后将其注册成组件。

注册 Java 组件:

也许大多数人想到是 RegSvr32.exe 这个程序,但这里并不用它,它用于注册编译成 DLL 的 ActiveX 组件,Java 写成的 Class 文件不能够用它来注册,你需要的是 JavaReg.exe,这个程序在 Microsoft SDK for java 中可以找到。你先安装 microsoft sdk for java,目前最新版本是4.0版的。安装后在 Microsoft SDK for java 的 bin 目录下有这个工具。在注册前,你可将编译好的 class 文件复制到系统目录下的 javatrustlib 目录下(在我的机上是 C:winntjavatrustlib)。在"命令提示符"窗口下输入 JavaReg 并执行,可能看到它的用法及参数。
如:

 javareg /register /class: TestJava /progid: 组件.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 子目录,如果安装了 IIS 或者 PWS 后会多出一个目录 trustlib
打开 commsasp 下,这里面就有能够在 Java ActiveX 组件使用的东东,使用这些内置对象,只要将它们 "import" 进来,便可
在 Java ActiveX 组件中取得 ASP 内置的对象,程序如下:

    public class TestJava
{
public String Ver="1.0.1版";

     public int lenstr(String str)
{
return str.length();
}

   public String Version()
{
return Ver;
}

   public void asptest()
{
IGetContextProperties icp;
Variant vari=new Variant();
IResponse iresp;
icp=(IGetContextProperties)MTx.GetObjectContext();
vari=icp.GetProperty("Response");
iresp=(IResponse) vari.getDispatch();
iresp.Write(new Variant("<h1>Java ActiveX 组件</h1>"));
}
}

     
用 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
%>

     
结果如下:

     15
1.0.1版
1.0.1版 Java ActiveX 组件

     
注:这个 Java 程序要用 microsoft sdk for java 编译器才能成功编译(使用 jvc.exe),另外在 microsoft sdk for java 安装目录的SamplesASP 下有关于 ASP 的详细例子。
 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP