SlideShare uma empresa Scribd logo
Programação Web
JavaServer Faces
Dalton Valadares
Plano
● Visão geral sobre desenvolvimento web;
● Fundamentos e características do JSF;
● Principais implementações e bibliotecas de
componentes;
● Ciclo de vida do JSF;
● Exemplos básicos.
Desenvolvimento: Desktop x Web
Desktop:
● Replicação de código
nos clientes;
● Processamento local →
Regras de negócio,
validações, etc.;
● Gerência, manutenção e
depuração mais
complicados.
Web:
● Código centralizado em
servidor;
● Clientes mais leves e
comunicação por HTTP;
● Requisições e
respostas;
● Melhor gerenciamento e
manutenibilidade.
Funcionamento da Web
Cliente
Requisições
Servidor
Respostas
HTTP
Frameworks web baseados em componentes
● Arcabouços de software/Conjuntos de bibliotecas;
● Abstraem protocolo de comunicação;
● Dinamizam operações repetitivas de desenvolvimento;
● Buscam reutilização de código, evitando complexidade;
● Fornecem acesso a dados, segurança, gerência de
sessão, modelagem, etc.;
● Componentes visuais pré-definidos (renderização da
UI);
● Exemplos: Struts, Spring Web MVC, GWT, JSF, etc.
MVC - Model View Controller
Modelo arquitetural/Padrão de projeto: separa regras de
negócio/modelo de dados e visão por meio de um controlador.
Fonte: https://www.youtube.com/watch?v=3Cj2mDx0-Ws#t=745
JavaServer Faces (JSF)
● Framework web MVC
● Definida pela JCP (padrão Java)
● Conjunto de componentes padrão (UI)
● Tags jsp para acesso aos componentes
● Extensível/personalizável
● Comunicação entre componentes e dados do
servidor
● Eventos de componentes chamam funções do
JavaServer Faces (JSF)
● Validação e conversão de dados
● Suporte a Ajax
● Suporte à Internacionalização
● Guarda estado dos componentes (Stateful)
● Servidores de aplicação: Tomcat, Glassfish, JBoss,
etc.
Implementações e Bibliotecas de componentes
Implementações:
● Implementação de
referência: Oracle Mojarra
(http://javaserverfaces.java.
net/)
● Outra implementação:
MyFaces, da Apache (http:
//myfaces.apache.org/)
Bibliotecas:
● RichFaces
● PrimeFaces
● ICEFaces
● OpenFaces
● Trinidad
RichFaces
http://www.jboss.org/richfaces
rich:calendar rich:select rich:inplaceInput
PrimeFaces
http://www.primefaces.org/
p:calendar p:autoComplete p:inputText
ICEFaces
http://www.icefaces.org/
ace:dateTimeEntry ace:comboBox ace:textEntry
Ciclo JSF
Requisição
Restaurar visão
Aplicar valores da requisição
Processar requisições
Atualizar valores do modelo
Chamar aplicação
Renderizar resposta
Resposta
Configuração de ambiente
Fonte: https://www.youtube.com/watch?v=TA-s9z1eHrQ
Configuração de ambiente (cont.)
Configuração do ‘controlador’ do JSF (web.xml):
<servlet>
<servlet-name>FacesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
Eclipse → Configuração ‘automática’
Configuração, ainda...
faces-config.xml (configurações dos ManagedBeans)
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
</faces-config>
Menos usado, atualmente → @annotations
View JSF (xhtml) - Básico
Importar tags JSF → Namespace no .xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<!-- Tags do JSF -->
</html>
Tags JSF - Componentes
Hierarquia de componentes
<html ...>
<h:head>
<!-- Cabeçalho -->
</h:head>
<h:body>
<!-- Corpo da página -->
</h:body>
</html>
Managed Bean
@ManagedBean
public class TimeBean {
public String getTime() {
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
return "Hora atual: " + sdf.format(new Date());
}
}
View ←→ Managed Bean
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>JSF - Primeira Aula</title>
</h:head>
<h:body>
<h:outputText value =”#{timeBean.time}” />
</h:body>
</html>
JSF - Outros componentes básicos
<h:form>
<h:outputLabel for="date" value="Digite a data de hoje:"/>
<h:inputText id="date" value="#{timeBean.date}"/>
<h:commandButton value="Ok" action="#{timeBean.time}"/>
</h:form>
Importante:
<h:outputText value="Hora: #{timeBean.time}" rendered="#{not empty timeBean.time}"/>
Referências
http://docs.oracle.com/javaee/7/tutorial/doc/jsf-develop.htm
https://www.youtube.com/watch?v=TA-s9z1eHrQ
https://netbeans.org/kb/docs/web/jsf20-intro_pt_BR.html
http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/jsf/jsf.htm
http://www.mkyong.com/jsf2/jsf-2-0-hello-world-example/
http://www.caelum.com.br/apostila-java-testes-jsf-web-services-design-
patterns/introducao-ao-jsf-e-primefaces/#7-6-recebendo-informacoes-do-
usuario
Dúvidas?

Mais conteúdo relacionado

Mais procurados

Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server Faces
João Longo
 

Mais procurados (20)

Aula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPR
 
Avaliacao jsf utfpr
Avaliacao jsf utfprAvaliacao jsf utfpr
Avaliacao jsf utfpr
 
Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server Faces
 
Apresentação jsf 1_2
Apresentação jsf 1_2Apresentação jsf 1_2
Apresentação jsf 1_2
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
jQuery e ASP.Net mvc2
jQuery e ASP.Net mvc2jQuery e ASP.Net mvc2
jQuery e ASP.Net mvc2
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
jQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmicajQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmica
 
Java web
Java webJava web
Java web
 
JSF - JavaServer Faces
JSF - JavaServer FacesJSF - JavaServer Faces
JSF - JavaServer Faces
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
Arquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOArquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAO
 
CakePHP workshop ifsul
CakePHP workshop ifsulCakePHP workshop ifsul
CakePHP workshop ifsul
 
Otimização front end
Otimização front endOtimização front end
Otimização front end
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em Desenvolvimento
 
Fundamentos de arquitetura Web
Fundamentos de arquitetura WebFundamentos de arquitetura Web
Fundamentos de arquitetura Web
 
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
 

Destaque

11601快訊新聞五則
11601快訊新聞五則11601快訊新聞五則
11601快訊新聞五則
beelinelmn
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Allyson Barros
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
Rafael Ponte
 

Destaque (15)

Aplicações Web com JSF e JPA
Aplicações Web com JSF e JPAAplicações Web com JSF e JPA
Aplicações Web com JSF e JPA
 
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...
 
Programação modular - Ferramenta para rotular seções de imagens e realizar bu...
Programação modular - Ferramenta para rotular seções de imagens e realizar bu...Programação modular - Ferramenta para rotular seções de imagens e realizar bu...
Programação modular - Ferramenta para rotular seções de imagens e realizar bu...
 
Integração Java EE e VoIP
Integração Java EE e VoIPIntegração Java EE e VoIP
Integração Java EE e VoIP
 
Introdução a jsf
Introdução a jsfIntrodução a jsf
Introdução a jsf
 
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_MeloUtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo
 
11601快訊新聞五則
11601快訊新聞五則11601快訊新聞五則
11601快訊新聞五則
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
 
Introdução ao JavaServer Faces
Introdução ao JavaServer FacesIntrodução ao JavaServer Faces
Introdução ao JavaServer Faces
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
Apostila jsf
Apostila jsfApostila jsf
Apostila jsf
 
Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22
 
Apostila JSF 2.0 - K19
Apostila JSF 2.0 - K19Apostila JSF 2.0 - K19
Apostila JSF 2.0 - K19
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
 
Boas Práticas com JavaServer Faces (Jsf)
Boas Práticas com JavaServer Faces (Jsf)Boas Práticas com JavaServer Faces (Jsf)
Boas Práticas com JavaServer Faces (Jsf)
 

Semelhante a Desenvolvimento Web com JSF

JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
Eduardo Bregaida
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
Paulo Neto
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
Eder Magalhães
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
Elenilson Vieira
 

Semelhante a Desenvolvimento Web com JSF (20)

Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Aula 1 apresentação
Aula 1   apresentaçãoAula 1   apresentação
Aula 1 apresentação
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Faces
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.
 
Jee6
Jee6Jee6
Jee6
 
Jsf
JsfJsf
Jsf
 
Introdução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPIntrodução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSP
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
 
Jsf 2 slideshare
Jsf 2 slideshareJsf 2 slideshare
Jsf 2 slideshare
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 
Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
 
Navegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaNavegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo java
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EE
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
Introdução - Java WEB
Introdução - Java WEBIntrodução - Java WEB
Introdução - Java WEB
 
Conceitos de Java Web
Conceitos de Java WebConceitos de Java Web
Conceitos de Java Web
 

Mais de Dalton Valadares

Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
Dalton Valadares
 
Avaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
Avaliação de Desempenho de uma Rede 802.11g em uma Usina TermoelétricaAvaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
Avaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
Dalton Valadares
 

Mais de Dalton Valadares (20)

Primeiros passos com Openstack
Primeiros passos com OpenstackPrimeiros passos com Openstack
Primeiros passos com Openstack
 
Performance Evaluation of an IEEE 802.11g Network in an Industrial Environment
Performance Evaluation of an IEEE 802.11g Network in an Industrial EnvironmentPerformance Evaluation of an IEEE 802.11g Network in an Industrial Environment
Performance Evaluation of an IEEE 802.11g Network in an Industrial Environment
 
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...
 
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
 
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
 
Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0
 
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
 
Internet das Coisas com Edgex Foundry
Internet das Coisas com Edgex FoundryInternet das Coisas com Edgex Foundry
Internet das Coisas com Edgex Foundry
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build Tutorial
 
Presentation of my paper in the IEEE Symposium on Computer and Communications...
Presentation of my paper in the IEEE Symposium on Computer and Communications...Presentation of my paper in the IEEE Symposium on Computer and Communications...
Presentation of my paper in the IEEE Symposium on Computer and Communications...
 
Avaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
Avaliação de Desempenho de uma Rede 802.11g em uma Usina TermoelétricaAvaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
Avaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
 
Apresentação sobre o modelo de segurança OPC UA
Apresentação sobre o modelo de segurança OPC UAApresentação sobre o modelo de segurança OPC UA
Apresentação sobre o modelo de segurança OPC UA
 
Modelo de segurança OPC UA
Modelo de segurança OPC UAModelo de segurança OPC UA
Modelo de segurança OPC UA
 
Introdução à Gestão de projetos
Introdução à Gestão de projetosIntrodução à Gestão de projetos
Introdução à Gestão de projetos
 
Integrating Fiware Orion, Keyrock and Wilma
Integrating Fiware Orion, Keyrock and WilmaIntegrating Fiware Orion, Keyrock and Wilma
Integrating Fiware Orion, Keyrock and Wilma
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
Programação C - Aula 2
Programação C - Aula 2Programação C - Aula 2
Programação C - Aula 2
 
Programação C - Aula 3
Programação C - Aula 3Programação C - Aula 3
Programação C - Aula 3
 
Programação C - Aula 4
Programação C - Aula 4Programação C - Aula 4
Programação C - Aula 4
 
Comparison of signal smoothing techniques for use in embedded system for moni...
Comparison of signal smoothing techniques for use in embedded system for moni...Comparison of signal smoothing techniques for use in embedded system for moni...
Comparison of signal smoothing techniques for use in embedded system for moni...
 

Desenvolvimento Web com JSF