SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
Diénert de Alencar Vieira

SISTEMA DISCENTE/DOCENTE DE
GRADUAÇÃO E TECNOLOGIAS UTILIZADAS
QUEM SOU EU?

 Tecnólogo em Sistemas para Internet – IFPB
 Bacharelando em Ciência da Computação –
  UFPB
 Sun Certified Java Programmer - SCJP 6

 Engenheiro de Software – Dynavideo

 Sócio da empresa IDEEN Soluções em
  Informática
 ex-Arquiteto do Projeto de Engenharia

                                               2
ROTEIRO


 Overview da Arquitetura de Sistemas Web
 Pequeno Histórico em JSP e Servlets
 Facelets
 JSF
 JBoss Seam
     JBoss Annotations
     JBoss   EL


                                            3
ROTEIRO


 Richfaces
 Apresentação do Sistema S2DG

 Se der tempo: Utilizando SVN com plugin do
  Eclipse
 Se der tempo: Padrões de Projeto




                                               4
ARQUITETURA DE SISTEMAS WEB




                              5
ARQUITETURA DE SISTEMAS WEB


 O servidor pode conter todas as páginas
  HTML
 As páginas HTML, ou partes das páginas
  podem ser geradas dinâmicamente
 Diversas são as tecnologias que podem
  gerar HTML
 Exemplos: CGI, PHP, JAVA, RUBY, ASP ...


                                            6
HISTÓRICO EM SERVLETS E JSP

   Servlets
     Uma  classe na linguagem de programação Java
      que dinamicamente processa requisições e
      respostas, proporcionando dessa maneira novos
      recursos aos servidores. A definição mais usada
      considera-os extensões de servidores.




                                                    7
HISTÓRICO EM SERVLETS E JSP




                              8
HISTÓRICO EM SERVLETS E JSP




                              9
HISTÓRICO EM SERVLETS E JSP




   Ref.: http://www.jsptut.com/Scriptlets.jsp
                                                 10
HISTÓRICO EM SERVLETS E JSP

   JSP - Expression Languages
      Poder     de Processamento e Acesso a JavaBeans




   Ref.: http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro7.html



                                                                          11
HISTÓRICO EM SERVLETS E JSP
            EL Expression                Resultado
            ${1 > (4/2)}                 False
            ${4.0 >= 3}                  True
            ${100.0 == 100}              True
            ${(10*10) ne 100}            False
            ${'a' < 'b'}                 True
            ${'hip' gt 'hit'}            False
            ${4 > 3}                     True
            ${3 div 4}                   0.75
            ${header["host"]}            O próprio host


   Ref.: http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro7.html


                                                                          12
HISTÓRICO EM SERVLETS E JSP

   Deployment Descriptor: web.xml
<!-- Faces Servlet -->
<servlet>
 <servlet-name>Faces Servlet</servlet-name>
 <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<!-- Faces Servlet Mapping -->
<servlet-mapping>
 <servlet-name>Faces Servlet</servlet-name>
 <url-pattern>*.jsf</url-pattern>
</servlet-mapping>

                                                                  13
JSF EL

 JSF EL x JSP EL: #{1 + 1} <=> ${1+1}
 Código:




   Resultado:
                                         14
FACELETS

   Facelets
     Ponto inicial: Mecanismo de Templates
     Sufixo padrão de arquivos: *.xhtml

     web.xml:


    <context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
    </context-param>




                                                          15
FACELETS
 <html xmlns="http://www.w3.org/1999/xhtml"
   xmlns:ui="http://java.sun.com/jsf/facelets">
 <head>
 <title>#{title}</title>
 </head>
 <body>
 <ui:insert name="topo" >Topo Padrão</ ui:insert>
 <ui:insert name=“content“ >Conteúdo Padrão</
   ui:insert>
 <ui:insert name="foot" >Rodapé Padrão</ui:insert>
 </body>
 </html>
                                                     16
