|
||
|
|
Conheça também: Onmasters . Ofertas . Divulgue! . Vai.la . Geraboleto . Baixa.la . Assista.la . Joga.la
» Início » Programação » Framework MVC: Apache Struts ou JavaServer Faces? parte 2
--> |
|
Avaliação: Não avaliado | Publicado em: 05/09/2005
Framework MVC: Apache Struts ou JavaServer Faces? parte 2
Givanildo Santana do Nascimento Givanildo é Bacharel em Sistemas de Informação, Sun Certified Web Component Developer for J2EE Platform, Sun Certified Java 2 Platform Programmer 1.4, Analista de Sistemas na Secretaria da Fazenda de Sergipe. Arquiteto J2EE da ITX Tecnologia da Informação. Publicou artigos em revistas como a Mundo Java e apresentou palestras em eventos como Just Java 2005 e III Borland Conference.
Olá Pessoal,
Desculpa a demora, vamos retornar a 2º Parte do artigo anterior : Vamos lá... Apache Struts Web Application Framework O projeto do framework Struts foi iniciado em maio de 2000 por Craig R. McClanahan, com o objetivo de constituir uma implementação MVC padrão para a comunidade Java. Em julho de 2001 a versão 1.0 foi lançada e em pouco tempo o objetivo foi alcançado, havendo hoje inúmeras aplicações baseadas neste framework. Atualmente, os engenheiros da Apache Software Foundation estão trabalhando na versão 2 do Struts, o que mostra que ao contrário do que muitos imaginaram, o projeto do Struts não vai estagnar, ou mesmo descontinuar, por causa do JavaServer Faces.Baseadas na arquitetura MVC, aplicações Struts têm três categorias de componentes: (1) componentes de controle, incluindo um servlet e um processador de requisições; (2) JavaServer Pages e Tag Libraries da camada de visão e (3) componentes de negócios e de acesso a dados da camada de modelo. A figura 4 ilustra a arquitetura de uma aplicação MVC baseada no Struts. Figura 4. Arquitetura do Struts Fonte: http://otn.oracle.com/sample_code/tutorials/bc4jvsm/struts/impl.htm Além do MVC, o Struts adere a uma série de outros padrões e boas práticas, de forma transparente para quem o está utilizando. A figura 5 mostra os principais padrões seguidos pelo Struts. Figura 5. Principais padrões seguidos pelo Struts O controlador Struts Segundo o padrão Front Controller, o elemento de controle centralizado de uma aplicação MVC intercepta as requisições dos clientes – navegadores Internet no caso de aplicações WEB – seleciona e executa a lógica de negócios apropriada e redireciona a requisição para o próximo passo no fluxo da aplicação. Este próximo passo pode ser uma outra ação a ser interceptada pelo controlador ou uma página JSP, por exemplo, para a apresentação da resposta final à requisição do cliente. No Struts, o principal elemento de controle é o servlet org.apache.struts.action.ActionServlet. De forma bastante resumida, quando é iniciado, o ActionServlet lê do arquivo de configuração struts-config.xml os mapeamentos, chamados action mappings, das ações da aplicação. Estes mapeamentos são então usados pelo ActionServlet para transformar requisições HTTP em ações da aplicação. As requisições são direcionadas ao ActionServlet graças a um mapeamento (servlet-mapping) definido no arquivo descritor da aplicação, o web.xml. É comum o uso do padrão *.do neste mapeamento, embora isto seja apenas uma convenção e não uma regra. A listagem 1 mostra um trecho do arquivo web.xml, responsável pela definição do ActionServlet e pelo seu mapeamento para o padrão convencional. O elemento <servlet> configura o ActionServlet, identificando-o por “action”, enquanto o elemento <servlet-mapping> associa o servlet “action” ao padrão *.do. Listagem 1. Definição do ActionServlet do Struts no web.xml
JavaServer Faces Em maio de 2001, um grupo de empresas reuniu-se no Java Community Process e propôs a Java Specification Request (JSR) 127, com o objetivo de definir uma arquitetura para o desenvolvimento de interfaces de usuário processadas no servidor, à qual foi dado o nome de JavaServer Faces (JSF). No dia 1º de março de 2004, a JSR 127 foi aprovada com 100% de aceitação entre os votantes, como mostra a tabela 1. Tabela 1 – Resultado da votação da JSR-127
A proposta da tecnologia JSF é adicionar a facilidade de desenvolvimento de interfaces à robusta plataforma J2EE. O JSF simplifica o desenvolvimento de sofisticadas interfaces de usuário, definindo um modelo de componentes e eventos associado a um eficiente ciclo de processamento de requisições. Seus principais elementos são: Aderência do JSF à arquitetura MVC ocorre de forma similar à do Swing e de outros frameworks de interface gráfica para desktop. A figura 6 mostra os elementos JSF na arquitetura MVC. Figura 6. JSF na arquitetura MVC Na camada de visão, os componentes são produzidos por classes Renderers,para apresentação em um mecanismo de saída. Um conjunto de Renderers correlacionados forma um RenderKit. A implementação JSF de referência inclui somente um RenderKit voltado para clientes HTML, o qual produz tags HTML para cada componente JSF. Com o passar do tempo, novos RenderKits serão desenvolvidos, permitindo que os componentes JSF possam convertidos para outras linguagens de marcação como WML e XML.] Os componentes JSF definem eventos padrão, como o “valor alterado”, “botão clicado”, e permitem que novos manipuladores de eventos (listeners) sejam acoplados. Para aplicações Web, o JSF fornece um servlet de controle para o processamento de requisições, o javax.faces.webapp.FacesServlet, ou simplesmente FacesServlet. O FacesServlet é o correspondente JSF ao ActionServlet do Struts. Ele intercepta as requisições e aciona a camada de negócios, como preceitua o padrão Front Controller. Os eventos, manipuladores de eventos, o arquivo XML de configuração do JSF e o FacesServlet formam a camada de controle do JSF. Listagem 2. Definição de regras de navegação.
As requisições são direcionadas ao FacesServlet graças a um mapeamento (servlet-mapping) definido no web.xml. É comum o uso dos padrões *.faces e /faces/*. A listagem 3 mostra um trecho do arquivo web.xml, responsável pela definição do FacesServlet e pelo seu mapeamento para o padrão /faces/*. Listagem 3. Definição do FacesServlet no web.xml
Bom Pessoal, chegamos ao fim da parte 2 do nosso artigo. Proxima semana estarei disponibilizando a 3º e última parte sobre : Framework MVC: Apache Struts ou JavaServer Faces?Abraços e um bom fim de semana. Este artigo é a parte 2 de 3 da seguinte série:
![]() |
|
|