+2

Integrando o PHP com Java (parte 2)

criado por Rodrigo Rodrigues em 26/04/2004 11:58am
Classe Java - JavaPHP.java
**
package br.com.phpbrasil.artigo;

import java.sql.*;

public class JavaPHP {
    public JavaPHP() {
    }
	
    public boolean doProcessaForm(String usuario, String senha) {
        if (usuario.equalsIgnoreCase("phpbrasil") && senha.equalsIgnoreCase("senha")){
            return true;
        }
        return false;
    }
	
    public static void main(String php[]) {
        final Connection connection = ConexaoDB.getConexao();
        try {
            String pt_usuario = "Mostra os usuarios da Tabela PT_USUARIO\n";
            PreparedStatement preparedStatement = connection.prepareStatement("SELECT usuario FROM pt_usuario");
            ResultSet resultSet = preparedStatement.executeQuery();
            int i = 0;
            while (resultSet.next()){
                pt_usuario += "USUARIO: "+resultSet.getString(1) + "\n";
                i++;
            }
            if (i == 0){
                pt_usuario = "Não foi encontrado nemhum valor.";
            }
            preparedStatement.close();
            resultSet.close();
            System.out.println(pt_usuario);
        } catch(SQLException e) {
            System.out.println(e);
        } finally {
            ConexaoDB.close(connection);
        }
    }
	
    public String doValidacao(String usuario, String senha) {
        final Connection connection = ConexaoDB.getConexao();
        String idUsuario = "";
        try {
            PreparedStatement preparedStatement = connection.prepareStatement("SELECT id_usuario FROM pt_usuario WHERE usuario = ? AND senha = ? AND ativo = 'sim'");
            preparedStatement.setString(1, usuario);
            preparedStatement.setString(2, senha);

            ResultSet resultSet = preparedStatement.executeQuery();
            if (!resultSet.next()){
                return "notFound";
            }
            idUsuario += resultSet.getString(1);
            preparedStatement.close();
            resultSet.close();
        } catch(SQLException e) {
            return e + "";
        } finally {
            ConexaoDB.close(connection);
        }
        return idUsuario;
    }
	
    public String doMontaMenu(int idUsuario) {
        final Connection connection = ConexaoDB.getConexao();
        String menu = "<table border=\"0\" cellspacing=\"1\" cellpadding=\"0\" width=\"250\" bgcolor=\"#000000\">\n";
        try {
            PreparedStatement preparedStatement = connection.prepareStatement("SELECT m.nome_link, m.path_link, p.boolean_permissao FROM permissao AS p, menu AS m WHERE p.id_menu = m.id_menu AND p.id_usuario = ?");
            preparedStatement.setInt(1, idUsuario);
            ResultSet resultSet = preparedStatement.executeQuery();
            int i = 0;
            while (resultSet.next()){
                if (resultSet.getString(3).equalsIgnoreCase("sim")){
                    menu += "  <tr>\n     <td bgcolor=\"#FFFFFF\" align=\"center\"><a href=\""+resultSet.getString(2)+"\">"+resultSet.getString(1)+"</a></td>\n  </tr>\n";
                } else {
                    menu += "  <tr>\n     <td bgcolor=\"#CCCCCC\" align=\"center\"><a href=\""+resultSet.getString(2)+"\">"+resultSet.getString(1)+"</a></td>\n  </tr>\n";
                }
                i++;
            }
            menu += "  <tr>\n     <td bgcolor=\"#FF9933\" align=\"center\"><a href=\"pagina_restrita.php?acao=sair\">Logout</a></td>\n  </tr>\n";
            menu += "</table>\n";
            preparedStatement.close();
            resultSet.close();
            if (i == 0){
                return "menuNull";
            }
        } catch(SQLException e) {
            return e + "";
        } finally {
            ConexaoDB.close(connection);
        }
        return menu;
    }

    public String doPermissaoUsuario(int idUsuario) {
        final Connection connection = ConexaoDB.getConexao();
        String pathPermissaoUsuario = "";
        try {
            PreparedStatement preparedStatement = connection.prepareStatement("SELECT m.path_link FROM permissao AS p, menu AS m WHERE p.id_menu = m.id_menu AND p.id_usuario = ? AND p.boolean_permissao = 'sim'");
            preparedStatement.setInt(1, idUsuario);
            ResultSet resultSet = preparedStatement.executeQuery();
            int i = 0;
            while (resultSet.next()){
                pathPermissaoUsuario += resultSet.getString(1) + ";";
                i++;
            }
            preparedStatement.close();
            resultSet.close();
            if (i == 0){
                return "permissaoNull";
            }
        } catch(SQLException e) {
            return e + "";
        } finally {
            ConexaoDB.close(connection);
        }
        return pathPermissaoUsuario;
    }
	
