在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);
%>