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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Desenvolvendo para WEB com JAVA

2,664
views

Published on

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.

Published in: Technology, News & Politics

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,664
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
146
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Desenvolvendo para WEB com JAVA
  • 2. 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)
  • 3. INTRODUÇÃO
  • 4. 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.
  • 5. Plataformas
    Java SE – Java Standard Edition
    Java EE – Java Enterprise Edition
    Java ME – Java Micro Edition
  • 6. 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
  • 7. PRIMEIRO PROGRAMA
  • 8. Primeiro programa
    curso.app.Primeiro.java
    publicclass Primeiro {
    publicstaticvoidmain(Stringargs[]) {
    System.out.println(“Meu primeiro programa”);
    }
    }
  • 9. 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
  • 10. ENCAPSULAMENTO
  • 11. 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)
  • 12. 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());
    }
    }
  • 13. HERANÇA
  • 14. Herança
    curso.entidades.Torcedor.java
    publicclass Torcedor extends Gente {
    privateString time;
    publicvoidsetTime(String time) {
    this.time = time;
    }
    publicStringgetTime() {
    returnthis.time;
    }
    }
  • 15. 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());
    }
    }
  • 16. REESCRITA
  • 17. Reescrita
    curso.entidades.Acpiano.java
    publicclassAcpianoextends Torcedor {
    publicvoidsetTime(String time) {
    this.time = “ACP”;
    }
    }
    Mesmaassinatura no método
  • 18. 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());
    }
    }
  • 19. SOBRECARGA
  • 20. Sobrecarga
    curso.entidades.Gente.java
    ...
    // novo método
    publicvoidsetNome(String nome, String sobrenome) {
    this.nome = nome + " " + sobrenome;
    }
    ...
    Assinaturadiferente no método
  • 21. 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());
    }
    }
  • 22. POLIMORFISMO
  • 23. Polimorfismo
    curso.entidades.Gente.java
    ...
    publicvoiddormir() {
    System.out.println(“GENTE dormindo zzz...");
    }
    ...
  • 24. Polimorfismo
    curso.entidades.Homem.java
    publicclassHomem extends Gente {
    publicvoid dormir() {
    System.out.println(“HOMEM dormindo zzz...");
    }
    }
  • 25. Polimorfismo
    curso.entidades.Mulher.java
    publicclassMulher extends Gente {
    publicvoid dormir() {
    System.out.println(“MULHER dormindo zzz...");
    }
    }
  • 26. 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() );
    }
    }
  • 27. CONTROLE DE FLUXO
  • 28. 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”);
    }
    ...
  • 29. 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;
  • 30. 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;
    }
    ...
  • 31. 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);
    ...
  • 32. Do...While
    curso.fluxo.While.java
    ...
    int contador = 5;
    do {
    System.out.println(contador + " - tuuuuuu...");
    contador--;
    } while ( contador > 0);
    ...
  • 33. 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));
    }
    }
    ...
  • 34. 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;
    }
    }
  • 35. ARRAYS E COLEÇÕES
  • 36. 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
  • 37. 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());
    }
    ...
  • 38. 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
  • 39. 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
  • 40. 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());
    }
    ...
  • 41. PERSISTÊNCIA
  • 42. 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
  • 43. Persistência
    Exemplo: JDBC (livraria)
    - SQL Injection
    - Fábrica de conexões
  • 44. 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
  • 45. 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)
  • 46. 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
  • 47. WEB
  • 48. Entendendo a WEB
    Internet
    Usuário
    Servidor
  • 49. 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
  • 50. Conteúdo
    Servlets ou JSP
    Frameworks
    - JSF
    - Struts
    - Spring
  • 51. JSF
  • 52. O framework
    Agilidade
    Componente prontos
    XHTML
    ManagedBeans
    Class Java
    Facelets
    Componentes visuais
    BD
  • 53. O framework
    Exemplo: Loteria
  • 54. 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)
  • 55. Componentes visuais
    Exemplo: ComponentesVisuais
  • 56. 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)
  • 57. Navegação
    Exemplo: Navegação
  • 58. Bibliografia
    LIVROS
    - Java como Programar
    SITES
    • http://www.algaworks.com/
    • 59. http://www.caelum.com.br/apostilas/
    • 60. http://www.k19.com.br/
  • Links
    SLIDES
    http://www.slideshare.com/wmagalhaes
    BIBLIOTECAS
    http://www.megaupload.com/?d=5CIYLRG9
  • 61. Contatos
    Ricardo Rufino
    E-mail/MSN: ricardo.rufino@yahoo.com.br
    Willian Magalhães
    E-mail/MSN: will_magalhaes@yahoo.com.br
  • 62. BRIGADO