+2

Integrando o PHP com Java (parte 2)

criado por Rodrigo Rodrigues em 26/04/2004 11:58am
Criaremos as páginas que foram registradas na Tabela MENU.
seguranca.php
**
<?php 
include_once("classe_main_phpjava.php");

$javaPHP = new JavaPHP();
$javaPHP->doLogadoUser();
$javaPHP->doPermissaoUsuario($_SESSION['idUsuarioSession']);
$javaPHP->noCache();

$javaPHP->doPermissaoNavegacaoLink("seguranca.php");

if ($_GET['acao'] == "sair"){
    $javaPHP->doSairSistema();
}
?>
<html>
<head>
<title>Interagindo Java+PHP : Segurança</title>
</head>

<body>
<?=$javaPHP->doMontaMenu($_SESSION['idUsuarioSession'])?>
<br>
<div align="center">OK, tome cuidado mané aqui é a Segurança da parada.</div>
</body>
</html>
**

corinthians.php
**
<?php 
include_once("classe_main_phpjava.php");

$javaPHP = new JavaPHP();
$javaPHP->doLogadoUser();
$javaPHP->doPermissaoUsuario($_SESSION['idUsuarioSession']);
$javaPHP->noCache();

$javaPHP->doPermissaoNavegacaoLink("corinthians.php");
?>
<html>
<head>
<title>Interagindo Java+PHP : Corinthians</title>
</head>

<body>
<?=$javaPHP->doMontaMenu($_SESSION['idUsuarioSession'])?>
<br>
<div align="center">Corinthians, Campeão dos Campeões.</div>
</body>
</html>
**

prasempre_ch.php
**
<?php 
include_once("classe_main_phpjava.php");

$javaPHP = new JavaPHP();
$javaPHP->doLogadoUser();
$javaPHP->doPermissaoUsuario($_SESSION['idUsuarioSession']);
$javaPHP->noCache();

$javaPHP->doPermissaoNavegacaoLink("prasempre_ch.php");
?>
<html>
<head>
<title>Interagindo Java+PHP : Chaves e Chapolin</title>
</head>

<body>
<?=$javaPHP->doMontaMenu($_SESSION['idUsuarioSession'])?>
<br>
<div align="center">Chaves e Chapolin Eternamente, valeu Chespirito por me oferecer 30 anos de gargalhadas.</div>
</body>
</html>
**

A novidade nas páginas é a chamada da função - doPermissaoNavegacaoLink("pagina_atual.php"), ela verifica se o usuário corrente tem acesso no link atual.
Função "doLogadoUser()" verifica se o user se logou no Sistema.
Função "doPermissaoUsuario($_SESSION['idUsuarioSession'])" monta as permissões que o usuário terá acesso.
Função "noCache()" não permite cache no Browser Cliente.
Função "doMontaMenu($_SESSION['idUsuarioSession'])" monta o Menu para o usuário.

Na versão atual do Php existem poucos comandos para interagir com Java, apenas 3.
new Java('Classe'); // Para instância a nossa Classe Java.
java_last_exception_get() Verifica se o Java estorou algum exceção.
java_last_exception_clear() Limpa a execeção


Mostrarei um exemplo de como tratar as exceções de Java no "PHP", eu não recomendo que façam isto porque com os "Warnings" o PHP detalha melhor aonde encontrar o problema.
Implementaremos 3 funções na classe "PHP".

classe_main_phpjava.php
**
    function getException($line) {
        $exception = java_last_exception_get();
        if ($exception) {
            return "Ocorreu um erro(".$exception->toString().").";
        }
    }

    function doClearException() {
        $clearException = java_last_exception_clear();
        return $clearException;
    }
	
    function doTratarExcecao() {
        $tratarExcecao = @$this->javaPhp->doTratarExcecao();
        $excecao = $this->getException();
        if ($excecao) {
            return $excecao;
            $this->doClearException();
        } else {
            return $tratarExcecao;
        }
    }

Implemente agora na classe "Java" o método com controle de acesso "privado".
Java.PHP
**
    private String doTratarExcecao() {
        return "OK";
    }
**

