在jsp程式中使用com元件的機會不多,jsp也沒有直接操作com的函數,但有的工作有時候還必須使用com元件來完成,下面就來說一下具體的操作方法。
在jsp中使用com元件有兩種方法:一種是用javascript在客戶端來控制(嚴格說這個應該是html的功能),如:
<OBJECT id="myCom" classid="clsid:9D8A2E2F-D38F- CDAC-D0C5-5B3FB2275442" codebase=".com/com.cab#version=1.9.9.0" >
</OBJECT>
<script>
function Hello() {
var result= myCom.Hello(“李宗斌“);
return result;
}
</scipt>
結果回傳:你好,李宗斌
但是這種方法有個弊端就是只能在客戶端操作,不能操作伺服器端的東西。而且每個客戶端都要安裝這個元件才能運作。
第二種是直接用jsp透過Java-COM連接橋JACOB來操作伺服器端的com元件。 JACOB的下載網址是http://danadler.com/jacob/ 。運作的時候需要兩個檔案:jacob.jar和jacob.dll。
配置的方法是:把jacob.jar放到CLASSPATH裡,把jacob.dll所在的路徑加到path裡。如d:com
所使用的方法如下:
1。先在伺服器端註冊com組件;
2。找到組件的名字(一般應該是知道的,不知道的話就到註冊表去找);
3。程式範例:
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<%@ page import="com.jacob.com.*" %>
<%@ page import="com.jacob.activeX.*" %>
<%
System.runFinalizersOnExit(true);
ActiveXComponent mf = new ActiveXComponent("MakerCom.MakerExt");//找到元件Object myCom = mf.getObject();//產生物件String result= Dispatch.call( myCom, "Hello", new Variant( "李宗斌" ) ) ;
/*呼叫元件的方法,myCom是元件的物件名,Hello是元件的函數,new Variant( "李宗斌") 是元件的參數變量,如果有多個可以在後邊加上,方法一致*/
out.println(result);
%>