Vamos ver nesse artigo um pouco sobre o Frameworks Ajax para Java, o DWR. Vamos ver seus conceitos, utilidades, vantagens, algumas práticas e fazer o passo a passo para baixar, configurar e executar algumas de suas funcionalidades. Na primeira parte vamos abordar todo o seu conceito, instalação, configuração e um exemplo simples, na segunda vamos aumentar mais o nível de complexidade dos exemplos, com acesso ao banco, montagem de combos e etc, na terceira parte vamos mostrar algumas possíveis soluções de otimização e funções de tratamento de exceção. Espero que esse conteúdo seja de utilidade a todos.

img1

Parte I – Conceitos, Instalação, Configuração e Exemplo

Primeiro vamos saber o que é o DWR.

DWR nada mais é que um frameworks Ajax para Java, com funcionalidades que facilitam a sua vida na hora de desenvolver alguma aplicação que precise utilizar Ajax para executar seus métodos de sua classe Java e tem além de suas funções, uma que se destaca e é sua principal utilidade: Integração com as classes Java de dentro do próprio JavaScript( JSP/JS ßà JAVA ). Essa é sua principal importância, fazer com que você execute métodos das suas classes de dentro do próprio JavaScript com apenas uma única linha.DWR nada mais é que um frameworks Ajax para Java, com funcionalidades que facilitam a sua vida na hora de desenvolver alguma aplicação que precise utilizar Ajax para executar seus métodos de sua classe Java e tem além de suas funções, uma que se destaca e é sua principal utilidade: Integração com as classes Java de dentro do próprio JavaScript( JSP/JS ßà JAVA ). Essa é sua principal importância, fazer com que você execute métodos das suas classes de dentro do próprio JavaScript com apenas uma única linha.

figura1
Figura 01

Vantagens de se utilizar o DWR

  1. Fácil integração entre Java e JavaScript
  2. Com apenas uma simples configuração no xml, você define qual classe vai ser utilizada como um “objeto” Javascript.

  3. Integração Spring Beans;
  4. Simples integração com componentes Spring Beans.

  5. Creators configuráveis: new, session, spring static;
  6. Você pode escolher o tipo de objeto JavaScript que você quer criar para suas classes.

  7. Debugging no console;
  8. O DWR tem a opção de ativar a exibição de suas chamadas para exibir no console do Tomcat ou do Eclipse

  9. Real possibilidade de manter o seu padrão MVC;
  10. Se você esta utilizando na sua arquitetura o padrão MVC o DWR pode facilmente se integrar e não prejudicar a sua camada. Criando apenas mais uma camada, que seria do JS.

  11. Integração com os principais Frameworks Java;
  12. O DWR vem com integração para: Spring, Struts, JSF, WebWorks, Hibernate, Pageflow – Beehive / Weblogic, Servlet Objects.

Desvantagens?

Bem na minha opinião é que a sua única desvantagem (que pra mim não influi) é que ele só funciona dentro da plataforma Java.

Vamos primeiro criar um projeto web simples e baixar o dwr.jar.

Entendendo a configuração no contexto global.

Para se iniciar com DWR você deverá seguir alguns passos simples.

  1. Copiar o dwr.jar para a sua pasta WEB-INF/lib da sua aplicação;
  2. Configurar o seu web.xml para a sua aplicação “enxergar” o DWR;
  3. OPCIONALMENTE criar o dwr.xml;
  4. Incluir as bibliotecas .js do DWR nas suas páginas JSP ou HTML.

Com o nosso projeto WEB criado vamos agora “instalar” o DWR na aplicação.

