JavaServer Faces

857 views

Published on

Palestra apresentada no seminário One Day Java.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
857
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

JavaServer Faces

  1. 1. JAVASERVER FACES write once, renders anywhere Armênio Cardoso Consultor, Arquiteto de Sistemas e Professor
  2. 2. Perfil de Uma Aplicação Web Requisição Browser Servidor Web
  3. 3. Perfil de Uma Aplicação Web Servidor Web Páginas Estáticas Páginas Dinâmicas Banco de Dados
  4. 4. Perfil de Uma Aplicação Web <ul><li>Páginas Estáticas: </li></ul><ul><ul><li>São compostas por HTML, imagens, sons, applets, flash etc. </li></ul></ul><ul><ul><li>O servidor web recebe uma requisição e envia o conteúdo do arquivo .html exatamente como foi gravado em disco. </li></ul></ul><ul><ul><li>O conteúdo HTML é renderizado no browser. Os componentes especiais podem requerer programas adicionais. </li></ul></ul>
  5. 5. Perfil de Uma Aplicação Web <ul><li>Páginas Dinâmicas: </li></ul><ul><ul><li>É um conteúdo “gerado” por um programa que reside no servidor web. </li></ul></ul><ul><ul><li>Esse programa pode ser autônomo .EXE ou .COM ou pode precisar de um interpretador ou ambiente de execução. </li></ul></ul><ul><ul><li>O ambiente de execução é chamado de container . </li></ul></ul>
  6. 6. Perfil de Uma Aplicação Web <ul><ul><li>JavaServer Pages </li></ul></ul><ul><ul><ul><li>Páginas que misturam HTML e Java. </li></ul></ul></ul><ul><ul><ul><li>Transformam-se em Servlets. </li></ul></ul></ul><ul><ul><ul><li>Estão mais “próximas” do designer. </li></ul></ul></ul><ul><ul><li>Servlets </li></ul></ul><ul><ul><ul><li>Código puramente Java que interage com o browser enviando tags HTML que serão renderizadas . </li></ul></ul></ul><ul><ul><ul><li>Estão mais “próximos” do programador. </li></ul></ul></ul>
  7. 7. Exemplo de Configuração <ul><li>Servidor HTML - Apache </li></ul><ul><ul><li>Serve páginas estáticas </li></ul></ul><ul><ul><li>http://www.apache.org </li></ul></ul><ul><li>Container JSP/Servlet - Tomcat </li></ul><ul><ul><li>Serve páginas dinâmicas </li></ul></ul><ul><ul><li>http://jakarta.apache.org/tomcat </li></ul></ul>Servidor Web Servidor HTML Container JSP
  8. 8. Outros Containers JSP/Servlet <ul><li>Bluestone http://www.bluestone.com </li></ul><ul><li>Orbix E2A http://www.iona.com </li></ul><ul><li>Jetty http://www.mortbay.com </li></ul><ul><li>JRun http://www.allaire.com </li></ul><ul><li>Resin http://www.caucho.com </li></ul><ul><li>SilverStream http://www.silverstream.com </li></ul>
  9. 9. Model-View-Controler <ul><li>Design Pattern que descreve, em uma aplicação, a separação dos módulos </li></ul><ul><ul><li>Estrutura de dados e lógica da aplicação ( model ) </li></ul></ul><ul><ul><li>Visualização dos dados ( view ) </li></ul></ul><ul><ul><li>Gerenciamento de eventos e controle ( controler ) </li></ul></ul>
  10. 10. Model-View-Controler <ul><li>Esse padrão visa dois propósitos principais: </li></ul><ul><ul><li>Permitir que aplicações web tenham a camada de apresentação disponível em diversas mídias: </li></ul></ul><ul><ul><ul><li>Browser </li></ul></ul></ul><ul><ul><ul><li>WAP - Celular </li></ul></ul></ul><ul><ul><ul><li>Personal Digital Assistant </li></ul></ul></ul><ul><ul><ul><li>Dispositivos especiais para deficientes físicos </li></ul></ul></ul><ul><ul><li>Isolar as camadas da aplicação de forma a tornar a manutenção mais simples </li></ul></ul><ul><ul><ul><li>Designers trabalham o visual do site </li></ul></ul></ul><ul><ul><ul><li>Programadores desenvolvem os serviços </li></ul></ul></ul>
  11. 11. MVC 1 Banco de Dados JSP (view) JavaBeans (model) Servidor Web Browser Requisição Resposta
  12. 12. MVC 2 Banco de Dados Servlet (controler) JavaBeans (model) JSP (view) Servidor Web Browser Requisição Resposta
  13. 13. JavaServer Faces <ul><li>JavaServer Faces é uma nova tecnologia que simplifica a construção de interfaces como o usuário em aplicações que usam JavaServer Pages . </li></ul>
  14. 14. JavaServer Faces <ul><li>Permite construir a interface com o usuário a partir do servidor web: </li></ul><ul><ul><li>Uma tela de entrada de dados pode ser construída a partir de componentes reutilizáveis. </li></ul></ul><ul><ul><li>Esses componentes podem estar conectados a uma fonte de dados. </li></ul></ul><ul><ul><li>O tratamento de eventos gerados no browser podem ser direcionados para classes que residem no container JSP. </li></ul></ul>
  15. 15. Como Funciona? meuform.jsp minha interface Servidor Web Browser Requisição HTML
  16. 16. Write Once, Renders Anywhere <ul><li>As classes de Interface com o Usuário encapsulam a funcionalidade do componente e não se preocupam com a apresentação do mesmo. </li></ul><ul><li>Combinando a funcionalidade de um componente de interface com renderizadores personalizados, o desenvolvedor pode construir aplicações genéricas que podem ser apresentadas em dispositivos diversos, sem diferenciação de código-fonte. </li></ul>
  17. 17. Ciclo de Vida JSF JSF Page Reconstrução da Árvore de Componentes Coleta de Valores da Requisição Tratamento de Eventos Validação de Processo Atualização do Modelo de Dados Chamada da Aplicação Renderização da Resposta As linhas tracejadas indicam que houve erro
  18. 18. Exemplos Classes “Model” <<entity>> Aluno -nome : String -endereço : String +setNomeAluno(String) +getNomeAluno() String <<entity>> Turma -nome : String +setNomeTurma(String) +getNomeTurma() String
  19. 19. Exemplo Acessando as Classes “Model” <ul><li>< jsp:useBean id=“Aluno” class=“lncc.Aluno” scope=“session” /> </li></ul><ul><li>< jsp:useBean id=“Turma” class=“lncc.Turma” scope=“session” /> </li></ul>
  20. 20. Exemplo Associando o “Model” com a GUI <ul><li>< jsp:useBean id=“ Aluno ” class=“lncc.Aluno” scope=“session” /> </li></ul><ul><li>... </li></ul><ul><li>< faces:textentry_input id=“nomeAluno” modelReference=“${ Aluno .nome}” /> </li></ul>
  21. 21. Exemplo Associando Validações aos Campos <ul><li>< jsp:useBean id=“Cliente” class=“lncc.Cliente” scope=“session” /> </li></ul><ul><li>... </li></ul><ul><li>< faces:textentry_input id=“CEP” modelReference=“${Cliente.CEP} size=“5”> </li></ul><ul><li>< faces:validator className=“LongRangeValidator” /> </li></ul><ul><li>< faces:attribute name=“LongRangeValidator.MINIMUM” value=“20000” /> </li></ul><ul><li>< faces:attribute name=“LongRangeValidator.MAXIMUM” value=“99999” /> </li></ul><ul><li></ faces:textentry_input > </li></ul>
  22. 22. JavaServer Faces <ul><li>JSF está sendo desenvolvido através do Java Community Process, sob o código JSR-127. </li></ul><ul><li>http://jcp.org/jsr/detail/127.jsp </li></ul><ul><li>JavaServer Faces estabelece um padrão a ser seguido para a construção de Interfaces com o Usuário usando código JSP. </li></ul>

×