DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo. Este artigo compreende uma revisão bibliográfica da tecnologia JavaServer Faces, abordando seus conceitos e importância no decorrer do desenvolvimento de um produto computacional de qualidade. O JavaServer Faces vem sendo muito utilizado no desenvolvimento de softwares por garantir segurança para a aplicação e a eficiência no desenvolvimento do software. Uma das maneiras de comprovar essa eficiência observada na pesquisa, é através do desenvolvimento de um sistema utilizando o JSF, verificando assim, na prática, seus benefícios reais. 1. Introdução As tecnologias utilizadas no desenvolvimento de aplicações WEB vem mudando e se atualizando constantemente. Inicialmente os sites possuíam apenas conteúdos estáticos, depois passaram a oferecer páginas com conteúdos dinâmicos e personalizados. Devido a essa maior complexidade surgiu os frameworks, que de acordo com [Muller, 2008] nada mais são do que uma abstração que une códigos comuns, entre vários projetos de software, provendo uma funcionalidade genérica, o que facilita muito o trabalho do desenvolvedor, tendo em vista os erros que cometeria no desenvolvimento e as dificuldades que passaria, a framework já corrigiu, reduzindo o tempo de desenvolvimento, aumentando a produtividade do software. Segundo [Bueno 2013] JavaServer Faces, nada mais é do que uma framework onde é efetuada a elaboração de interfaces do usuário para sistemas web, colocando componentes em um formulário e ligando-os a objetos Java, de uma maneira que ele faz a separação entre a lógica e regras de negócio, navegação e conexões com serviços externos, seguindo a estrutura do modelo MVC. 2. Metodologia Para o desenvolvimento do trabalho foi realizada uma vasta revisão bibliográfica sobre o tema em livros e sites, a fim de chegar às informações sobre conceitos e importância da utilização da ferramenta JSF, no qual a comprovação dos benefícios apontados por ela foi visualizada através do desenvolvimento de um produto computacional no qual foi utilizado o JSF.
3. Desenvolvimento 3.1. JavaServer Faces O JSF (JavaServer Faces) é a tecnologia padrão do J2EE para criar aplicações Web. Ele herda das tecnologias (JSP) e Servlets. [GOMES, 2008] De acordo com [Bueno, 2013], o JSF possui alguns componentes simples como o input e botões e também sofisticados como o de tabela de dados. O JSF foi projetado para ser flexível não se limitando a nenhuma linguagem de remarcação em particular, nem a protocolos ou tipo de clientes. Ele também permite a criação de componentes próprios a partir de classes, conforme mencionado anteriormente. [PITANGA, 2004] Segundo o site Caelum, o JSF é uma tecnologia que nos permite criar aplicações Java para Web utilizando componentes visuais pré-prontos, de forma que o desenvolvedor não se preocupe com Java script e HTML. Basta adicionar os componentes (calendários, tabelas, formulários) que serão renderizados e exibidos em formato HTML. JSF é uma tecnologia que incorpora características de um framework MVC para WEB e de um modelo de interfaces gráficas baseado em eventos. [PITANGA, 2004] Por basear-se no padrão de projeto MVC, uma das melhores e maiores vantagens do JSF, é a nitidez entre a visualização e regras de negócio (modelo). 3.2 MVC Segundo Gonsalves o modelo MVC é definido da seguinte maneira: O MVC é um conceito (paradigma) de engenharia de Software para desenvolvimento e design, que propõe a separação de uma aplicação em três partes distintas. O Model está relacionado ao trabalho atual da aplicação que administra, a view é interligada a exibir os dados ou informações da aplicação, o controller está designado em controlar as duas camadas anteriores exibindo a interface correta ou executando algum trabalho complementar para a aplicação. [GONSALVES, 2007] A figura 1 vem exemplificar o modelo MVC que é distribuído da seguinte forma: O model é responsável por representar os objetos de negócio, manter o estado da aplicação e fornecer ao controlador o acesso aos dados. É no model que faz toda a parte de inteligente do sistema onde se faz validações, processamento cálculos, entre outros. A view representa a parte que interage com o usuário, o que ele tem acesso, sendo responsável por definir a forma que os dados serão exibidos e encaminhar as ações dos mesmos para o controlador, nela só colocamos o que está relacionado à visão dos dados e não a lógica da aplicação. O controller é responsável pelo funcionamento do software, onde recebe as requisições do usuário, montando os objetos correspondentes e fazendo assim a
comunicação com o modelo, onde fica a parte lógica do software como a regra de negócio retornando assim o resultado para o usuário. Figura 1 - Fluxo Modelo de Desenvolvimento MVC. Fonte: http://cscie153.dce.harvard.edu/lecture_notes/2012/20121112/slide10.html 3.2 Características JSF Segundo o site de Caelum, que fornece apostilas sobre linguagens de desenvolvimento, o JSF traz algumas características importantes como: Guarda o estado dos componentes O estado dos componentes é sempre guardado automaticamente, criando a característica Stateful. Isso nos permite, por exemplo, criar formulários de várias páginas e navegar nos vários passos dele com o estado das telas sendo mantidos. Separa as camadas Outra característica muito importante na arquitetura do JSF é a separação que faz entre as camadas de apresentação e de aplicação, já que é baseado no modelo MVC. Especificação: várias implementação O JSF ainda tem a vantagem de ser uma especificação do Java EE, isto é, todo servidor de aplicações Java tem que vir com uma implementação dela e há diversas outras disponíveis.
3.3 Vantagens JSF De acordo com [PITANGA, 2004] JavaServer Faces, oferece ganhos no desenvolvimento de aplicações WEB por diversos motivos: Permite que o desenvolvedor crie UIs através de um conjunto de componentes UIs pré-definidos; Fornece um conjunto de tags JSP para acessar os componentes; Reusa componentes da página; Associa os eventos do lado cliente com os manipuladores dos eventos do lado servidor (os componentes de entrada possuem um valor local representando o estado no lado servidor); Fornece separação de funções que envolvem a construção de aplicações WEB. Já o site NetBeans IDE, informa que o JSF oferece facilidade de uso das seguintes formas: Facilita a construção de uma IU usando um conjunto de componentes reutilizáveis; Simplifica a migração de dados da aplicação para a IU e provenientes dela Ajuda a gerenciar o estado da IU nas solicitações do servidor Oferece um modelo simples para conectar os eventos gerados pelo cliente ao código da aplicação do servidor Permite personalizar os componentes de UI para que sejam facilmente construídos e reutilizados 4. Considerações finais De acordo com o produto computacional que foi desenvolvido, se fez possível a comprovação do que foi encontrado na revisão bibliográfica, como as diversas vantagens encontradas no uso do JSF. O uso do JavaServer Faces no momento do desenvolvimento do produto computacional, trouxe a verificação de que sua utilização agregou inúmeros valores no desenvolvimento da aplicação tornando o código mais limpo, sendo utilizado assim, um número muito menor de linhas dentro do desenvolvimento, deixando o código fonte com uma fácil compreensão e extremamente mais organizado. A utilização do JSF no desenvolvimento também trouxe a vantagem de separar a lógica das regras de negócio o que possibilitou focar mais no desenvolvimento do software. Com a aplicação do framework JSF no desenvolvimento da aplicação foi alcançado o objetivo e superadas as expectativas previstas em todos os processos.
Referencias PITANGA, T. JavaServer Faces: A mais nova tecnologia Java para desenvolvimento WEB. Disponivel em: <http://www.guj.com.br/content/articles/jsf/jsf.pdf> acesso em: 30/07/2015 Introdução ao JSF e Primefaces. Disponivel em: <http://www.caelum.com.br/apostila-java-testes-jsf-web-services-designpatterns/introducao-ao-jsf-e-primefaces/> Acesso em: 07/08/2015 GONSALVES, Edson.. Rio de Janeiro. Ciência Moderna Ltda, 2007. Introdução ao JavaServer Faces. Disponivel em: <https://netbeans.org/kb/docs/web/jsf20-intro_pt_br.html> Acesso em: 07/08/2015 Muller, N. Framework, o que é e para que serve?. 2008 Disponivel em: http://www.oficinadanet.com.br/artigo/1294/framework_o_que_e_e_para_que_serve> Aceso em: 10/08/2015 BUENO, Kassia. J. O que é Java Server Faces? Disponivel em: http://fabrica.ms.senac.br/2013/06/o-que-e-jsf-java-server-faces/> Acesso em: 10/08/2015 GOMES, Yuri. M. P. Java na Web com JSF, Sping, Hibernate e Netbeans 6. Rio de Janeiro: Editora Ciencia Moderna Ltda.2008. MVC onde e como. Disponivel em: http://sergiotaborda.javabuilding.com/2011/05/mvc-onde-e-como/ Acesso em: 10/08/2015