11
1 PROFESSORA VERONICE DE FREITAS Graduação: Tecnologia em Processamento de Dados (UNOPAR) Especialização: Análise e Desenvolvimento de Sistemas (UNIFIL) Mestrado: Ciência da Computação (UFRGS) Programação Web II Aula 1 JSFJavaServer Faces Programação Web II EMENTA: Modelagem de framework para desenvolvimento WEB. Arquitetura MVC (modelviewcontroller). Funcionamento da Web. Introdução ao framework: plataforma de desenvolvimento para Web. Framework: conceitos básicos. Framework: componentes. Bibliotecas de componentes. API para acesso ao banco de dados. Frameworks de persistência. Tecnologias para programação Web. OBJETIVOS: desenvolver aplicações WEB utilizando framework Resumo O JavaServer Faces (JSF) é um framework de interface de usuário (IU) para aplicações Java Web. Também como a maioria dos frameworks, adota o modelo de arquitetura MVC (Model View Controller), com o objetivo de aumentar a produtividade da construção de interfaces gráficas web baseadas em templates e disponibilizando um conjunto de componentes visuais reutilizáveis. PALAVRASCHAVE: JSF, MVC, FRAMEWORK, TEMPLATES Estrutura Introdução – Desenvolvimento web – Java Contextualizar o JavaServer Faces (JSF) Preparar o ambiente JSF – Projeto exemplo (01) JSF – Projeto exemplo 02 (ManagedBean/ Escopo) Material de apoio

1408133296144

Embed Size (px)

