Integrando o PHP com Java (parte 2)
Recomendo que vejam antes a primeira parte (http://www.phpbrasil.com/articles/article.php/id/777) deste artigo, todas informações necessárias sobre configurações estão descritas nele.
Faremos agora nossa classe "Java" principal onde terá todas as funções do sistema, seguindo um passo a passo bem simples e objetivo.
Observações importantes:
-> Métodos no Java é o mesmo que funções no PHP.
-> Todos os métodos deverão ter seu controle de acesso "public".
JavaPHP.java
**
**
Criamos nossa classe(JavaPHP) dentro do package(br.com.phpbrasil.artigo) com 2 métodos.
Importamos o pacote(java.sql.*) padrão de Conexão com Banco de Dados.
Método construtor "JavaPHP()" sem nenhuma execução.
Método "doProcessaForm(String usuario, String senha)" do tipo Boolean(true|false) espera como paramêtros 2 Strings, ele retorna um boolean conforme o valor das Strings, o método "equalsIgnoreCase(String)" vem da classe String, ele compara o valor da String e retorna um boolean.
Agora criaremos nossa classe PHP "principal" para interagir com o Java.
classe_main_phpjava.php
**
**
Nossa classe(JavaPHP) PHP tem a mesma nomenclatura da classe Java para facilitar na manutenção dos scripts.
A função construtora "JavaPHP()" cria uma variável($this->javaPhp) da classe com o valor objeto do Java, depois quando precisarmos chamar algum método fazeremos assim "$this->javaPhp->nomeDoMetodo()".
A função "doProcessaForm($usuario, $senha)" processará nosso "primeiro" exemplo com formulário, ela verifica o retorno do método Java(doProcessaForm) e printa uma mensagem conforme o valor de retorno.
Criaremos nosso formulário.
index.php
**
**
Nesta página criamos um formulário Html Simples com os campos "Usuário,Senha", caso coloque os valores usuário "phpbrasil" e senha "senha", retornará um true no método "doProcessaForm()" e printará a mensagem de usuário válido na página.
Aprendemos até aqui o básico, fizemos nossas classes(Java e Php) e interagimos ela com o browser num form, na próxima página veremos conexão com o Banco de Dados Mysql através do Java.
Faremos agora nossa classe "Java" principal onde terá todas as funções do sistema, seguindo um passo a passo bem simples e objetivo.
Observações importantes:
-> Métodos no Java é o mesmo que funções no PHP.
-> Todos os métodos deverão ter seu controle de acesso "public".
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; } }
Criamos nossa classe(JavaPHP) dentro do package(br.com.phpbrasil.artigo) com 2 métodos.
Importamos o pacote(java.sql.*) padrão de Conexão com Banco de Dados.
Método construtor "JavaPHP()" sem nenhuma execução.
Método "doProcessaForm(String usuario, String senha)" do tipo Boolean(true|false) espera como paramêtros 2 Strings, ele retorna um boolean conforme o valor das Strings, o método "equalsIgnoreCase(String)" vem da classe String, ele compara o valor da String e retorna um boolean.
Agora criaremos nossa classe PHP "principal" para interagir com o Java.
classe_main_phpjava.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->javaPhp) 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 "Senha ou Login incorretos."; } } }
Nossa classe(JavaPHP) PHP tem a mesma nomenclatura da classe Java para facilitar na manutenção dos scripts.
A função construtora "JavaPHP()" cria uma variável($this->javaPhp) da classe com o valor objeto do Java, depois quando precisarmos chamar algum método fazeremos assim "$this->javaPhp->nomeDoMetodo()".
A função "doProcessaForm($usuario, $senha)" processará nosso "primeiro" exemplo com formulário, ela verifica o retorno do método Java(doProcessaForm) e printa uma mensagem conforme o valor de retorno.
Criaremos nosso formulário.
index.php
**
<?php include_once("classe_main_phpjava.php"); $acao = $_POST['acao']; if ($acao == "enviar"){ $javaPHP = new JavaPHP(); $javaPHP->doProcessaForm($_POST['usuario'], $_POST['senha']); } ?> <html> <head> <title>Interagindo Java+PHP</title> </head> <body> <form method="post" action="<?=$_SERVER['PHP_SELF']?>" name=""> <input type="hidden" name="acao" value="enviar"> Usuário: <input type="text" name="usuario"><br> Senha: <input type="password" name="senha"><br> <input type="submit" value="Enviar"> </form> </body> </html>
Nesta página criamos um formulário Html Simples com os campos "Usuário,Senha", caso coloque os valores usuário "phpbrasil" e senha "senha", retornará um true no método "doProcessaForm()" e printará a mensagem de usuário válido na página.
Aprendemos até aqui o básico, fizemos nossas classes(Java e Php) e interagimos ela com o browser num form, na próxima página veremos conexão com o Banco de Dados Mysql através do Java.
http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-3.1.11.zip/from/http://mysql.mirror.netmonic.com/ esse funciona eu já baixei tem 7MB
24/10/2005 2:50pm
(~19 anos atrás)
24/10/2005 2:38pm
(~19 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
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
(~19 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
(~20 anos atrás)
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
(~20 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
(~20 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!
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
(~20 anos atrás)
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>