Возможностей использования COM-компонентов в программах JSP не так много, и в JSP нет функций для непосредственного управления COM, но некоторую работу иногда приходится выполнять с использованием COM-компонентов. Давайте поговорим о конкретных методах работы.
Есть два способа использования com-компонентов в jsp: один — использовать javascript для управления им на клиенте (строго говоря, это должна быть функция html), например:
<OBJECT id="myCom" classid="clsid: 9D8A2E2F-D38F-CDAC-D0C5-5B3FB2275442" codebase=".com/com.cab#version=1.9.9.0" >
</ОБЪЕКТ>
<скрипт>
функция Привет() {
var result= myCom.Hello("Ли Цзунбинь");
вернуть результат;
}
</scipt>
Возвращенный результат: Здравствуйте, Ли Цзунбинь.
Однако у этого метода есть недостаток: он может работать только на стороне клиента и не может работать на стороне сервера. И каждый клиент должен установить этот компонент для запуска.
Второй — напрямую использовать jsp для управления серверным компонентом com через мост соединения Java-COM JACOB. Адрес загрузки JACOB: http://danadler.com/jacob/ . Для запуска необходимы два файла: jacob.jar и jacob.dll.
Метод настройки: поместите jacob.jar в CLASSPATH и добавьте путь, где находится jacob.dll.
метод, используемый для
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(истина);
ActiveXComponent mf = new ActiveXComponent("MakerCom.MakerExt");//Находим компонент Object myCom = mf.getObject();//Сгенерируем объект String result= Dispatch.call( myCom, "Hello", new Variant( "Li Цзунбинь" ) );
/*Метод вызова компонента, myCom — имя объекта компонента, Hello — функция компонента, new Variant («Li Zongbin») — переменная параметра компонента, если их несколько, вы можете добавить их в конце, метод тот же*/
out.println(результат);
%>