Citation preview

  • 1PROFESSORAVERONICEDEFREITAS

    Graduao:TecnologiaemProcessamentodeDados(UNOPAR)

    Especializao:AnliseeDesenvolvimentodeSistemas(UNIFIL)

    Mestrado:CinciadaComputao(UFRGS)

    ProgramaoWebII

    Aula1

    JSF JavaServerFaces

    ProgramaoWebIIEMENTA: ModelagemdeframeworkparadesenvolvimentoWEB. ArquiteturaMVC(modelviewcontroller). FuncionamentodaWeb.Introduoaoframework:plataformadedesenvolvimentoparaWeb.Framework:conceitosbsicos.Framework:componentes.Bibliotecasdecomponentes.APIparaacessoaobancodedados.Frameworksdepersistncia.TecnologiasparaprogramaoWeb.OBJETIVOS:desenvolveraplicaesWEButilizandoframework

    Resumo

    OJavaServerFaces(JSF)umframeworkdeinterfacedeusurio(IU)paraaplicaesJavaWeb.Tambmcomoamaioriadosframeworks,adotaomodelodearquiteturaMVC(Model View Controller),comoobjetivodeaumentaraprodutividadedaconstruodeinterfacesgrficaswebbaseadasemtemplates edisponibilizandoumconjuntodecomponentesvisuaisreutilizveis.PALAVRASCHAVE:JSF,MVC,FRAMEWORK,TEMPLATES

    Estrutura

    Introduo Desenvolvimentoweb JavaContextualizaroJavaServerFaces(JSF)PrepararoambienteJSF Projetoexemplo(01)JSF Projetoexemplo02(ManagedBean/Escopo)Materialdeapoio

  • 2PlataformaJavaJ2EE

    AplataformaJavaJ2EE (Java2EnterpriseEdition)surgiucomoobjetivodepadronizaresimplificaracriaodeaplicaesWeb.umadastrsplataformasdeJavasomandoseaJ2ME (Java2MicroEdition),voltadaparapequenosdevices comocelularesepalmtops,eJ2SE (Java2Standart Edition),voltadaparaaplicaesclienteecompostapelasAPIs bsicasdeJava.

    EVOLUO J2EE

    http://cooldevstuff.wordpress.com/

    JSF(JavaServerFaces)

    OJavaServerFacesatecnologiapadrodoJava2Plataform EnterpriseEdition (J2EE)paradesenvolveraplicaesweb.Herdadastecnologias(JSP)JavaServesPageseServlets,eextende seusconceitoscomumciclodevidaeumconjuntodecomponenteserecursosavanadosefocadosnodesenvolvimentoparaweb.

    JSF(JavaServerFaces)

    JavaServerFaces (JSF)um framework MVC baseadoem Java paraaconstruodeinterfacesdeusurio baseadasem componentes para aplicaesweb.Possuiummodelodeprogramaodirigidoaeventos,abstraindoosdetalhesdamanipulaodoseventoseorganizaodoscomponentes,permitindoqueoprogramadorseconcentrenalgicadaaplicao.http://pt.wikipedia.org/wiki/JavaServer_Faces

    Opadro MVC ModelViewController

    Parasabermais:http://www.subrotina.com.br/oconceitoeasduvidassobreomvc/

  • 3PadrodearquiteturaMVC(Model View Controller)

    Propeasepararasresponsabilidadesdeumaaplicaoemcomponentesdemodelo,visoecontrole:

    Modelo:formadoporentidadesdenegcioquerepresentamosdadosdosistema.View. a apresentao, oqueaparece, oquevisualizado porquemusaosistema. .Controller. Comosugereonome,responsvelporcontrolartodoofluxodoprograma.

    EmJSF,ocontrolefeitoatravsdeumservlet chamadoFacesServlet.

    ArquiteturadoJSFbaseadanoMVC

    Servlet Container

    ExistemvriosServlet Containernomercado,osmaisimportantesso:Tomcat;Glassfish;Jboss;Jetty;Entreoutros.

    Biblioteca JSF

    OcontinerServletTomcat,porpadro,nopossuisuportediretoaoJavaServerFaces,ouseja,nocontmasbibliotecasnecessriasparaodesenvolvimentocomomesmo.

    Implementao JSF

    Possuiduasimplementaesbemconhecidas:SunMojarra implementaoderefernciaMyFaces daApache Fonte:CAELUM(2013)

    EspecificaoJSF2JSR314

    )

    Mojarra(implementao

    referencial)

    ApacheMyFaces

    http://javaserverfaces.java.net/

    http://myfaces.apache.org/ DownloadJSFhttp://javaserverfaces.java.net/Download:javax.faces.2.1.20.jar.

    CopieoarquivoparaapastaWEBINF/lib doprojeto.

  • 4SOFTWARES

    1)SDKJava1.7:http://www.oracle.com/technetwork/java/javase/downloads/index.html

    2)Tomcat:http://tomcat.apache.org/download70.cgi

    3)EclipseJuno:http://www.eclipse.org/downloads/packages/release/juno/sr1

    SOFTWARES

    4)JSF2.1:http://javaserverfaces.java.net/

    5)Primefaces 3.3.1http://www.primefaces.org/downloads.html

    6)MySQL5.5:http://dev.mysql.com/downloads/

    7)Hibernate3.5http://www.hibernate.org/)

    SOFTWARES outrasopes

    Netbeans 7.2:http://netbeans.org/community/releases/72/Glassfish 3.2:JvemembutidonoNetbeans versoJEE

    Perguntas

    Preparandooambiente

    Preparando oambiente

    Servlet Conteiner Tomcat 7(http://tomcat.apache.org/download70.cgi).

    IDEoeclipseJuno(http://www.eclipse.org/downloads/packages/release/juno/sr1)

  • 5Criando umprojeto parateste doJSF ServerRuntime(Tomcat)

    Jars doJSF

    informeumnomeparaoJSF

    Adicioneojar doJSFUsandoomesmoprocedimentoseradicionadososjarsdoHibernate,conectordoMySQL,Primefaces,etc ( sercriadoumnew/add External JARs)paracadaumseparadamente.

    Projeto new outrosWebDynamicProject

    Dynamic WebProject

    CliqueemNEXTatchegarnessaetapa

  • 6resultado

    JardoJSFcopiadoparaapastalib (podercopiarusandooWindowsexplorereatualizaroprojeto) cliquebotodireitonoprojeto

    Crieosarquivos:index.htmlindex.xhtml

    ...

    index.html

    FacesServletjavax.faces.webapp.FacesServlet1

    FacesServlet

    *.jsf

    ...

    web.xmlweb.xml

    web.xml

    Osarquivosdeconfigurao(facesconfig.xmleweb.xml)soresponsveisporrealizarassociaesemapeamentosdeaesepeladefinioderegrasdenavegao.Osmanipuladoresdeeventossoresponsveisporreceberosdadosvindosdacamadadevisualizao,acessaromodelo,eentodevolveroresultadoparaoFacesServlet.

    Lib JSF

    ApscriaroprojetoCOPIEabibliotecaparaapastaLIBdeseuprojeto(lembresedeatualizar)

    Arquivo idex.html

    arquivo /new/other/web/HTMLfile(template4.01transitional)

    Teset Facelet

    Ol Mundo.

    arquivo /new/other/web/XHTMLfile(template1.0transitional)Arquivo:index.xhtml

  • 7Executaroprojeto UsandooJavaServerFacesAespecificaodoJSFforneceumconjuntodecomponentesvisuaisbsicosemsuaimplementaodereferncia.BibliotecaHTML(siglah):possuicomponentesquerepresentamdiversoselementosHTMLeabibliotecaNamespace:xmlns:h=http://java.sun.com/jsf/htmlBibliotecaCore(siglaf):responsvelportarefascomunsnodesenvolvimentodesistemas,comointernacionalizao,validaoeconversodedadosdeentrada.Namespace:xmlns:f="http://java.sun.com/jsf/core

    JSF BibliotecaHTMLxmlns:h=http://java.sun.com/jsf/html

    Tag Descriobody Representaatag doHTMLButton CriaumlinkColumn ColunadedadosemumcommandButton Geraumbotodesubmit ouresetcommandLink Geraumlink.Precisaestar

    dentrodeum...

    http://blog.fimes.edu.br/fernando/files/2012/05/JavaServerFaces%E2%80%93JSF.pdf

    JSF BibliotecaCorexmlns:h=http://java.sun.com/jsf/core

    Tag DescrioactionListener Permiteregistrarumeventoajax

    ouumaaoajax aserrealizadapeloacionamentodeumboto.

    attribute Configuraumatributoparaatag paiqueacontiver

    convertDateTime Configuraumconversorparadataehoraconverter Permiteregistrar

    umconversorpersonalizado

    ...http://blog.fimes.edu.br/fernando/files/2012/05/JavaServerFaces%E2%80%93JSF.pdf

    Perguntas

    Exemplo02Nomedoprojeto:Teste02_JSF

    GABRIELhttp://wehavescience.com/2012/11/07/desenvolvendoumaaplicacaoutilizandojsf2/

  • 8Pacotes

    Pacotes

    Classes

    Lib jsf

    config eweb.xml

    views

    Passo01Criarospacoteseasclasses

    packageentities;publicclass Pessoa{private Stringnome;private Stringemail;private Stringinformacoes;private int idade;

    publicStringgetNome(){return nome;

    }

    publicvoid setNome(Stringnome){

    this.nome=nome;}

    // mtodosgetter esetter}

    classePessoapackageentities;

    packagebeans;import javax.annotation.PostConstruct;import javax.faces.application.FacesMessage;import javax.faces.bean.ManagedBean;import javax.faces.bean.SessionScoped;import javax.faces.context.FacesContext;import entities.Pessoa;

    @ManagedBean@SessionScopedpublicclass CadastroBean {private Pessoapessoa;

    @PostConstructpublicvoid init(){

    pessoa=new Pessoa();}

    classeCadastroBeanpackageentities;

    publicvoid message(Stringmessage){FacesContext instance =

    FacesContext.getCurrentInstance();instance.addMessage(null,new

    FacesMessage(message));}

    publicStringcadastrar(){if(pessoa.getIdade()

  • 9ManagedBean

    Aprincipalresponsabilidadedeummanagedbeanintermediaracomunicaoentreaspginas(componentesdoJSF)eomodelo.

    EntendendoosdiferentestiposdeManaged Beans JSFRafaelPontehttp://www.rponte.com.br/2009/08/27/managedbeansnaocompliquesimplifique/

    JSF MapeamentodaclasseBeanTempodevidadaclasse

    Escopo Descrio@ApplicationScoped

    Apenasumainstnciadaclasseemtodaaaplicao.Todososusuriosacessamamesmainstncia.

    @SessionScoped Existeumainstnciaparacadausurio.@RequestScoped Existeumainstnciapelotempo

    deduraodarequisiofeitapelousurio.

    ... ...http://blog.fimes.edu.br/fernando/files/2012/05/JavaServerFaces%E2%80%93JSF.pdfhttp://blog.fimes.edu.br/fernando/files/2012/05/JavaServerFaces%E2%80%93JSF.pdf

    ...p_ID"version="3.0">JSF

    index.html

    FacesServletjavax.faces.webapp.FacesServlet1

    FacesServlet*.jsf

    web.xmlArquivoprincipal

    Index.html

    PginadeCadastro

    Index.xhtml

    Index.xhtmlcontinuao

  • 10

    Index.xhtml(continuao)

    Cadastrar

    ...

    paginaSucesso/paginasucesso.jsf

    ...

    facesconfig.xml

    publicStringcadastrar(){if(pessoa.getIdade()

  • 11

    ComparaoentreosprincipaisFrameworksJavaparaodesenvolvimentodeaplicaesWEB2.0http://www3.iesampa.edu.br/ojs/index.php/sistemas/article/viewFile/585/424

    CAELUM,EspecificaoeimplementaodoJSF.Disponvelem.http://www.caelum.com.br/apostilajavatestesjsfwebservicesdesignpatterns/introducaoaojsfeprimefaces/#75especificacaoeimplementacaodojsf

    Primefaces User's Guide 3.3.Turquia,2012.http://www.slashdocs.com/xskst/primefacesusersguide32.html(refernciadoprimefaces)

    EXADEL.JavaServerFacesHTMLTags Reference.2013.http://exadel.com/web/portal/jsftagsguideUNIVERSIDADEJAVA.IntroduoaoJavaServerFaces2.0.http://www.universidadejava.com.br/docs/introducaoaojavaserverfaces20

    2014 Todososdireitosreservados.UsoexclusivonoSistemadeEnsinoPresencialConectado.