top
Loading...
手把手教你使用Java來編寫ASP組件

引言:


在我前面的那篇《手把手教你使用VB來編寫ASP組件》中我已詳細的介紹了如何使用VB來實現ASP組件的編程,其實使用Java語言同樣可以編寫一個性能非常優秀的組件。本文就想介紹一下如何使用Microsoft Visual J++來編寫一個組件來訪問ASP內置的對象。

實例的提出 :


我們大家都知道,我們可以訪問Response和Request對象來創建組件。這種組件的一個實例就是廣告管理系統,它能夠通過內部訪問數據庫并且隨機選擇一條廣告,然后輸出它的HTML旗幟廣告代碼。在本文中,我不想討論從Java COM組件中訪問數據庫,也不想討論廣告管理系統,因為那是一個非常大的問題。我只想談談從Java COM組件中調用ASP的內部對象的方法。 下面我就想教您一步一步的編寫這個組件

一、開始新的工程:


1、 打開Visual J++ 并且點擊 Open/New Project,創建一個新的工程。

2、 選擇“Visual J++ Projects”中的Components選項,然后選擇COM DLL選項,如下圖

3、 把工程名改名為WayneStudio,然后在Location 對話框中給出你想保存工程文件和編譯組件的路徑。

4、 在屏幕右邊的Project Explorer窗口中 ,把Class1.java改為JavaASP.java。 5、 雙擊JavaASP.java,會出現一個代碼框,把下面的代碼輸入代碼框,并保存。

import com.ms.iis.asp.*;
import com.ms.mtx.*;


這兩句應當出現在程序的最前面,它們是導入命令,導入我們在工程中需要用到的某些Java類的包,我下面給出完整的程序

/** * This class is designed to be packaged with a COM DLL output format. * The class has no standard entry points, other than the constructor. * Public methods will be exposed as methods on the default COM interface. * @com.register ( clsid=ADE14872-9CF6-42A0-A8F2-7A571E51A840, typelib=5E11D496-7229-4283-A40B-139E05DEF44C ) */ //上面我們看到一個clsid,它是用來標記微軟COM組件所用的。

import com.ms.iis.asp.*;//導入兩個包

import com.ms.mtx.*;

public class JavaASP
{

public boolean HelloWorld()

{
Response newRes = AspContext.getResponse();//創建一個Response
newRes.write("Hello World,Maybe it is your first JavaASP COM!");
return true;
}

}6、 好程序寫完了,現在點開工具欄的Project,點擊WayneStudio Properties (在最底下)。選擇COM Classes,,在Automatically generate Type Library中選中JavaASP'類,并且點擊'OK',如下圖。
二、編譯工程Project :

好,現在我們終于要準備編譯我們的Java COM 組件了。點擊工具欄中的Build/Build,在下面的狀態欄中,你會看到不同的狀態信息顯示組件正在被注冊而且type library 正在被生成。這之后,你會看到一個成功信息Solution Update Succeeded,恭喜你編譯成了你的第一個用來訪問ASP內部對象的Java COM組件。

三、在遠程服務器上注冊組件


當你使用Visual Studio來編譯一個
COM組件,它會自動的注冊組件并且生成type library,但是如果你想在其他服務器上使用你的組件的話,那么你就必須在使用它之前注冊你的組件如果你想在別的機器上注冊你的組件,你可以在DOS狀態下使用下列格式:

C:egsvr32 WayneStudio.dll

注意,使用你編寫并且編譯后的DLL文件名代替WayneStudio.dll 。 四、創建一個調用組件的ASP頁

我們已經編譯了組件,并且已經注冊了它,現在我想介紹一下如何在ASP程序中調用我們剛注冊的組件。打開一最喜歡使用的ASP編輯器,創建一個新的ASP頁面。取名為FirstCom.asp :


<%Option Explicit
Response.Buffer = True
Response.Expires = 0
%>
<html>
<head>
<title> 你的第一個Java COM組件 </title>
</head>
<body>
<p align="center" id="com"><b>
<%Dim JavaASP
Set JavaASP = Server.CreateObject("WayneStudio.JavaASP")
JavaASP.HelloWorld
Set JavaASP = Nothing %>
</b>
</p>
</body>
</html>

上面的程序代碼中我們簡單的從WayneStudio.JavaASP組件中創建了一個JavaASP 對象,然后我們調用了它的方法HelloWorld來顯示如何從組件中使用Response方法。五、程序設計標示符(ProgID)

如果用過CreateObject方法的朋友,都會知道程序設計標示符(ProgID),它是,它是你給Server.CreateObject的參數,也就是你想使用的組件的標示符。現在就有個問題了,你怎么知道你創建的組件的標示符是什么,你又如何改變它呢?在很簡單,在Visual J++ 和 Visual Basic中,你的工程(Project)的名字就是你的組件的ProgID的第一部分,如在本文中工程名為WayneStudio,那么ProgID 以WayneStudio開頭,然后你的類名是ProgID的第二部分,如JavaASP,所以完整的ProgID 就是WayneStudio.JavaASP

六、小結

以上我已經介紹了如何使用Java來創建ASP COM組件,希望對大家有所幫助。本文只是舉了一個非常簡單的例子,只用到了ASP內部對象中的Response對象,其實Java能實現的遠不止這些,如下,我列出一些調用ASP內部對象的方法:

Response NewRes = AspContext.getResponse();
Request NewReq = AspContext.getRequest();
Server NewServer = AspContext.getServer();
Session NewSession = AspContext.getSession();
Application NewApplication = AspContext.getApplication();

希望大家能夠參考本文完成你們自己的Java COM編寫,這樣本文的目的就達到了。
作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