Você está na página 1de 28

Unidade I - JSF com PrimeFaces

1 Desenvolvimento de Aplicaes Web


A internet tem sido a grande plataforma para muitos projetos de software da
atualidade e independente de possuir suas interfaces desktop, mobile ou web
(rodando no browser), faz uso do modelo cliente-servidor. Um mdulo servidor
geralmente responsvel pelas regras de negcio, persistncia dos dados ou
processamentos

mais

custosos,

como,

por

exemplo,

clculos

matemticos

complexos. J o mdulo cliente geralmente contm apenas a camada de


apresentao da aplicao, a qual possui a interface com o usurio. A comunicao
entre cliente e servidor, por sua vez, normalmente realizada atravs de uma rede
utilizando-se de algum protocolo de comunicao, como o HTTP COUTINHO (2013).

O acesso s pginas (telas) desses sistemas realizado utilizando um


modelo chamado de request-response, ou seja, o cliente solicita que
alguma ao seja realizada (request) e o servidor a realiza e
responde para o cliente (response).

Na plataforma Java, esse modelo foi implementado inicialmente


atravs da API de Servlets e JSP (JavaServer Pages) representado na
Figura 02. Um Servlet estende a funcionalidade de um servidor web
para servir pginas dinmicas aos navegadores, utilizando o protocolo
HTTP. Um servidor que implementa a tecnologia Java servlets e
JavaServer

Pages

converte

uma

requisio

em

um

objeto

HTTPServletRequest que entregue a um componente da aplicao


web que seja capaz de interpretar e processar os dados da requisio
de acordo com as regras de negcio da aplicao. Esse objeto pode
ainda interagir com JavaBeans no servidor ou acessar o banco de
dados a fim de gerar contedo dinmico. Com os dados resultantes
do processamento no servidor, o componente responsvel por
processar o objeto gerado a partir da requisio pode ento gerar um
objeto HTTPServletResponse que convertido em uma resposta HTTP
pelo servidor e enviado para o cliente.

Fonte: Oracle (2013)


Existem vrios Servlet Container no mercado, os mais importantes
so: Tomcat, Glassfish, JBoss, WebSphere e Jetty.
Desde o lanamento de Servlets e JSPs, outras tecnologias Java e
frameworks

foram

surgindo

com

objetivo

de

melhorar

produtividade e recursos no desenvolvimento de aplicaes web.


Atualmente

Java

requisitada

na

Server
maioria

desenvolvedores Java.

Faces
das

tecnologia

oportunidades

de

do

momento,

emprego

para

2 JavaServer Faces
JSF uma tecnologia que incorpora caractersticas do padro MVC,
que separa a aplicao em trs camadas: modelo, visualizao e
controle exemplificado na Figura 03.
O modelo responsvel por representar os objetos de negcio,
manter o estado da aplicao e fornecer ao controlador o acesso aos
dados. A visualizao representa a interface com o usurio, sendo
responsvel por definir a forma como os dados sero apresentados e
encaminhar as aes dos usurios para o controlador. J a camada de
controle responsvel por fazer a ligao entre o modelo e a
visualizao, alm de interpretar as aes do usurio e as traduzir
para uma operao sobre o modelo, onde so realizadas mudanas e,
ento, gerar uma visualizao apropriada (PITANGA, 2013).

Em JSF, o controle feito atravs de um servlet chamado Faces


Servlet, por arquivos XML de configurao e por vrios manipuladores
de aes e observadores de eventos. O Faces Servlet recebe as
requisies dos usurios na web, redireciona para o modelo e envia
uma resposta. Os arquivos de configurao possuem informaes
sobre

mapeamentos

de

aes

regras

de

navegao.

Os

manipuladores de eventos so responsveis por receber os dados da


camada de visualizao, acessar o modelo e devolver o resultado
para o usurio atravs do Faces Servlet. A figura 04 representa esse
processo.

2.1 Beans gerenciados


Os exemplos 01 e 02 utilizam os beans gerenciados do JSF para
processar dados do usurio e ret-los entre as solicitaes.

Exemplo 01:
A a classe Objeto possui duas anotaes:
@ManageBean: Essa anotao indica que essa classe um bean
gerenciado;
@ApplicationScopped: Essa anotao indica o escopo do seu objeto
em JSF.

Exemplo 02:

O escopo nada mais do que o tempo de vida e morte do seu objeto,


ou seja, quando ele ser criado e destrudo. Dentre esses escopos
esto os apresentados na tabela 01:

PARA

SABER

Exemplo

de

MAIS
Aplicao

JSF

http://www.inf.ufsc.br/~frank/INE5612/Lab3-CartaoRU/

Pgina

