用Java編寫ASP組件

來源:互聯網
上載者:User
用Java編寫ASP組件    來源 : http://www.edulife.com.cn/Infos/189912/30189912006858.html
    

     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版的。下載地址:
   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: 組件.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
開啟com\ms\asp下,這裡面就有能夠在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 安裝目錄的Samples\ASP下有關於ASP的詳細例子。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.