FACELETS
 <ui:composition template="/template.xhtml"
   xmlns:ui="http://java.sun.com/jsf/facelets" >

   <ui:param name=“titulo“ value=“Título 1”/>
   <ui:define name=“topo">
   <ui:include src=“logo.xhtml" />
   </ui:define>
   <ui:define name=“content“>Conteúdo
   aqui</ui:define>
   <ui:define name=“foot“>Rodapé Feito</ui:define>
 </ui:composition>
                                                     17
JSF

 Framework de aplicação WEB com o
  propósito de simplificar o desenvolvimento
  de UI para Java EE
 Framework MVC para WEB

 Interfaces gráficas baseadas em
  componentes
 Implementa o padrão Front Controller




                                               18
JSF




      Ref.: http://docs.sun.com/app/docs/doc/820-7627/bnaph?a=view
                                                                19
JSF




      Ref.: http://www.developersbook.com/jsf/jsf-tutorial/jsf-tutorial.php
                                                                        20
JSF
   Uso das bibliotecas de tags de renderização HTML e
    CORE do JavaServer Faces

   Para um página JSP, usar:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

   Para uma página que utilize Facelets, usar:
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:h="http://java.sun.com/jsf/html">

                                                              21
JSF

   Exemplos de tags h:
     h:commandLink

     h:commandButton

     h:form

     h:messages

     h:message

     h:dataTable

     h:panelGrid


Ref.: http://docs.sun.com/app/docs/doc/820-7627/bnaqz?a=view
                                                               22
JBOSS SEAM

 Poderosa plataforma de desenvolvimento de
  código aberto para construir Aplicações
  Ricas para Internet em Java
 Integra AJAX, JSF, JPA, EJB 3.0 e BPM

 Configuração por exceção

 Menos xml’s

 Mais anotações



                                          23
JBOSS SEAM


 Apache
 Tomcat

 Glassfish

 Jetty

 Jboss AS – JBoss Application Server




                                        24
JBOSS SEAM - ANNOTATIONS


   @Annotation:
     Complementam     Javadocs
     Não afeta a semântica do código em si

     Afeta a forma como estes programas são
      tratados por ferramentas e bibliotecas
     Substituem xml em muitos casos




                                               25
JBOSS SEAM - ANNOTATIONS
  @Entity
  @Name("user")
  @Scope(SESSION)
  @Table(name="users")
  public class User implements Serializable
  {
    private static final long serialVersionUID = 18814135007114419
  51L;

    @Id @NotNull @Length(min=5, max=15)
    private String username;
    private String password;
    private String name;


Ref.: http://docs.jboss.org/seam/2.2.0.GA/reference/en-
  US/html/tutorial.html
                                                                 26
JBOSS SEAM - ANNOTATIONS

 Injeção de Dependência: é um padrão de
  desenvolvimento utilizado quando é necessário
  manter o baixo o nível de acoplamento entre
  diferentes módulos de um sistema.
 Nesta solução as dependências entre os
  módulos não são definidas programaticamente,
  mas sim pela configuração de uma
  infraestrutura de software (container) que é
  responsável por "injetar" em cada componente
  suas dependências declaradas
                                              27
JBOSS SEAM - ANNOTATIONS


@Name(“teste”)
class Teste {
   @In
   private EntityManager entityManager;
   metodo() {
     entityManager.edit(AlgumaCoisa);
   }
}
                                          28
JBOSS SEAM - ANNOTATIONS

 Bijeção de Dependência: injection e
  outjection de dependência
 O primeiro fornece a instância da
  dependência
 O segundo fornece a dependência para a
  interface




                                           29
JBOSS SEAM - ANNOTATIONS


@Name(“teste”)
class Teste {
   @Out
   private User currentUser;
}

#{currentUser.name}

                               30
JBOSS SEAM - EL


   Idêntica à EL JSF, contudo aceita
    parâmetros

   Apresentar o projeto




                                        31

Contenu connexe

Tendances

Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsVinicius Reis
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com PrimefacesFabio Noth
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsIgo Coelho
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloelliando dias
 
Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)Fernando Gonçalves
 
Quasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoQuasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoPatrick Monteiro
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 
O framework spring
O framework springO framework spring
O framework springBruno Catão
 
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?Anderson Araújo
 
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 DorAllyson Barros
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeansSliedesharessbarbosa
 
Introdução ao Spring Framework
Introdução ao Spring FrameworkIntrodução ao Spring Framework
Introdução ao Spring FrameworkNatanael Fonseca
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTMario Sergio
 

Tendances (20)

Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com Primefaces
 
Infrastructure Testing
Infrastructure TestingInfrastructure Testing
Infrastructure Testing
 
Desafio Rest API
Desafio Rest APIDesafio Rest API
Desafio Rest API
 
Arquitetura do Framework Spring
Arquitetura do Framework SpringArquitetura do Framework Spring
Arquitetura do Framework Spring
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
 
Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)Desenvolvendo para web ASP.Net (Overview para iniciantes)
Desenvolvendo para web ASP.Net (Overview para iniciantes)
 
Maven introdução Muito Rápida
Maven introdução Muito RápidaMaven introdução Muito Rápida
Maven introdução Muito Rápida
 
Quasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoQuasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenho
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
O framework spring
O framework springO framework spring
O framework spring
 
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?
 
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
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeans
 
Introdução ao Spring Framework
Introdução ao Spring FrameworkIntrodução ao Spring Framework
Introdução ao Spring Framework
 
Prime Faces
Prime FacesPrime Faces
Prime Faces
 
Web Offline
Web OfflineWeb Offline
Web Offline
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service REST
 

En vedette

Aulão de JPA com Tomaz Lavieri
Aulão de JPA com Tomaz LavieriAulão de JPA com Tomaz Lavieri
Aulão de JPA com Tomaz LavieriElenilson Vieira
 
UFCG.JCert Reunião 1 - Declarações e Controle de Acesso
UFCG.JCert Reunião 1 - Declarações e Controle de AcessoUFCG.JCert Reunião 1 - Declarações e Controle de Acesso
UFCG.JCert Reunião 1 - Declarações e Controle de AcessoAnderson Ledo
 
Portos e Recintos Alfandegados – Portaria nº 31, de 26 de junho de 2012 – Por...
Portos e Recintos Alfandegados – Portaria nº 31, de 26 de junho de 2012 – Por...Portos e Recintos Alfandegados – Portaria nº 31, de 26 de junho de 2012 – Por...
Portos e Recintos Alfandegados – Portaria nº 31, de 26 de junho de 2012 – Por...Senior Sistemas
 
Declarações e Controle de Acesso
Declarações e Controle de AcessoDeclarações e Controle de Acesso
Declarações e Controle de AcessoElenilson Vieira
 
Controle de acesso físico e lògico
Controle de acesso físico e lògicoControle de acesso físico e lògico
Controle de acesso físico e lògicoTais Florenço
 
Tecnologias da Informação: Mecanismos de Segurança
Tecnologias da Informação: Mecanismos de Segurança Tecnologias da Informação: Mecanismos de Segurança
Tecnologias da Informação: Mecanismos de Segurança Paulo Sousa
 
Segurança na Rede
Segurança na RedeSegurança na Rede
Segurança na Redecarbgarcia
 
Controle de Acesso
Controle de AcessoControle de Acesso
Controle de AcessoCassio Ramos
 
Trabalho Direitos Humanos - 9º ano
Trabalho Direitos Humanos - 9º anoTrabalho Direitos Humanos - 9º ano
Trabalho Direitos Humanos - 9º anoasgeoprofessoras
 

En vedette (15)

Aulão de JPA com Tomaz Lavieri
Aulão de JPA com Tomaz LavieriAulão de JPA com Tomaz Lavieri
Aulão de JPA com Tomaz Lavieri
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
JavaME no Mercado Mobile
JavaME no Mercado MobileJavaME no Mercado Mobile
JavaME no Mercado Mobile
 
Mundo Livre e Aberto
Mundo Livre e AbertoMundo Livre e Aberto
Mundo Livre e Aberto
 
JavaEE
JavaEEJavaEE
JavaEE
 
