Você está na página 1de 17

Tutorial DWR

Configurao e uso
Por Alexandre Soli

Passo 1 Ferramentas

A verso do DWR utilizada neste tutorial e a 2.0.5 (funciona com Java 1.3 em diante) e pode ser encontrada no link abaixo: http://directwebremoting.org/dwr/download TOMCAT 5.5 como servidor web Java 6 Eclipse 3.4.1

Passo 2 Criando o projeto exemplo

Dentro do Eclipse clique em File > New > Project e selecione Dynamic Web Project

Selecione Dynamic Web Project

Nomeie o projeto para tutorial-dwr e finalize o processo.

Passo 3 - Configurao

Copie o jar do dwr para a pasta WEB-INF/lib

Nosso web.xml:
<servlet> <servlet-name>dwr-invoker</servlet-name> <servletclass>org.directwebremoting.servlet.DwrServlet</servletclass> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/dwr.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>false</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>

Crie um arquivo chamado dwr.xml dentro do diretrio WEB-INF.

Conteudo do arquivo dwr.xml

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "../config/dwr20.dtd"> <dwr> <allow> <!-- Declaracao da classe que ira responder as requisicoes AJAX --> <create creator="new" javascript="ExemploLookup"> <param name="class" value="br.com.neoimage.ExemploLookup" /> </create> <!-- Utilizado para conversao de objetos javascript/java --> <convert converter="bean" match="br.com.neoimage.usuario.Usuario"/>

</allow>
</dwr>

Crie as classes ExemploLookup, Usuario e exemplo.jsp

Passo 4 Explicaes

Usuario - representa um usurio e contm apenas 2 atributos e seus respectivos getters e setters. ExemploLookup ir atuar como um servio para as requisies AJAX. Exemplo.jsp contm a chamada javascript para nosso servio AJAX. Dwr.xml contm a declarao de nosso servio e da classe Usuario.

Passo 5 - Codificao

Classe Usuario

package br.com.neoimage.usuario; public class Usuario { private String nome; private String sobrenome; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getSobrenome() { return sobrenome; } public void setSobrenome(String sobrenome) { this.sobrenome = sobrenome; } }

Classe ExemploLookup

package br.com.neoimage; import br.com.neoimage.usuario.Usuario;


public class ExemploLookup { /** Responde as requisies AJAX vindas da pgina exemplo.jsp A entrada:<convert converter="bean" match="br.com.neoimage.usuario.Usuario"/> dentro do dwr.xml permite o trfego do objeto entre o Java e o javascript. */ public String metodoExemplo(Usuario usuario) { String nomeCompleto = usuario.getNome() + " " + usuario.getSobrenome(); return nomeCompleto; } }

Pgina exemplo.jsp

<html> <!-- Imports necessrios para o DWR --> <script src='dwr/engine.js' type='text/javascript' ></script> <script src='dwr/util.js' type='text/javascript' ></script> <!-- Import da classe ExemploLookup --> <script type='text/javascript' src='dwr/interface/ExemploLookup.js'></script> <script language="javascript"> var usuario = new Object(); // cria um objeto de comunicacao javascript/java usuario.nome = "Alexandre"; // equivalente ao usuario.setNome usuario.sobrenome = "Soli"; // equivalente ao usuario.setSobrenome // faz a chamada para o metodo -metodoExemplo- da classe ExemploLookup // o obj usuario e passado como parametro ExemploLookup.metodoExemplo(usuario, function(data) { // todo codigo a seguir sera executado apos a resposta do metodo -metodoExemploalert(data); // data contm a resposta vinda do Java. }); </script> </html>

Passo 6 Testando o exemplo

Inicie o servidor e aponte para o endereo http://localhost:8080/tutorial-dwr/exemplo.jsp Ao ser carregada, a pgina ir mostrar uma mensagem com o nome e sobrenome passados como parametros na pagina jsp.
var usuario = new Object(); usuario.nome = "Alexandre"; usuario.sobrenome = "Soli";

O servio ExemploLookup ir interceptara chamada ao mtodo metodoExemplo, far a concatenao das variveis e devolver uma String.
public String metodoExemplo(Usuario usuario) { String nomeCompleto = usuario.getNome() + " " + usuario.getSobrenome(); return nomeCompleto; }

Pgina com a mensagem de resposta.

Dvidas ou comentrios?

Envie um email para alexandre.soli@gmail.com Visite meu blog para mais dicas e tutorias http://alexandresoli.wordpress.com

Você também pode gostar