轉帖|其它|編輯:郝浩|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@fc6vip.cn
文章轉載自:網絡轉載