用Java編寫ASP元件 (轉)

worldblog發表於2007-12-10
用Java編寫ASP元件 (轉)[@more@]

用編寫

(任我行 徐長友)

  ASP透過 Server Components(ActiveX 元件 ) 使其具有無限可擴充性。在ASP開發當中,免不了使用元件,網上的確有很多的免費,試用的元件,但這是人家的東西,用起來總不免有些擔心,自己寫的元件用起來才踏實。ActiveX Server Component 可以使用 、 、 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,這個程式在 SDK for java中可以找到。你先microsoft sdk for java,目前最新版本是4.0版的。地址:
  .microsoft.com/download/javasdk/install/4.0//en-us/SDKJava40.exe">Mricrosoft 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重新編譯過,又想馬上生效的話,必需要重啟一下伺服器,這樣才能正常使用,否則你會發現新加的方法不能用。

ASP中的使用:

'testjava.asp
Set Obj = Server.Create("元件.TestJava")
response.write Obj.lenstr("你好!Hello World!")
response.write "
" & Obj.version
response.write "
" & Obj.Ver
Obj.asptest
set Obj=nothing
%>

儲存為testjava.asp
確定你的Web伺服器在工作,然後在看看結果吧!

關於使用ASP內建:
如果能使用response.write ("Hello World!"),那麼將會很方便。下面簡單介紹一下如何使用ASP內建物件。
你開啟系統目錄下的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("

Java ActiveX元件

"));
}
}

用asp測試一下:

'testjava.asp
Set Obj = Server.CreateObject("元件.TestJava")
response.write Obj.lenstr("你好!Hello World!")
response.write "
" & Obj.version
response.write "
" & 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的詳細例子。

希望本文能對你有所幫助!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990830/,如需轉載,請註明出處,否則將追究法律責任。

相關文章