2.2 Usando o Java Server Faces


A especificao do JSF fornece um conjunto de componentes visuais
bsicos em sua implementao de referncia.
Inclui duas bibliotecas de componentes bsicos:

Biblioteca HTML (sigla h): possui componentes que representam


diversos
elementos
HTML

Namespace: xmlns:h="http://java.sun.com/jsf/html

Biblioteca Core (sigla f): responsvel por tarefas comuns no


desenvolvimento de sistemas, como internacionalizao, validao e
converso
de
dados
de
entrada.
Namespace: xmlns:f="http://java.sun.com/jsf/core

O cdigo abaixo exemplifica o Al Mundo em uma aplicao JSF (


importante saber se est tudo ok antes de acrescentar outros
namespace o do PrimeFaces).

Obs: no projeto criado nas webaulas ser utilizado o Eclipe Juno e o


Tomcat (dessa forma ser necessrio a lib do JSF).
No site da Exadel contm uma guia de referncia do JSF. Eles criaram
uma tabela exemplificando os cdigos e o resultado de alguns
componentes.

Existem vrias bibliotecas de componentes comerciais ou gratuitas


disponveis, podendo citar:
Tabela 02 Bibliotecas de componentes

Bibliotecas de

Disponvel em

componentes

PrimeFaces

http://primefaces.org/ (usada no projeto)

MyFaces

http://myfaces.apache.org/trinidad/index.html

ICEfaces

http://www.icesoft.org/java/home.jsf

RichFaces

http://www.jboss.org/richfaces

Oracle ADF

http://www.oracle.com/technetwork/developertools/adf/overview/index.html

OpenFaces

http://openfaces.org/

Fonte: Do autor (2013)


2.3

Converso

Validao

O usurio ao preencher um formulrio em um aplicativo web, est


enviando dados ao servidor. Estes dados no possuem uma tipagem,
pois so tratados apenas como texto puro, conforme especificao do
protocolo HTTP. Devido a ausncia de tipagem, os dados precisam ser
convertidos pelo aplicativo para que possam ser tratados de forma
especfica.
2.3.1 Converso
Converso Padro Implcita

Para os tipos fundamentais da linguagem Java o JSF se encarrega de


realizar a converso de maneira implcita, ou seja, no necessrio
que o desenvolver faa algo, pois a converso vai acontecer
automaticamente. Os tipos fundamentais do Java so representados
na Tabela 03:

Converso Padro Explcita


Em alguns casos, os conversores padres aplicados implicitamente
nos tipos fundamentais do Java no so suficientes.

2.3.2 Validao
Na maioria dos casos apenas uma converso no o suficiente para
verificar se uma informao digitada pelo usurio valida. Por
exemplo, dizer que um campo requerido ou que no esto no
intervalo definido para o campo. Segue alguns exemplos:

A validao mais comum de todas a de verificar se um determinado


campo no deixou de ser preenchido. Podemos aplicar essa validao
utilizando o atributo required (campo obrigatrio) dos inputs.

Bean Validation
Uma nova abordagem para definir validaes adicionadas no JSF2 foi
o Bean Validation. A ideia declarar as regras de validao nas
classes de modelo ao invs de inseri-las nas telas. A grande
vantagem das validaes definidas nas classes de modelo que elas
podem ser utilizadas em diversas partes da aplicao.

Tambm podemos adicionar uma mensagem de erro atravs da


validao:
@NotNull(message="O nome no pode ser nulo")
PARA
Aula

SABER
7:

Converso

MAIS
e

Validao

http://www.codigosfontes.com.br/jsf-conversao-e-validacao/
Introduo

para

JSF

http://otaviosantana.blogspot.com.br/2012/07/introducao-para-jsf-20.html

2.0

3 - Desenvolvimento web com PrimeFaces


O

PrimeFaces

uma

das

varias

bibliotecas

de

componentes

disponveis para elaborao de interfaces de sistemas web.


3.1 Arquitetura do primefaces
O PrimeFaces permite que sejam inseridos em seu conjunto outros
componentes atravs de especificaes em Java Server Faces (JSF).
Ele esta organizado em trs mdulos: UI Components, Optimus e
Faces Trace. A Figura 6 representa esses mdulos.

O mdulo UI Components compreende os componentes que contm


as funcionalidades encapsuladas de Ajax, Javascript e grficos
animados. Optimus o mdulo que oferece solues para facilitar o
desenvolvimento com JSF. O FacesTrace encarregado de funes
relacionadas ao desempenho da aplicao.

3.2 Exemplo - template


O exemplo apresentado na figura 07 abaixo utilizado no projeto
(sesso 4):

PARA

SABER

MAIS

Outros

exemplos:

