Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Artigo Java Magazine 03 - Além das fronteiras
Artigo publicado pela Java Magazine 03.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?

JavaServer Faces
Criação visual de interfaces web
Nesta edição vamos falar sobre uma das mais esperadas especificações da plataforma Java, Java Server Faces (JSR-127). A JSF está na reta final – a versão public draft foi lançada em agosto desse ano e já está disponível uma implementação de referência early access.
Produtividade
Um dos grandes gargalos de produtividade no desenvolvimento de aplicações web é a construção da camada de apresentação, normalmente implementada em HTML com servlets e JSPs. A maioria dos sistemas segue a mesma linha: uma variação da tradicional arquitetura Model-View-Controller (MVC) – servlets processam a requisição, classes de negócio executam as regras e páginas JSP apresentam o resultado.
Porém, normalmente muito pouco do código de apresentação pode ser reutilizado entre aplicações – e às vezes nem dentro da mesma aplicação. O fato é que a criação da interface HTML e da lógica de apresentação ainda segue um processo um pouco rudimentar, sem o apoio ferramental que os programadores poderiam ter. Imagine criar aplicações Swing sem ferramentas para desenhar a interface e tendo que implementar componentes que ficam mais complexos a cada projeto – é basicamente isso que fazemos em aplicações web!
As tecnologias da camada web têm evoluído bastante para suprir a demanda por maior produtividade. Um bom exemplo são as bibliotecas de tags JSP, que reduzem a quantidade de linhas de código Java nas páginas JSP, facilitando o reuso de código. Um conjunto dessas bibliotecas desenvolvidas pelo grupo Apache foi adotado como a JSR-52 e lançado recentemente como a JSTL 1.0 (JSP Standard Tag Library) – uma biblioteca de tags padronizada incorporada à tecnologia JSP.
Também já existe uma quantidade razoável de frameworks para a camada web, entre eles Apache Struts, WebWork e JATO. Estes auxiliam os programadores web a desenvolver o controle de fluxo da interface e implementar o modelo MVC. Além disso, muitas empresas chegaram a desenvolver sua própria solução caseira, já que essas dificuldades são comuns.
Cada framework tem seu próprio modelo, apesar de vários serem bastante parecidos. O JavaServer Faces vem para colocar ordem na construção desses frameworks e promete aumentar a produtividade na programação web.
Padronização
Um objetivo importante do JSF é reduzir o esforço necessário para criar páginas JSP com processamento feito por servlets, mas esse não é o único cenário suportado. A especificação visa facilitar e padronizar a criação de componentes de interfaces gráficas na internet, sejam eles desenhados em HTML, WAP, XML ou outras tecnologias similares. A idéia é permitir a criação de bibliotecas reusáveis desses componentes.
Outro ponto importante é fazer surgir uma série de ferramentas de apoio para facilitar o trabalho do desenvolvedor. O JSF está sendo arquitetado de forma a criar um ambiente ideal para o surgimento de ferramentas. Mais um objetivo do JSF é permitir que programadores não capacitados na programação orientada a objetos, possam utilizar Java para criar sistemas para a web – basicamente selecionando uma ação para um determinado componente e escrevendo a rotina que a implementa com apoio de uma ferramenta.
O framework
O JSF é composto basicamente por um mecanismo para mapear dados vindos do cliente em componentes no servidor, controlar o fluxo da aplicação, e armazenar estado entre as requisições.
Além disso, foi criada uma API para a manipulação de componentes e controle de aplicações JSF. Mas é interessante observar que o objetivo é que boa parte da API seja utilizada pelas ferramentas de desenvolvimento, e que o programador se concentre na parte de mais alto nível.
O JSF se baseia nas versões 2.3 e 1.2 das APIs de servlets e JSP, respectivamente. Além disso, a JSLT 1.0 também é utilizada pelo mecanismo, que também tem sua própria biblioteca de tags para facilitar a integração com JSP (veja a Figura 1).
Ciclo de vida
O framework JSF procura resolver problemas comuns da programação web, tais como: processamento de formulários, tratamento de eventos, conversão de tipos, tratamento de erros, gerenciamento de estado, validação de dados e internacionalização. A API e as tags criadas são voltadas para a solução desses problemas, que são abordados durante um ciclo de vida de atendimento à requisição.
O ciclo de vida de atendimento a uma requisição é composto por sete fases (veja a Figura 2). Cada fase tem um papel bem definido e pode alterar o fluxo da requisição.
"
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
é Arquiteto de Tecnologias da Qualiti Software Processes (www.qualiti.com.br) e programador certificado pela Sun. Júlio César faz parte do Corpo Editorial da Java Magazine.



