Struts: primeiros passos - Conceitos, arquitetura e exemplos

Artigo publicado pela Java Magazine 06.

Esse artigo faz parte da revista Java Magazine edição 06. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse artigo em PDF.

Struts: primeiros passos

Conceitos, arquitetura e exemplos

Conheça o framework líder no desenvolvimento web

No desenvolvimento de aplicações web, a mistura de código Java com HTML e JavaScript pode trazer muitos problemas no desenvolvimento, questão que se agrava quando a aplicação possui design gráfico complexo e funcionalidades avançadas. Torna-se difícil a manutenção do código e a interação entre a equipe de desenvolvimento e a de design gráfico fica comprometida. Como solucionar as divergências, separar melhor o trabalho das equipes e fazê-las trabalhar com produtividade em suas especialidades?

Um passo importante é padronizar a arquitetura das aplicações, usando as melhores práticas do mercado e evitando partir do zero. É nesse ponto que entram os frameworks web, entre os quais o Struts do projeto Apache Jakarta é o mais conhecido e respeitado.

O framework

Com o nome completo Apache Struts Web Application Framework, o Struts é quase um consenso entre os desenvolvedores de aplicações web com Java. Além de ser software livre e bem documentado (tanto na web como em diversos livros), o Struts é flexível, extensível e suportado pelas principais ferramentas de desenvolvimento do mercado (entre elas JBuilder, Eclipse, JDeveloper, NetBeans e IDEA).

O Struts é baseado em uma variação do tradicional padrão de arquitetura MVC (Model-View-Controller) e se integra bem, na camada de apresentação, com outras tecnologias e frameworks web tais como Java Server Pages, Jakarta Velocity e XLST. Para a camada de dados, as opções são igualmente amplas: de JDBC a Enterprise JavaBeans, passando por JDO.

É a arquitetura do Struts que o torna tão extensível e adaptável. Antes de entrarmos nos detalhes sobre o framework, vamos conhecer um pouco sobre as origens e características dos padrões adotados pelo framework.

Arquiteturas e variações

O padrão de arquitetura MVC (em português: Modelo-Visão-Controlador) divide uma aplicação em três partes ou papéis: dados e classes de negócio (o modelo), apresentação (a visão) e controle. Centralizando o controle, o padrão MVC reduz a duplicação de código e simplifica a manutenção e evolução de aplicações web, além de fomentar o reuso dos componentes da visão e do modelo.

O JSP suporta parcialmente o padrão MVC, desde a versão 0.91, com a integração de JavaBeans com páginas JSP, em um padrão que ficou conhecido como Model 1. O Model 1, no entanto, não traz uma separação clara entre os papéis – são apenas dois componentes (JSPs e JavaBeans) para desempenhar os três papéis do MVC. O controle é descentralizado e tanto os desenvolvedores como os designers precisam editar páginas JSP, dificultando o trabalho em equipe e a manutenção. Por apresentar essas deficiências, a arquitetura Model 1 é considerada adequada apenas para aplicações pequenas e praticamente estáticas, sem um fluxo complexo de navegação.

Para projetos de grande porte, manter uma clara separação entre os papéis torna-se muito importante. Isso é atingido com a arquitetura Model 2, que adiciona um elemento: o controlador. Implementado geralmente por um servlet, o controlador tem a responsabilidade de receber solicitações, acessar classes de negócio e coordenar a geração do conteúdo da apresentação (páginas HTML, WML etc.). O pouco código Java que resta na apresentação (nas páginas JSP) pode ser substituído por tags personalizadas, que, para os designers, são mais fáceis de compreender e manter.

Em cena, o Struts

O Struts é uma implementação completa e madura do padrão de arquitetura Model 2. As melhores práticas dos Blueprints da Sun (veja " [...] continue lendo...

Artigos relacionados