    private String doTratarExcecao() {
        return "OK";
    }
}
**


Classe PHP - classe_main_phpjava.php
**
<?php 
class JavaPHP {
    function JavaPHP() {
        $this->packageJava = "br.com.phpbrasil.artigo."; // Import do Pacote do Sistema.
        $this->javaPhp = new Java($this->packageJava.'JavaPHP'); // Variável ($this->rodrigoFrameworkJavaPhp) da classe instância do objeto Java.
    }
	
    function doProcessaForm($usuario, $senha) {
        if ($this->javaPhp->doProcessaForm($usuario, $senha)){
            echo "Ok, usuário válido.";
        } else {
            echo "Usuário ou Senha incorretos.";
        }
    }
	
    function doValidacao($usuario, $senha) {
        $validacao = @$this->javaPhp->doValidacao($usuario, base64_encode($senha));
        if ($validacao == "notFound"){
            echo "Usuário ou Senha incorretos.";
        } else {
            session_start();
            $_SESSION['idUsuarioSession'] = $validacao;
            $_SESSION['usuarioSession'] = $usuario;
            $_SESSION['senhaSession'] = base64_encode($senha);
            header("Location: pagina_restrita.php");
        }
    }
	
    function doMontaMenu($idUsuario) {
        $menu = @$this->javaPhp->doMontaMenu($idUsuario);
        if ($menu != "menuNull"){
            return $menu;
        }
    }

    function doPermissaoUsuario($idUsuario) {
        $permissaoUsuario = @$this->javaPhp->doPermissaoUsuario($idUsuario);
        if ($permissaoUsuario != "permissaoNull"){
            $path = "";
            $permissaoUsuario = explode("|=|", $permissaoUsuario);
            for ($i = 0; $i < count($permissaoUsuario); $i++){
                if ($permissaoUsuario[$i] != "") {
                    $path .= $permissaoUsuario[$i].";";
                }
            }
            $_SESSION['pathMenuPermissaoUsuario'] = $path;
        } else {
            $_SESSION['pathMenuPermissaoUsuario'] = "";
        }
    }

    function doPermissaoNavegacaoLink($safeIdUrl) {
        $permissaoNavegacao = explode(";", $_SESSION['pathMenuPermissaoUsuario']);
        for ($i = 0; $i < count($permissaoNavegacao); $i++){
            if ($permissaoNavegacao[$i] != "") {
                if ($permissaoNavegacao[$i] == $safeIdUrl) {
                    $valueBoolean = true;
                }
            }
        }
        if (!$valueBoolean){
            header("Location: pagina_restrita.php");
        }
    }

    function doLogadoUser() {
        session_start();
        if (empty($_SESSION['idUsuarioSession']) and empty($_SESSION['usuarioSession']) and empty($_SESSION['pathMenuPermissaoUsuario']) and empty($_SESSION['senhaSession'])){
            unset($_SESSION['idUsuarioSession']);
            unset($_SESSION['usuarioSession']);
            unset($_SESSION['pathMenuPermissaoUsuario']);
            unset($_SESSION['senhaSession']);
            session_destroy();
            echo "<script>alert('Você precisa se logar antes.'); \n window.location = 'index.php';</script>";
        }
    }
	
    function doSairSistema() {
        session_start();
        unset($_SESSION['pathMenuPermissaoUsuario']);
        unset($_SESSION['idUsuarioSession']);
        unset($_SESSION['usuarioSession']);
        unset($_SESSION['senhaSession']);
        session_destroy();
        header("Location: index.php");
    }

    function noCache() {
        header("Cache-Control: no-store, no-cache, must-revalidate");
        header("Cache-Control: post-check=0, pre-check=0", false);
        header("Pragma: no-cache");
    }

    function getException() {
        $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;
        }
    }
}
?>
**

Espero que tenham gostado do artigo, caso tenha algum erro ortográfico, lógico favor poste uma mensagem pra mim.

Sem mais, Rodrigo Rodrigues.

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.)