Site

Primefaces

http://www.primefaces.org/showcase/ui/home.jsf
Site:

Caf

sem

Java

http://javasemcafe.blogspot.com.br/2011/06/jsf-20-componentes-primefaces221-parte.html

3.3 Exemplos usando componentes do PrimeFaces


A figura 08 representa a interface do formulrio de clientes que
incorpora o template que ser definido na seo 4.2.

PARA
uaiHerbet

SABER
:

Quando

utilizar

action

MAIS
ou

actionListener

http://uaihebert.com/?p=1596&page=14
O componente p:inputText estende a entrada padro com capacidades
esfola que ir acompanhar o mesmo tema do PrimeFaces.

O prximo componente o p:focus, ele responsvel por setar o foco


em um campo ao abrir a pgina.

Veja no link do p:inputMask as possibilidades de usar a propriedade


mask, por exemplo, pode-se definir que um determinado campo
tenha apenas letras, ou apenas nmeros, ou que o caractere possa
ser nmero ou letra.
O componente p:keyboard, apresenta um teclado virtual ao clicar em
um campo. um teclado virutal que tem vrias possibilidades de uso
(o padro um teclado completo com letras e nmeros).

Obs: na prxima seo apresentado o cdigo completo do cadastro


de clientes.

4 Criando o projeto
Crie o projeto Projeto_02_JSF_PrimeFaces_Hibernate

seguindo os

passos descritos no arquivo Download_PARTE_01.pdf (sesso 1.2) e


coloque as libs do JSF e do PrimeFaces na pasta lib do projeto.
A estrutura abaixo ser criada na webaula 01 (wiew) e na webaula 02

4.1 Criando o template


Exemplo do template apresentado na sesso 3.2 (adaptado).

4.3 Criando o formulrio para cadastrar Clientes


Alguns componentes apresentados na sesso 3.3 so utilizados no
cadastro de clientes apresentado na Figura 11.

Pgina

PARA
Conhecendo

SABER
o

comportamento

MAIS
do

JavaServer

Faces

http://www.edsongoncalves.com.br/tag/glassfish/
5 Temas do PrimeFaces
No site do Primefaces, existe uma rea de galeria de temas com
modelos prontos para serem feito o download, eles so baixados em
formato .jar e tem que ser configurado no xml do seu projeto para
que possa ser alterado. Tambm possvel customizar um tema para
o seu projeto pelo JQuery ThemeRoller (http://jqueryui.com/themeroller/.)
que 100% compatvel com a ferramenta (veja exemplo:temas.pdf).
Nas figuras 13 e 14 foram utilizados temas do PrimeFaces.

Na web aula 02 na sesso quatro (exemplos de projetos) contm


exemplos de projetos que usam temas.

6 Internacionalizao
Um dos recursos que o Framework JavaServer Faces (JSF) oferece,
a internacionalizao da aplicao, possibilitando que a mesma tenha
vrios idiomas.

A figura 16 representa os arquivos na estrutura do projeto

PARA

SABER

Internacionalizao

MAIS
com

JSF

http://jabesfelipe.blogspot.com.br/2010/04/internacionalizacao-com-jsf.html
SF Usando arquivos de propriedades(Resource Bundle) para
internacionalizao

de

aplicativos

http://www.devmedia.com.br/jsf-usando-arquivos-de-propriedades-resourcebundle-para-internacionalizacao-de-aplicativos/6608
6 tema para o frum
TEMA: SEGURANA APLICAES WEB
O protocolo HTTP (veja figura 01)

no oferece segurana para a

comunicao de dados. Com a ampliao da internet e devido


necessidade de trfego de dados seguros, foi implementado HTTPS
para prover vrios servios de segurana para as aplicaes e
usurios das mesmas.
Os principais servios oferecidos so: confidencialidade da informao
entre o servidor e o cliente atravs da criptografia e a autenticao
do servidor para o cliente atravs de certificados digitais.
Outro problema tambm relacionado a aplicaes web so a Injeo
de SQL, Cross site Scripting, entre outros.
Diante disso necessrio que os profissionais estejam sempre bem
preparados e conheam as maneiras corretas de impedir que
vulnerabilidades sejam exploradas.
Fale sobre o funcionamento do SSL e d sua opinio.
PARA
Como

SABER

MAIS

Funciona

SSL

http://publib.boulder.ibm.com/tividd/td/TRM/GC32-132300/pt_BR/HTML/admin231.htm
O

que

http://www.tecmundo.com.br/seguranca/1896-o-que-e-ssl-.htm

SSL?

Como

funciona

criptografia

http://informatica.hsw.uol.com.br/criptografia4.htm

Pgina

Você também pode gostar