Não há muitas oportunidades para usar componentes COM em programas JSP, e JSP não possui funções para operar diretamente o COM, mas às vezes algum trabalho deve ser concluído usando componentes COM. Vamos falar sobre os métodos de operação específicos.
Existem duas maneiras de usar componentes com em jsp: uma é usar javascript para controlá-lo no cliente (a rigor, isso deve ser uma função do html), como:
<OBJECT id="myCom" classid="clsid: 9D8A2E2F-D38F-CDAC-D0C5-5B3FB2275442" codebase=".com/com.cab#version=1.9.9.0" >
</OBJETO>
<roteiro>
função Olá() {
var resultado = myCom.Hello("Li Zongbin");
resultado de retorno;
}
</scipt>
Resultado retornado: Olá, Li Zongbin
No entanto, este método tem uma desvantagem: ele só pode ser operado no lado do cliente e não pode ser operado no lado do servidor. E cada cliente deve instalar este componente para funcionar.
A segunda é usar jsp diretamente para operar o componente COM do lado do servidor por meio da ponte de conexão Java-COM JACOB. O endereço de download do JACOB é http://danadler.com/jacob/ . Dois arquivos são necessários para execução: jacob.jar e jacob.dll.
O método de configuração é: coloque jacob.jar em CLASSPATH e adicione o caminho onde jacob.dll está localizado ao caminho.
o método usado para
d:com
é o seguinte:1. Primeiro registre o componente com no lado do servidor;
2. Encontre o nome do componente (geralmente você deve saber, se não souber, vá até o registro para encontrá-lo);
3. Exemplo de programa:
<%@ 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");//Encontre o componente Object myCom = mf.getObject();//Gere um objeto String result= Dispatch.call( myCom, "Hello", new Variant( "Li Zong Bin" ) ) ;
/*O método de chamada do componente, myCom é o nome do objeto do componente, Hello é a função do componente, new Variant("Li Zongbin") é a variável de parâmetro do componente, se houver mais de um, você pode adicioná-los no final, o método é o mesmo*/
out.println(resultado);
%>