UFCG.JCert Reunião 1 - Declarações e Controle de Acesso
UFCG.JCert Reunião 1 - Declarações e Controle de AcessoUFCG.JCert Reunião 1 - Declarações e Controle de Acesso
UFCG.JCert Reunião 1 - Declarações e Controle de Acesso
 
Portos e Recintos Alfandegados – Portaria nº 31, de 26 de junho de 2012 – Por...
Portos e Recintos Alfandegados – Portaria nº 31, de 26 de junho de 2012 – Por...Portos e Recintos Alfandegados – Portaria nº 31, de 26 de junho de 2012 – Por...
Portos e Recintos Alfandegados – Portaria nº 31, de 26 de junho de 2012 – Por...
 
Apresentação da Doom
Apresentação da DoomApresentação da Doom
Apresentação da Doom
 
Declarações e Controle de Acesso
Declarações e Controle de AcessoDeclarações e Controle de Acesso
Declarações e Controle de Acesso
 
Controle de acesso físico e lògico
Controle de acesso físico e lògicoControle de acesso físico e lògico
Controle de acesso físico e lògico
 
Tecnologias da Informação: Mecanismos de Segurança
Tecnologias da Informação: Mecanismos de Segurança Tecnologias da Informação: Mecanismos de Segurança
Tecnologias da Informação: Mecanismos de Segurança
 
Segurança na Rede
Segurança na RedeSegurança na Rede
Segurança na Rede
 
Controle de Acesso
Controle de AcessoControle de Acesso
Controle de Acesso
 
Trabalho Direitos Humanos - 9º ano
Trabalho Direitos Humanos - 9º anoTrabalho Direitos Humanos - 9º ano
Trabalho Direitos Humanos - 9º ano
 
Direitos Humanos
Direitos HumanosDireitos Humanos
Direitos Humanos
 

Similaire à Sistema S2DG e Tecnologias Web

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.Rogério Napoleão Jr.
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer FacesEduardo Bregaida
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationMario Sergio
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010Eder Magalhães
 
Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6danielfcampos
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves PagesAmanda Luz
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Facesbielgott
 
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.javaEduardo Bregaida
 
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_Melothalesboss
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoEduardo Bregaida
 
Cactus - Testes em J2EE com Jakarta Cactus
Cactus - Testes em J2EE com Jakarta CactusCactus - Testes em J2EE com Jakarta Cactus
Cactus - Testes em J2EE com Jakarta CactusDenis L Presciliano
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 

Similaire à Sistema S2DG e Tecnologias Web (20)

Jsf
JsfJsf
Jsf
 
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.
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
 
JavaServer Faces
JavaServer FacesJavaServer Faces
JavaServer Faces
 
Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves Pages
 
Servlets e jsp
Servlets e jspServlets e jsp
Servlets e jsp
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
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
 
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
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em Desenvolvimento
 
Cactus - Testes em J2EE com Jakarta Cactus
Cactus - Testes em J2EE com Jakarta CactusCactus - Testes em J2EE com Jakarta Cactus
Cactus - Testes em J2EE com Jakarta Cactus
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
 
Apache Struts
Apache StrutsApache Struts
Apache Struts
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 

Plus de Elenilson Vieira (20)

Palestra sobre a Sun
Palestra sobre a SunPalestra sobre a Sun
Palestra sobre a Sun
 
Apresentação da RedeSoft
Apresentação da RedeSoftApresentação da RedeSoft
Apresentação da RedeSoft
 
Java Collections - Tomaz Lavieri
Java Collections - Tomaz LavieriJava Collections - Tomaz Lavieri
Java Collections - Tomaz Lavieri
 
A Sun no Meio Acadêmico - IESP/FatecPB
A Sun no Meio Acadêmico - IESP/FatecPBA Sun no Meio Acadêmico - IESP/FatecPB
A Sun no Meio Acadêmico - IESP/FatecPB
 
Mini-Curso de Sockets no Unipê
Mini-Curso de Sockets no UnipêMini-Curso de Sockets no Unipê
Mini-Curso de Sockets no Unipê
 
JavaME
JavaMEJavaME
JavaME
 
