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

JavaServer Faces

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