DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí– PR– Brasil [email protected], [email protected] 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 <http://www.caelum.com.br/apostila-java-testes-jsf-web-services-designpatterns/introducao-ao-jsf-e-primefaces/> Acesso em: 07/08/2015 GONSALVES, Edson. em: . 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? http://fabrica.ms.senac.br/2013/06/o-que-e-jsf-java-server-faces/> 10/08/2015 Disponivel Acesso em: em: 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 http://sergiotaborda.javabuilding.com/2011/05/mvc-onde-e-como/ Acesso 10/08/2015 em: em: