Вы находитесь на странице: 1из 27

JavaServer Faces JSF2

04. Ciclo de vida JSF e autenticao

Esp. Mrcio Palheta


gtalk: marcio.palheta@gmail.com
1

Agenda
rvore de componentes - AC Ciclo de vida de uma requisio JSF Criao da tela de login Navegao condicional; Aplicando layout tela de login; Redirecionamento de pginas
2

rvore de componentes - AC
Estrutura que representa no servidor todos os componentes visuais utilizados em arquivos xhtml; Armazenamento da rvore:
No servidor: Consumo de memria na sesso do usurio, porm, escalvel; No cliente: envida a cada requisio, em campos do tipo hidden, consumindo banda
3

Armazenamento da rvore de componentes no JSF2


O armazenamento foi melhorado, passando a consumir menos recursos; Em verses anteriores, todos os componentes eram armazenados; Na verso 2, so armazenados apenas os estados que foram alterados, consumindo menos recursos;
4

Alterao da forma de armazenamento


Padro: sesso do usurio Para armazenamento na mquina cliente, precisamos incluir um parmetro no arquivo web.xml:

Ciclo de vida de uma requisio JSF

1 fase: Restore view


Restaurao da view; O JSF recebe uma requisio; Cria a AC na primeira requisio; O estado da AC recuperado de acordo com o local de armazenamento; Na sesso, teramos algo como:
AC arvore = (AC)session.getAttribute(arvore).
7

2 Fase: Apply Request Values


Aplicar os valores da requisio; JSF recupera os valores que vieram com a requisio, e os aplica em seus respectivos componentes; Porem, ainda so representados em Strings. Ex.:
String parNome = request.getParameter(produto.nome)
8

3 Fase: Process validation


Converso e processamento de validaes; O JSF converte os valor recebido para o tipo adequado, esperado pelo componente; Aps a converso, o valor estar com o tipo correto e estar pronto para ser validado;
9

4 Fase: Update model values


Atualizar os valores do modelo; Os atributos do ManagedBean so povoados com os valores que chegaram na requisio; O JSF usa o binding feito no cdigo das telas, para mapear o valores da request a seus respectivos atributos;
10

4 Fase: Update model values


O Managed Bean cria os objetos e preenche os valores de ser atributos. Ex:

11

5 Fase: Invoke applications


Invocar lgica de negcio; Com o ManagedBean populado, o JSF pode executar o mtodo determinado pela requisio; A navegao para outras pginas, tambm feita nesta fase; Ex: produtoBean.salvar()
12

6 Render response
Renderizar a resposta para o usurio; O JSF guarda a Arvore de Componentes atual; Verifica as diferenas entre os estados iniciais e atuais de cada componente; O JSF armazena as diferenas:
arvore = requisicao.gerarArvore(); session.setAttribute(arvore, arvore);
13

Autenticao de usurios
Controle de acesso de usurios; Precisamos de uma entidade Usuario; Pgina para autenticao: login.xhtml; Uso da tag h:inputSecret; Classe DAO para consulta de usurios; Envio da requisio para o Managed Bean;
14

Usuario.java
package br.curso.jsf2.model.bean

15

Pgina login.xhtml

16

br.curso.jsf2.model.dao. UsuarioDAO

17

Integrao de telas
O atributo action de h:commandButton permite que seja informada a prxima pgina:
<h:commandButton value=Login action=produto />

JSF procura um arquivo .xhtml com o nome indicado em action; O action conhecido como outcome;
18

Navegao condicional
No caso do login, precisamos verificar se os dados de autenticao so vlidos Vamos usar o retorno do mtodo efetuarLogin para gerar o outcome;

O complemento ?faces-rdirect=true
19

br.curso.jsf2.control.mb. LoginBean.java

20

Exerccios:
Inicie ou reinicie o Tomcat; Acesse a pgina de login:

No MySQL, cadastre novo usurio e teste a aplicao


21

Dados do usurio logado


Adicione no cabealho de produto.xhtml, o login do usurio autenticado:

22

Atividades
Faa login e verifique que o login do usurio aparece no canto direito da tela Adicione ou altere um produto; O que aconteceu com o login, que deveria estar no canto direito? E agora?

23

Mantendo o estado do usurio


Precisamos saber qual usurio est autenticado no sistema; Managed Bean com escopo de request, perde seus dados aps a requisio; Vamos usar o SessionScoped:

24

Exerccios
Mude o escopo da classe LoginBean; Faa novo login na aplicao; Cadastre e altere produtos; Verifique se o login do usurio continua em cada nova requisio; Aplique o layout pgina de login: CSS, cabealho e rodap;
25

Referncias
http://www.caelum.com.br; http://java.sun.com/ http://java.sun.com/j2ee/1.6/docs/tutorial/d oc/index.html http://java.sun.com/products/jndi/docs.html http://java.sun.com/blueprints/corej2eepatte rns/Patterns/index.html

26

JavaServer Faces JSF2


04. Ciclo de vida JSF e autenticao

Esp. Mrcio Palheta


gtalk: marcio.palheta@gmail.com
27

Вам также может понравиться