Desenvolvendo para WEB com JAVA

3,456 views
3,292 views

Published on

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
3,456
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
171
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Desenvolvendo para WEB com JAVA

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

×