Concorrência com Java
Concorrência com JavaConcorrência com Java
Concorrência com Java
 
Programas Acadêmicos da Sun no Unipê
Programas Acadêmicos da Sun no UnipêProgramas Acadêmicos da Sun no Unipê
Programas Acadêmicos da Sun no Unipê
 
JavaME - Aula 2
JavaME - Aula 2JavaME - Aula 2
JavaME - Aula 2
 
JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
 
Apostila JavaME
Apostila JavaMEApostila JavaME
Apostila JavaME
 
Threads
ThreadsThreads
Threads
 
Sincronização - Glêdson Elias
Sincronização - Glêdson EliasSincronização - Glêdson Elias
Sincronização - Glêdson Elias
 
Collections e Generics
Collections e GenericsCollections e Generics
Collections e Generics
 
String e IO
String e IOString e IO
String e IO
 
Desenvolvimento
DesenvolvimentoDesenvolvimento
Desenvolvimento
 
Controle de Fluxo, Exceções, Assertivas
Controle de Fluxo, Exceções, AssertivasControle de Fluxo, Exceções, Assertivas
Controle de Fluxo, Exceções, Assertivas
 
Classes Internas
Classes InternasClasses Internas
Classes Internas
 
Atribuições
AtribuiçõesAtribuições
Atribuições
 
Orientação a Objeto
Orientação a ObjetoOrientação a Objeto
Orientação a Objeto
 

