Desenvolvendo para WEB com JAVA
Upcoming SlideShare
Loading in...5
×
 

Desenvolvendo para WEB com JAVA

on

  • 2,651 views

Material utilizado durante o curso de Desenvolvendo para WEB com JAVA, realizado na UNIPAR campus Paranavaí em julho de 2011.

Material utilizado durante o curso de Desenvolvendo para WEB com JAVA, realizado na UNIPAR campus Paranavaí em julho de 2011.

Statistics

Views

Total Views
2,651
Views on SlideShare
2,648
Embed Views
3

Actions

Likes
0
Downloads
124
Comments
0

3 Embeds 3

http://www.slideshare.net 1
https://apps.facebook.com 1
https://www.facebook.com 1

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Desenvolvendo para WEB com JAVA Desenvolvendo para WEB com JAVA Presentation Transcript

  • Desenvolvendo para WEB com JAVA
  • Quem somos?
    Ricardo Ribeiro Rufino
    Bacharel em Sistemas de Informação (UNIPAR 2010)
    Pós-graduando em Des. de Sistemas OO em Java (CESUMAR)
    Willian Magalhães
    Bacharel em Sistemas de Informação (UNIPAR 2007)
    Especialista em Des. de Sistemas para WEB (UEM 2010)
  • INTRODUÇÃO
  • O que é Java?
    Uma linguagem de programação orientada à objetos multiplataforma, criada na década de 90 pela Sun Microsystems e atualmente é mantida pela Oracle.
  • Plataformas
    Java SE – Java Standard Edition
    Java EE – Java Enterprise Edition
    Java ME – Java Micro Edition
  • Conceitos básicos
    JRE – Java RuntimeEnviroment (APIs + JVM)
    JVM – Java Virtual Machine
    JDK – Java Developer Kit (compilador + bibliotecas)
    Bytecode
    Bytecode JAVA
    Classe JAVA
    Compilador JAVA
    JVM
    Sistema Operacional
  • PRIMEIRO PROGRAMA
  • Primeiro programa
    curso.app.Primeiro.java
    publicclass Primeiro {
    publicstaticvoidmain(Stringargs[]) {
    System.out.println(“Meu primeiro programa”);
    }
    }
  • Variáveis
    curso.entidades.Gente.java
    publicclass Gente {
    privateString nome;
    privateint idade;
    }
    Primitivas (valor namemória)
    - boolean, char, int, long, float, double
    Referência(endereço de memória)
    - Boolean, Character, String, Integer, Long, Float, Double
  • ENCAPSULAMENTO
  • Encapsulamento
    curso.entidades.Gente.java
    ...
    publicvoidsetNome(String nome) {
    this.nome = nome;
    }
    publicStringgetNome() {
    returthis.nome;
    }
    ...
    Default (mesmopacote)
    Public (qualquerum acessa)
    Private ( somentedentro da classe - getters / setters)
  • Encapsulamento
    curso.app.Principal.java
    publicclass Principal {
    publicstaticvoidmain(String[] args) {
    Gente g = new Gente();
    g.setNome("Willian");
    g.setIdade(10);
    System.out.printf("Olá %s, você tem %d anos de idade.n", g.getNome(), g.getIdade());
    }
    }
  • HERANÇA
  • Herança
    curso.entidades.Torcedor.java
    publicclass Torcedor extends Gente {
    privateString time;
    publicvoidsetTime(String time) {
    this.time = time;
    }
    publicStringgetTime() {
    returnthis.time;
    }
    }
  • Herança
    curso.app.Principal.java
    publicclass Principal {
    publicstaticvoidmain(String[] args) {
    Torcedor t = new Torcedor();
    t.setNome("Willian");
    t.setTime(“ACP");
    System.out.printf("%s é torcedor do time %s.n", t.getNome(), t.getTime());
    }
    }
  • REESCRITA
  • Reescrita
    curso.entidades.Acpiano.java
    publicclassAcpianoextends Torcedor {
    publicvoidsetTime(String time) {
    this.time = “ACP”;
    }
    }
    Mesmaassinatura no método
  • Reescrita
    curso.app.Principal.java
    publicclass Principal {
    publicstaticvoidmain(String[] args) {
    Acpiano a = new Acpiano();
    a.setTime(“Cianorte");
    System.out.printf("%s é meu time.n", t.getTime());
    }
    }
  • SOBRECARGA
  • Sobrecarga
    curso.entidades.Gente.java
    ...
    // novo método
    publicvoidsetNome(String nome, String sobrenome) {
    this.nome = nome + " " + sobrenome;
    }
    ...
    Assinaturadiferente no método
  • Sobrecarga
    curso.app.Principal.java
    publicclass Principal {
    publicstaticvoidmain(String[] args) {
    Gente g = new Gente();
    g.setNome("Willian", "Magalhães");
    System.out.printf("Meu nome: %s.n", g.getNome());
    }
    }
  • POLIMORFISMO
  • Polimorfismo
    curso.entidades.Gente.java
    ...
    publicvoiddormir() {
    System.out.println(“GENTE dormindo zzz...");
    }
    ...
  • Polimorfismo
    curso.entidades.Homem.java
    publicclassHomem extends Gente {
    publicvoid dormir() {
    System.out.println(“HOMEM dormindo zzz...");
    }
    }
  • Polimorfismo
    curso.entidades.Mulher.java
    publicclassMulher extends Gente {
    publicvoid dormir() {
    System.out.println(“MULHER dormindo zzz...");
    }
    }
  • Sobrecarga
    curso.app.Principal.java
    publicclass Principal {
    publicvoidfazerDormir( Gente gente ) {
    gente.dormir();
    }
    publicstaticvoidmain(String[] args) {
    Principal p = new Principal();
    p.fazerDormir( new Gente() );
    p.fazerDormir( new Homem() );
    p.fazerDormir( new Mulher() );
    }
    }
  • CONTROLE DE FLUXO
  • If-Else
    curso.fluxo.IfElse.java
    ...
    int idade = 15;
    booleanamigoDoDono = true;
    if (idade >= 18 || amigoDoDono == true) {
    System.out.println(“Pode entrar”);
    } else {
    System.out.println(“Não pode entrar”);
    }
    ...
  • Switch
    curso.fluxo.Switch.jSwitchava
    1/2
    ...
    int nota = 4;
    switch (nota / 10) {
    case 10 :
    System.out.println("ÔÔÔ NERD! :)");
    break;
    case 9 :
    System.out.println("Ótimo.");
    break;
    case 8 :
    System.out.println("Bom.");
    break;
  • Switch
    curso.fluxo. Switch.java
    2/2
    case 7 :
    System.out.println("Pode ser melhor que isso.");
    break;
    case 6 :
    System.out.println("UFAA! quase, quase einn...");
    break;
    default :
    System.out.println("Ihh, faiô! :(");
    break;
    }
    ...
  • While
    curso.fluxo.While.java
    ...
    int idade = 14;
    while (idade < 18) {
    System.out.printf("Com %d eu sou de menor.n", idade);
    idade++;
    }
    System.out.printf("Com %d eu sou de MAIOR.n", idade);
    ...
  • Do...While
    curso.fluxo.While.java
    ...
    int contador = 5;
    do {
    System.out.println(contador + " - tuuuuuu...");
    contador--;
    } while ( contador > 0);
    ...
  • For
    curso.fluxo.For.java
    ...
    for (int i = 1; i <= 10; i++) {
    System.out.println("Tabuada do " + i);
    for (int j = 1; j <= 10; j++) {
    System.out.println(i + " X " + j + " = " + (i * j));
    }
    }
    ...
  • Controlando loops
    curso.fluxo.For.java
    ...
    intparaNaTabuadaDo = 3;
    for (int i = 1; i <= 10; i++) {
    System.out.println("Tabuada do " + i);
    for (int j = 1; j <= 10; j++) {
    System.out.println(i + " X " + j + " = " + (i * j));
    }
    if (i == paraNaTabuadaDo) {
    break;
    }
    }
  • ARRAYS E COLEÇÕES
  • Arrays
    curso.arrays.Array.java
    ...
    Torcedor[] torcida = new Torcedor[3];
    Torcedor t = new Torcedor();
    t.setNome("Carlos");
    torcida[0] = t;
    System.out.println(torcida[0].getNome());
    torcida[1] = new Torcedor();
    torcida[1].setNome("Juca");
    System.out.println(torcida[1].getNome());
    ...
    Torcedor
    Torcedor
    null
    nomeCarlos
    nomeCarlos
    torcedores
  • Percorrendo Arrays
    curso.arrays.Array.java
    ...
    // fixa
    for (int i = 0; i < 3; i++) {
    System.out.println(torcida[i].getNome());
    }
    // dinâmica
    for (int j = 0; j < torcida.length; j++) {
    System.out.println(torcida[j].getNome());
    }
    ...
  • Collections framework
    Utilizando arrays
    - Não podemos redimensionar um array (falta de espaço)
    - É impossível buscar um item diretamente quando não sabemos o índice
    - Não conseguimos saber quantas posições já foram ou estão populadas (sem métodos auxiliares)
    API Collections
    - Possuí estruturas avançadas que facilitam o manuseio das informações
  • Listas
    curso.entidades.Listas1.java
    ...
    ArrayList nomes = new ArrayList();
    nomes.add("Juca");
    nomes.add("Carlos");
    for (int i = 0; i < nomes.size(); i++) {
    System.out.println(nomes.get(i));
    }if(nomes.contains("Carlos")) {
    System.out.println("tem");
    } else {
    System.out.println("não tem");
    }
    ...
    ArrayList NÃO é um Array
  • Listas com Generics
    curso.entidades.Listas1.java
    ...
    Torcedor t1 = new Torcedor();
    t1.setNome("Juca");
    Torcedor t2 = new Torcedor();
    t2.setNome(“Carlos");
    List<Torcedor> torcedores = new ArrayList<Torcedor>();
    torcedores.add(t1);
    torcedores.add(t2);
    for (int i = 0; i < torcedores.size(); i++) {
    System.out.println(torcedores.get(i).getNome());
    }
    ...
  • PERSISTÊNCIA
  • Persistência
    JDBC (Java DatabaseConnectivity)
    - Generaliza a interface com os bancos de dados
    Aplicação JAVA
    JDBC API
    JDBC Driver Manager
    JDBC Driver
    JDBC Driver
    JDBC Driver
    MYSQL
    Postgres
    Oracle
  • Persistência
    Exemplo: JDBC (livraria)
    - SQL Injection
    - Fábrica de conexões
  • Persistência
    JPA2 e Hibernate
    - Problemas
    - Múltiplas sintaxes da linguagem SQL
    - Orientação à Objetos x Modelo Entidade Relacionamento
    - Ferramentas ORM (ObjectRelationalMapper)
    - JPA (Java Persistente API) – especificação / visa padronizar
    - Hibernate – framework ORM
  • Persistência
    Exemplo: JPA2-Hibernate (livraria)
    - Notações (principais)
    - @Entity – indica que se a classe será persistida no banco
    Aplicação antes da declaração da classe
    - @Id – indica atributo como chave primária
    Aplicação antes da declaração do atributo
    - @GeneratedValue – indica que o atributo é auto-increment
    Aplicação depois do @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
  • Persistência
    - @Table – indica o nome da tabela (antes do @Entity)
    Aplicação antes do @Entity
    @Table(name="Publisher")
    - @Column – indica um nome para o atributo e algumas restrições
    Aplicação antes da declaração do atributo
    @Column(name="publisher_name", nullable=false)
    - @Transient – in dica qual atributo não serão mapeados para colunas
    Aplicação antes da declaração do atributo
  • WEB
  • Entendendo a WEB
    Internet
    Usuário
    Servidor
  • Servidor
    Web Container
    - Fornece recursos necessários para a interação Web
    - Envio e recebimento de mensagens HTTP
    - Acesso simultâneo
    - Tomcat e Jetty
    Servidores de aplicação
    - JBoss, Glassfish, WebSphere
  • Conteúdo
    Servlets ou JSP
    Frameworks
    - JSF
    - Struts
    - Spring
  • JSF
  • O framework
    Agilidade
    Componente prontos
    XHTML
    ManagedBeans
    Class Java
    Facelets
    Componentes visuais
    BD
  • O framework
    Exemplo: Loteria
  • Componentes visuais
    Componentes visuais
    - Facilitam nossa vida
    - Variedades de componentes em sua especificação
    - Arquitetura de componentes visuais JSF permite criação de novos
    - PrimeFace (http://www.primefaces.org/)
    - RichFaces (http://www.jboss.org/richfaces)
  • Componentes visuais
    Exemplo: ComponentesVisuais
  • Navegação
    Navegação estática implícita
    - nome da página
    Navegação estática explicita
    - faces-config.xml
    Navegação dinâmica implícita
    - Bean retorna nome da página
    Navegação dinâmica explicita
    - Beanretora nome (faces-config.xml)
  • Navegação
    Exemplo: Navegação
  • Bibliografia
    LIVROS
    - Java como Programar
    SITES
    • http://www.algaworks.com/
    • http://www.caelum.com.br/apostilas/
    • http://www.k19.com.br/
  • Links
    SLIDES
    http://www.slideshare.com/wmagalhaes
    BIBLIOTECAS
    http://www.megaupload.com/?d=5CIYLRG9
  • Contatos
    Ricardo Rufino
    E-mail/MSN: ricardo.rufino@yahoo.com.br
    Willian Magalhães
    E-mail/MSN: will_magalhaes@yahoo.com.br
  • BRIGADO