Artigo Webmobile 8- Java Server Faces e MVC

Este artigo apresenta como implementar uma aplicação web utilizando os conceitos de MVC.

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

Clique aqui para ler esse artigo em PDF.

Java Server Faces e MVC

Implementando o modelo MVC com JSF (e um comparativo com .NET)

Atualmente, o desenvolvimento de soluções web é cada vez mais comum e, em muitos casos, indispensável. Com isso, tem se observado o surgimento de inúmeros mecanismos que visam facilitar este tipo de desenvolvimento (chamados de framework). Dentre os mais populares, temos o framework JSF (Java Server Faces) e o framework .NET (Microsoft).

Estes possuem uma característica marcante: são fortemente baseados no modelo MVC (Model View Controller). Desta forma, tornou-se imprescindível ao desenvolvedor, qualquer que seja a sua linguagem de preferência, conhecer mais esta sigla e saber utilizar suas vantagens.

Outra característica desses frameworks é que a maioria não se restringe somente ao desenvolvimento de páginas web. O framework JSF, por exemplo, pode ser utilizado para o desenvolvimento de programas tradicionais (software desktop) ou então para o desenvolvimento de aplicativos web para serem acessados principalmente por dispositivos móveis, como palms e celulares.

Este artigo apresenta como implementar uma aplicação web utilizando os conceitos de MVC. Essa aplicação consiste de uma pequena página que interage com o usuário implementada através do framework JSF. Feito isto, vamos também mostrar como se implementa o mesmo aplicativo através do .NET Framework, com a linguagem C#. No final do artigo realizamos uma comparação entre o JSF e o framework .NET. Esta comparação visa mostrar a equivalência das duas tecnologias (ambas podem dar suporte ao modelo MVC), apesar de utilizarem mecanismos de desenvolvimento distintos (arquivos de configuração, organização dos arquivos e classes compiladas).

O modelo MVC

O modelo MVC é uma forma de organizar a arquitetura da aplicação a ser desenvolvida criando três camadas distintas: Modelo, Visão e Controlador. Essas camadas são independentes uma das outras e são compostas por classes distintas para manipular cada parte do software: um conjunto de classes para trabalhar com os dados, outro para interagir com a interface gráfica e outro conjunto com os elementos de controle.

Essa solução arquitetural é bem comum no desenvolvimento de software. Ela é utilizada, por exemplo, nos componentes da API Java/Swing.

Resumindo, podemos atribuir as seguintes responsabilidades para cada componente do modelo MVC:

·Modelo: manipular os dados da aplicação, sejam eles dados persistidos ou os dados informados pelo usuário;

·Visão: implementar a aparência da interface gráfica da aplicação;

·Controlador: implementar as regras de negócio. Ele é composto por componentes que utilizam os dados do modelo como dados de entrada para a lógica da aplicação.

 

A Figura 1 permite ilustrar essas responsabilidades.

Ao fazer uma relação com uma aplicação web, temos os seguintes mapeamentos (Nota 1):

·Modelo: manipula dados do banco de dados e dados digitados pelo usuário em formulários;

·Visão: implementada através de tags HTML;

·Controlador: implementado através de componentes ou scripts que rodam no servidor (exemplo: ASP, JSP, PHP).

 

Figura 1. As três camadas do MVC. O Controlador atualiza os dados do Modelo para que a Visão possa atualizar a interface visível ao usuário

 

Nota 1. Separação em 3 camadas

É interessante salientar que seguir este modelo implica em jamais utilizarmos código de programação (java, asp, php etc.) ou em fazermos acessos a bancos de dados em meio às tags HTML. Em um software desktop, implica em jamais colocarmos a lógica da aplicação diretamente em um manipulador de evento como o manipulador do evento click de um botão gráfico.

Utilizando Java e JSF na implementação de uma aplicação MVC

Para exemplificar uma aplicação utilizando os conceitos de MVC, implementaremos uma funcionalidade web utilizando Java e JSF. Para testar essa aplicação, o container web Tomcat 5.5 foi utilizado.

O JSF é um conjunto de ferramentas criadas com o intuito de facilitar o desenvolvimento de aplicações Java/JSP. Ele é formado por um conjunto de tags usadas na criação de páginas JSP que oferecem ao desenvolvedor diversas funcionalidades como a obtenção de forma automática dos dados digitados pelo usuário nos formulários da aplicação."

[...] continue lendo...

Artigos relacionados