Dernier

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Dernier (6)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Sistema S2DG e Tecnologias Web

  • 1. Diénert de Alencar Vieira SISTEMA DISCENTE/DOCENTE DE GRADUAÇÃO E TECNOLOGIAS UTILIZADAS
  • 2. QUEM SOU EU?  Tecnólogo em Sistemas para Internet – IFPB  Bacharelando em Ciência da Computação – UFPB  Sun Certified Java Programmer - SCJP 6  Engenheiro de Software – Dynavideo  Sócio da empresa IDEEN Soluções em Informática  ex-Arquiteto do Projeto de Engenharia 2
  • 3. ROTEIRO  Overview da Arquitetura de Sistemas Web  Pequeno Histórico em JSP e Servlets  Facelets  JSF  JBoss Seam  JBoss Annotations  JBoss EL 3
  • 4. ROTEIRO  Richfaces  Apresentação do Sistema S2DG  Se der tempo: Utilizando SVN com plugin do Eclipse  Se der tempo: Padrões de Projeto 4
  • 6. ARQUITETURA DE SISTEMAS WEB  O servidor pode conter todas as páginas HTML  As páginas HTML, ou partes das páginas podem ser geradas dinâmicamente  Diversas são as tecnologias que podem gerar HTML  Exemplos: CGI, PHP, JAVA, RUBY, ASP ... 6
  • 7. HISTÓRICO EM SERVLETS E JSP  Servlets  Uma classe na linguagem de programação Java que dinamicamente processa requisições e respostas, proporcionando dessa maneira novos recursos aos servidores. A definição mais usada considera-os extensões de servidores. 7
  • 10. HISTÓRICO EM SERVLETS E JSP  Ref.: http://www.jsptut.com/Scriptlets.jsp 10
  • 11. HISTÓRICO EM SERVLETS E JSP  JSP - Expression Languages  Poder de Processamento e Acesso a JavaBeans  Ref.: http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro7.html 11
  • 12. HISTÓRICO EM SERVLETS E JSP EL Expression Resultado ${1 > (4/2)} False ${4.0 >= 3} True ${100.0 == 100} True ${(10*10) ne 100} False ${'a' < 'b'} True ${'hip' gt 'hit'} False ${4 > 3} True ${3 div 4} 0.75 ${header["host"]} O próprio host  Ref.: http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro7.html 12
  • 13. HISTÓRICO EM SERVLETS E JSP  Deployment Descriptor: web.xml <!-- Faces Servlet --> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> </servlet> <!-- Faces Servlet Mapping --> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> 13
  • 14. JSF EL  JSF EL x JSP EL: #{1 + 1} <=> ${1+1}  Código:  Resultado: 14
  • 15. FACELETS  Facelets  Ponto inicial: Mecanismo de Templates  Sufixo padrão de arquivos: *.xhtml  web.xml: <context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</param-value> </context-param> 15
  • 16. FACELETS <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"> <head> <title>#{title}</title> </head> <body> <ui:insert name="topo" >Topo Padrão</ ui:insert> <ui:insert name=“content“ >Conteúdo Padrão</ ui:insert> <ui:insert name="foot" >Rodapé Padrão</ui:insert> </body> </html> 16
  • 17. FACELETS <ui:composition template="/template.xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" > <ui:param name=“titulo“ value=“Título 1”/> <ui:define name=“topo"> <ui:include src=“logo.xhtml" /> </ui:define> <ui:define name=“content“>Conteúdo aqui</ui:define> <ui:define name=“foot“>Rodapé Feito</ui:define> </ui:composition> 17
  • 18. JSF  Framework de aplicação WEB com o propósito de simplificar o desenvolvimento de UI para Java EE  Framework MVC para WEB  Interfaces gráficas baseadas em componentes  Implementa o padrão Front Controller 18
  • 19. JSF Ref.: http://docs.sun.com/app/docs/doc/820-7627/bnaph?a=view 19
  • 20. JSF Ref.: http://www.developersbook.com/jsf/jsf-tutorial/jsf-tutorial.php 20
  • 21. JSF  Uso das bibliotecas de tags de renderização HTML e CORE do JavaServer Faces  Para um página JSP, usar: <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>  Para uma página que utilize Facelets, usar: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"> 21
  • 22. JSF  Exemplos de tags h:  h:commandLink  h:commandButton  h:form  h:messages  h:message  h:dataTable  h:panelGrid Ref.: http://docs.sun.com/app/docs/doc/820-7627/bnaqz?a=view 22
  • 23. JBOSS SEAM  Poderosa plataforma de desenvolvimento de código aberto para construir Aplicações Ricas para Internet em Java  Integra AJAX, JSF, JPA, EJB 3.0 e BPM  Configuração por exceção  Menos xml’s  Mais anotações 23
  • 24. JBOSS SEAM  Apache  Tomcat  Glassfish  Jetty  Jboss AS – JBoss Application Server 24
  • 25. JBOSS SEAM - ANNOTATIONS  @Annotation:  Complementam Javadocs  Não afeta a semântica do código em si  Afeta a forma como estes programas são tratados por ferramentas e bibliotecas  Substituem xml em muitos casos 25
  • 26. JBOSS SEAM - ANNOTATIONS @Entity @Name("user") @Scope(SESSION) @Table(name="users") public class User implements Serializable { private static final long serialVersionUID = 18814135007114419 51L; @Id @NotNull @Length(min=5, max=15) private String username; private String password; private String name; Ref.: http://docs.jboss.org/seam/2.2.0.GA/reference/en- US/html/tutorial.html 26
  • 27. JBOSS SEAM - ANNOTATIONS  Injeção de Dependência: é um padrão de desenvolvimento utilizado quando é necessário manter o baixo o nível de acoplamento entre diferentes módulos de um sistema.  Nesta solução as dependências entre os módulos não são definidas programaticamente, mas sim pela configuração de uma infraestrutura de software (container) que é responsável por "injetar" em cada componente suas dependências declaradas 27
  • 28. JBOSS SEAM - ANNOTATIONS @Name(“teste”) class Teste { @In private EntityManager entityManager; metodo() { entityManager.edit(AlgumaCoisa); } } 28
  • 29. JBOSS SEAM - ANNOTATIONS  Bijeção de Dependência: injection e outjection de dependência  O primeiro fornece a instância da dependência  O segundo fornece a dependência para a interface 29
  • 30. JBOSS SEAM - ANNOTATIONS @Name(“teste”) class Teste { @Out private User currentUser; } #{currentUser.name} 30
  • 31. JBOSS SEAM - EL  Idêntica à EL JSF, contudo aceita parâmetros  Apresentar o projeto 31