Chame essa função "doTratarExcecao()" dentro da página restrita.php.
<?=$javaPHP->doTratarExcecao()?>

Pronto, terminamos nosso sistema veja na próxima página as classes organizadas.

Comentários:

Mostrando 1 - 9 de 9 comentários
Olá, Rodrigo:
O JavaScript abaixo não roda através do navegador Firefox. Será que VC poderia me ajudar alterando algum(s) parâmetro(s) ? Agradeço desde já = Fiumari:
<script language="JavaScript"> var ultimo=-1, dBanner;
function carrega(x) {dBanner=x;Banners()}
function Banners()
{ var MNews = new Array();
MNews[0]= '<iframe " name="_blank" scrolling="no" src="http://www.finet.com.br/google.htm" width="100%" frameborder="0" target="_blank" height="350" BORDER="0"></iframe><a href="http://www.finet.com.br/google.htm" target="_blank"></a>';
MNews[1]= '<iframe " name="_blank" scrolling="no" src="http://www.finet.com.br/google2.htm" width="100%" frameborder="0" target="_blank" height="350" BORDER="0"></iframe><a href="http://www.finet.com.br/google2.htm" target="_blank"></a>'
while((Numero = parseInt(Math.random()*MNews.length))==ultimo);
dBanner.innerHTML=MNews[Numero];
setTimeout("Banners()",15000);
} </script>
03/09/2007 11:06am (~14 anos atrás)

Prezado amigo,

Li os seus artigos no PHPBRASIL sobre php com java e estão sendo muito úteis para mim. Entretanto estou com uma dúvida terrível e peço sua ajuda.

eu estou usando dois arquivos .jar

httpclient.jar e getUrl.jar

eu coloquei assim no meu php.ini:
java.class.path = "C:\apache\php\JAVA\php_java.jar;C:\apache\php\java_class\getUrl.jar;C:\apache\php\java_class\getUrl.jar\commons-httpclient-2.0.2.jar;C:\apache\php\java_class"
java.home = "C:\j2sdk1.4.2_05\bin"
java.library = "C:\j2sdk1.4.2_05\jre\bin\server\jvm.dll"
java.library.path = "C:\apache\php\extensions"

entretanto quando rodo a página php que eu fiz, ele lança uma ClassNotFound Exception.

vc poderia me dizer como que eu faço para ele encontrar os meus .jar ?

meu php está assim:
<?
$url_final = "http://www.uol.com.br";
$string_url=(String) $url_final;
$getStj = new Java("GetStj");

$html=$getStj->getHtml($string_url);
?>

desde já agradeço imensamente.

Alexandre
23/03/2005 1:02pm (~16 anos atrás)

DAVID disse:
¿qUE SERVIDOR UTILIZAIS APACHE SOLO?
13/05/2004 8:32am (~17 anos atrás)

Nesse link(http://www.phpbrasil.com/scripts/download.php/id/2315) tem a versão "completa" do artigo.
04/05/2004 11:44am (~17 anos atrás)

DAVID disse:
Tengo un proflema tengo una clase java con una función que llama a System.out.println("Hola"); y una pagina php que llama a este método, y el sistema me da un error, si quito esta linea funciona bien. Me gustaría saber si tengo que realizar álgún cambio en la configuración para redireccionar la salida estandard o que muchas gracias y perdon por no hablar portugés
04/05/2004 3:26am (~17 anos atrás)

Bom, com essa integração da pra perceber como pode ser forte o uso combinado dos dois. É claro, que prefiro usar o Mysql com o php e integrar o java para algo livetime, mas seu exemplo é de muito bom tamanho e me mostrou como posso integrar essas duas linguagens poderosas, e que tem, de certo modo, um uso diferente, o que possibilita algo grande e bem feito.
29/04/2004 11:58am (~17 anos atrás)

O artigo devia explorar rapidamente a documentação da parte de SQL em Java, pois isto ficou obscuro e atrapalhou o entendimento do funcionamento da classe JavaPHP criada.
Fora isto, a intenção do artigo foi atingida, deixando claro a integração PHP, Java e MySQL.
parabéns!
27/04/2004 4:44pm (~17 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)