Artigo WebMobile 20 - Desenvolvimento Web com Wicket, Parte 1: O estado do Wicket

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

Veremos o desenvolvimento de aplicações Web em Java utilizando o framework Wicket, discutindo as duas formas possíveis de programação: stateless e statefull.

Esse artigo faz parte da revista WebMobile edição 20. Clique aqui para ler todos os artigos desta edição

imagem_pdf.jpg

Java Web

Desenvolvimento Web com Wicket, Parte 1: O estado do Wicket

Aplicações baseadas em estado (Stateful)? Aplicações não baseadas em estado (Stateless)? Wicket acomoda ambos os tipos de aplicações

 

 

De que se trata o artigo:

Trata do desenvolvimento de aplicações Web em Java utilizando o framework Wicket, discutindo as duas formas possíveis de programação: stateless e statefull.

Para que serve:

Se você for iniciante com o Wicket, esta série servirá como uma introdução acessível e atraente; se você já estiver usando o framework e já possui um conhecimento sobre ele, você se divertirá com os exercícios práticos e bem elaborados que encontraremos adiante.

Em que situação o tema é útil:

Wicket é um framework Java Web com uma missão ambiciosa: suportar o desenvolvimento de aplicação estilo desktop para a Web. Este objetivo possui duas implicações separadas: aplicações Web Wicket não devem somente trabalhar o mais próximo possível como aplicações desktop, mas ao escrever uma aplicação Web com Wicket devemos nos sentir como se estivéssemos escrevendo uma aplicação desktop. Esta série é escrita para aqueles que estão iniciando no uso do Wicket – ou pensam em iniciar seu uso – assim como com insights para usuários mais experientes.

 

Wicket é um framework orientado a componentes que faz muita coisa no desenvolvimento de aplicação Java Web se tornar algo semelhante à simples e intuitiva interface encontrada em aplicações Desktop. Nesta série de artigos, iremos apresentar aspectos chaves do Wicket que o diferenciam de outros frameworks de desenvolvimento de aplicações Web. Se você for iniciante com o Wicket, esta série servirá como uma introdução acessível e atraente; se você já estiver usando o framework, você se divertirá com os exercícios práticos e bem elaborados que encontraremos adiante. Este primeiro artigo investiga o estado virtual do Wicket, demonstrando as muitas formas que o Wicket acomoda o desenvolvimento de aplicações Web stateless (não baseada em estado) e stateful (baseada em estado).

Wicket é um framework Java Web com uma missão ambiciosa: suportar o desenvolvimento de aplicação estilo desktop para a Web. Este objetivo possui duas implicações separadas: aplicações Web Wicket não devem somente trabalhar o mais próximo possível como aplicações desktop, mas ao escrever uma aplicação Web com Wicket devemos nos sentir como se estivéssemos escrevendo uma aplicação desktop. Concebido e escrito por Jonathan Locke em 2004, este framework de código aberto rapidamente atraiu um grupo considerável de colaboradores, direcionando membros da comunidade Apache, e em 2007 tornou-se um projeto de alto nível da Apache. Ao longo deste caminho, o conjunto de funcionalidades do Wicket cresceu em duas direções: melhor integração com a Web tradicional de recursos e localizadores estáticos, e apoio para a nova Web dinâmica emergindo nas tecnologias Ajax. O judicioso uso de abstração do Wicket permitiu que ele optasse por esses fins/objetivos divergentes sem aumentar sua complexidade a seus usuários.

Esta série é escrita para aqueles que estão iniciando no uso do Wicket – ou pensam em iniciar seu uso – assim como com insights para usuários mais experientes. Iremos explorar as funcionalidades que diferenciam o Wicket de outros frameworks para desenvolvimento de aplicação Java Web, começando neste artigo com o estado de aplicação virtual que faz tudo isso ser possível. Como é diferente a programação Wicket stateful da programação Web tradicional? Quais são as vantagens e desvantagens do desenvolvimento stateful, como ele é mais bem influenciado em uma aplicação, e como ele pode ser eliminado se necessário? Para responder a essas questões, nós iremos seguir através da criação de uma aplicação Wicket stateful.

 

Visão Geral sobre a máquina Wicket

Em uma típica programação GUI desktop, componentes visuais de interface são modelados por componentes de software que possuem estados individuais. Para imitar este estilo, um framework Web deve manter um estado de aplicação virtual para todo usuário da aplicação. Estado do lado do servidor extensivo de qualquer tipo vai de encontro a algumas tendências na programação Web, mas Wicket suporta estado virtual de tal forma que os custos são minimizados, os benefícios são maximizados e o nível de estado do lado do servidor mantido é totalmente viável para o programador. Enquanto ele pode não certo para toda aplicação Web, ele é certamente melhor que o uso extensivo e ad hoc de sessão Web em aplicações que a requerem.

Visto que Wicket sempre apoiou estado virtualizado e ele tem sido otimizado ao longo dos anos, o gerenciamento de estado na versão 1.3 do framework é ligeiramente mais crítico que em versões anteriores, mas também mais eficiente. Quando um usuário interage com uma página Wicket stateful, esta página é retida na memória do servidor como uma instância de uma subclasse WebPage. Os objetos para as páginas anteriores que o usuário visitou são serializadas no disco (sob a configuração padrão) e podem ser recarregadas caso o usuário volte a requisitá-las. Isto é separado do versionamento de páginas, o mecanismo que mantém estado com uma página, que é ativado através de registros de mudanças feitas no estado da página. Não se preocupe se esses pontos parecem um pouco denso; eles serão mais bem esclarecidos e entendidos na aplicação de exemplo.

 

O template de página

Esboçar a interface é uma boa forma de iniciar. Visto que isto é uma aplicação Wicket, você será também capaz de influenciar tudo no arquivo HTML a partir do esboço durante a aplicação em tempo de execução.

A aplicação de exemplo deste artigo será (você pode baixar no portal da WebMobile) uma calculadora. A calculadora irá apoiar as operações básicas: adição, subtração, multiplicação e divisão, assim como terá os botões de igual e limpar que operam da forma tradicional. Um campo texto servirá como entrada numérica entre as operações, com um bloco separado para o display. A Listagem 1 mostra o HTML básico para esta calculadora, e a Figura 1 renderiza esta tela.

 

Listagem 1. Código HTML estático para a Calculadora                                        

 

<form>

  <div>

    0

  </div>

  <div>

    <input value="0" type="text" />

    <input value="=" type="submit" />

    <input value="c" type="submit" />

  </div><div>

    <input value="÷" type="submit" />

    <input value="×" type="submit" />

    <input value="-" type="submit" />

    <input value="+" type="submit" />

  </div>

</form>

 

Figura 1. Visualização da renderização da página da Calculadora

 

Note que o código inclui caracteres não-ASCII para alguns dos botões. Browsers Web modernos não terão problemas em exibir esses rótulos. Além disso, caso o template Wicket defina uma codificação correta no tratamento das tags XML, esses símbolos serão lidos e traduzidos para qualquer que seja a codificação de saída requisitada.

Agora que definimos a interface, o próximo passo é iniciar sua ligação a um código executável.

 

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?