Avaliação do Framework Struts para implementação de aplicações

Propaganda
Avaliação do Framework Struts para implementação de aplicações WEB usando Padrão
Modelo-Visão-Controlador
Alice Alves Corrêa
Resumo por Thiago Roberto dos Santos
O trabalho analisa aspectos específicos do Framework Struts e propõe uma implementação
para sua utilização.
Com o advento de aplicações na internet surgiu a necessidade de desacoplamento da
interface com o usuário para facilitar a manutenção das regras de negócio e da própria
interface.

Tecnologias para Desenvolvimento WEB
Foram comparadas diversas tecnologias de desenvolvimento WEB, como CGI, PHP,
Java Servlets, ASP, ASP.net e JSP. Ente as vantagens das JSP estão a robustez da
linguagem Java, a portabilidade e sua difusão no mercado.

Padrão MVC
A idéia principal do padrão MVC é separar a interface com o usuário das regras de
negócio das aplicações. A utilização do padrão facilita a implementação de diversas
interfaces diferentes para as mesmas regras de negócio, bem como facilita a
manutenção das aplicações, pois concentra as regras de negócio em classes separadas,
sendo assim mais facilmente encontradas.

Aplicação de MVC em Desenvolvimento WEB
Em java, podemos aplica MVC implementando um Servlet que recebe as requisições
do usuário, que por sua vez invoca métodos de negócio em JavaBeans e depois
direciona a saída para um JSP. Dessa forma não há código de negócio nas JSPs e
reduz drasticamente também a quantidade de scriptlets para lógica de interface, pois
boa parte das tarefas é executada no Servler.

Frameworks
Frameworks são conjuntos de classes que podem ser utilizados para construir diversas
aplicações de um determinado contexto.
O Framework Struts foi concebido com a intenção de facilitar o desenvolvimento de
aplicações WEB em Java. A idéia principal do Struts é facilitar a separação das
camadas de interface com o usuário e de negócios.
Embora o Struts seja construído com tecnologias J2EE, ele não faz parte da
especificação padrão.
O Framework usa uma combinação de JSPs, JSP tags e Servlets Java, implementando
assim o padrão MVC do lado do servidor.

O modelo
O modelo, usualmente chamado de camada de negócio, representa a lógica de
negócio das aplicações, assemelhando-se a elementos do mundo real e processos de
uma organização.
O modelo contém a “inteligência” da aplicação e é o que realmente a caracteriza.
Dada sua importância, a organização de sua implementação e o seu uso adequado são
fundamentais.
As entidades são parte do modelo e podem ser persistidas em bancos de dados. Os
objetos que executam as transações do negócio também compõem o modelo. Em
aplicações mais completas podem ser usados recursos como os Enterprise Java Beans
(EJBs).

Visão
O Framework Struts fornece para a camada de visão validação de dados, tratamento
de erros e aceitação de entradas do usuário. Dessa forma o foco no negócio, ou seja,
no modelo, se torna mais fácil.
O Struts usa para a camada de visão basicamente JSPs. Alguns componentes podem
ser usados em conjunto com os JSPs, como documentos HTML, JSP tags, JavaScript,
Folhas de Estilo(css), classes ActionForm, para as telas de entrada, e mesmo
JavaBeans para transferir resultados da camada de negócio.

A classe ActionForm
A maioria das aplicações precisa receber entradas de usuários. A classe ActionForm é
usada para capturar dados do usuário em formulários HTML e transferi-los para a
classe Action. As entradas devem ser armazenadas para, em caso de erro, retorna-las
para o usuário.

Jsps na camada de visão
Os JSPs são ideais para a camada de visão. Páginas HTML são estáticas, o que limita
a complexidade da interface. Servlets tornam o desenvolvimento e a manutenção
difícil, pois a programação gráfica está dentro de classes Java, dificultando o trabalho
de web designers.
Usualmente são usadas tag libs junto com JSPs, pois evitam o uso de scriptlets,
deixando o código mais limpo.

O Controlador
O controlador em aplicações WEB Java é um Servlet. Ele é responsável por receber
as requisições http do cliente, traduzir a requisição numa chamada à uma rotina de
negócio, selecionar a próxima visão e envia-la para o cliente.
No Struts, as chamadas são interceptadas pela classe ActionServlet, que por sua vez
delega a execução de uma tarefa para a classe RequestProcessor, através do método
process(). Essa classe então instancia a classe Action correspondente a regra de
negócio através de arquivos de configuração em XML. Como parâmetro para a classe
Action é passado um objeto de uma subclasse de ActionForm, contendo a entrada de
dados do usuário.

A classe Action
A classe Action é o coração do Framework. Ela é destinada para efetuar uma
operação de negócio. Operações relacionadas podem ser agrupadas na classe
DispatchAction, subclasse de Action. A regra de negócio na classe Action é acionada
através do método execute(), enquanto na classe DispatchAction é possível configurar
o nome do método a ser chamado para cada operação.
Os métodos de operações retornam um objeto do tipo ActionForward, que encapsula a
próxima visão a ser mostrada.

O arquivo de configuração do Strutus
O arquivo de configuração do Struts é um XML, definido por um DTD específico
para cada versão. Entre as principais seções do arquivo estão a de FormBeans, de
Global Forwards e Action Mappings.
A seção de Form Beans contém entradas para os ActionForms. Cada FormBean é
identificado por um nome lógico único e deve se referir a uma subclasse de
ActionForm.
A seção de Action Mappings contém as URLs para as classes Action. Nelas são
associados FormBeans as Actions. Nessa seção podem ser definidos forwards que
podem ser acessados dentro de uma action específica.
Na seção Global Forward podem ser configurados forwards para serem usados em
qualquer lugar da aplicação.

Tratamento de Exceções
O tratamento de erros é crucial numa aplicação. O Struts prevê um controle de erros
declarativo. A declaração dos erros e suas páginas correspondentes é feita através de
arquivos de configuração. Na programação ao tratar os erros dizemos de qual tipo eles
são e o framework se encarrega de levá-lo a página correta.

Validação
O Struts possui a capacidade de validar as entradas do usuário. Caso qualquer entrada
seja inválida a pagina de entrada é exibida novamente com a mensagem de erro para o
usuário.
A validação pode ficar tanto no lado do cliente quanto do lado do servidor.
Recomenda-se que a validação sempre seja feita do lado do servidor, pois a do lado
do cliente é facilmente contornada. Em alguns casos vale a pena ter a validação nos
dois pontos, para evitar tráfego na rede e garantir a integridade dos dados.
No Struts a validação pode ser configurada em XML, deixando assim um único ponto
de manutenção. As mensagens de erro podem ser definidas para cada aplicação em
arquivo de configuração.
Conclusão
Com o aumento da complexidade dos sistemas WEB o uso de um Framework para
acelerar o desenvolvimento é de grande importância,
Para o uso do Struts é necessário além de conhecimento das classes do Framework
uma boa noção da arquitetura J2EE e do uso de JSPs e Servlets.
Download