Vamos baixar o dwr.jar(http://getahead.ltd.uk/dwr/download), e coloca-lo na pasta lib do WEB-INF do seu projeto. Estamos utilizando a versão 1.1.3 para esse artigo.

Copie o dwr.jar para dentro da pasta lib do seu WEB-INF que NO MEU CASO como estou utilizando o MyEcplise então vai estar localizado em: [?]:\[SeuWorkSpace]\PaletrasDWR\web\WEB-INF\lib, se você utiliza outro plugin é só colocá-lo na pasta lib do seu WEB-INF.

Pronto agora clique em cima do seu projeto dentro do eclipse e aperte F5 para atualizar o seu projeto, o MyEclipse vai atualizar automaticamente a sua lib, mais caso isso não aconteça, ainda com o seu projeto selecionado clique com o botão direito em cima dele e selecione Properties, depois vá em Java Build Path, e na aba Libaries, depois selecione Add JARs... e selecione o dwr.jar e dê OK.

Agora vamos configurar o WEB.XML.

figura2
Figura 02

Explicando as tags do XML:

Primeiro você vai apontar o Servlet do DWR e criar um servlet name para ele, para que possamos mapear.

figura3
Figura 03

Agora vamos mapear o servlet:

figura4
Figura 04

Agora o DWR já esta instalado na nossa aplicação e já esta pronto para o uso. Vamos entender que antes de tudo o DWR é um frameworks Ajax , ou seja, ele vai trabalhar com JavaScripts, isso quer dizer que, se você não quiser utiliza-lo para referenciar classes Java ele vai poder ser usado da mesma forma, só que claro sem a integração com Java, mais você poderá utilizar alguns de seus recursos como: montar grid, montar uma combo, popular divs, span, tbody e etc, isso explica o OPICIONAL para a criação do dwr.xml que iremos ver mais na frente.

Inicie o Tomcat para podermos rodar a nossa aplicação.

Entre com a url para acessar a sua aplicação: se o DWR foi instalado corretamente a seguinte página será carregada.

figura5
Figura 05

Nesse momento, se você quiser já poderá utilizar o DWR nos seus JSP's ou HTML's, bastando apenas importar as bibliotecas JS nas respectivas páginas (ver Figura 13).

Agora vamos ver como utilizar o DWR para acessar uma classe JAVA.

Criando uma classe JAVA

O nosso sistema de exemplos vai utilizar uma conexão com o banco de dados MySql, e vamos ter duas tabelas: PESSOA(nome, endereço, cidade, telefone) e USUARIO(id, login, senha). Então além de uma classe com os nossos métodos vamos criar também um Bean que represente cada tabela e suas propriedades. Mais para esse primeiro artigo ainda não vamos utilizar essa tabela no banco, fica apenas como adiantamento e justificativa para a criação desses Beans.

FacadeAjax

Estamos criando uma classe simples, inicialmente com um método que vai retornar uma String.

figura6
Figura 06

Foi criada uma classe simples, dentro da estrutura de pacotes do nosso projeto: com.celulajava.palestradwr.facadeAjax. Nos vamos nomear essa classe de FacadeAjax, pois ela fará o papel de Facade do Java para acessar as outras camadas da sua aplicação. Então vai funcionar da seguinte estrutura.

JSP ou HTML/JS ßà FacadeAjax ßà Camada de negocio ou o seu Controllerßà Persistência(DAOs)ßà SGBD

Agora vamos criar um Bean para utilizar-mos na nossa aplicação.

Bean: Pessoa

O nosso bean Pessoa vai representar a tabela Pessoa, vamos criá-lo dentro da seguinte estrutura de pacotes: com.celulajava.palestradwr.bean

Figura7
Figura 07

Bean: Usuário

O nosso bean Usuario vai representar a tabela Usuário, vamos criá-lo dentro da seguinte estrutura de pacotes: com.celulajava.palestradwr.bean

Figura08
Figura 08

Com a classe FacadeAjax e os Beans criados, vamos agora criar o objeto Java para o JavaScript, com isso precisaremos criar o arquivo dwr.xml dentro da pasta WEB-INF no mesmo nível que esta o web.xml.

Esse arquivo dwr.xml vai servir para mapearmos as classes Java para que elas possam ser reconhecidas e utilizadas no JavaScript. Veja abaixo:

figura9
Figura 09