3way curso-formacao-java-web-completo

3.860 visualizações

Publicada em

1 comentário
11 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
3.860
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
845
Comentários
1
Gostaram
11
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

3way curso-formacao-java-web-completo

  1. 1. Apostila Java Web www.3way.com.br
  2. 2. Java WEB Java WEB Sumário Sumário 1 1 1.1 1.1 1.2 1.2 1.2.1 1.2.1 1.3 1.3 1.4 1.4 1.5 1.5 1.6 1.6 1.7 1.7 1.8 1.8 1.9 1.9 1.9.1 1.9.1 1.9.2 1.9.2 1.9.3 1.9.3 1.9.4 1.9.4 1.9.5 1.9.5 2 2 2.1 2.1 2.2 2.2 2.3 2.3 2.3.1 2.3.1 2.3.2 2.3.2 2.3.3 2.3.3 3 3 3.1 3.1 3.2 3.2 3.3 3.3 3.4 3.4 4 4 4.1 4.1 4.1.1 4.1.1 4.1.2 4.1.2 4.1.2.1 4.1.2.1 4.2 4.2 4.2.1 4.2.1 4.2.2 4.2.2 4.2.2.1 4.2.2.1 4.2.2.2 4.2.2.2 4.3 4.3 4.4 4.4 4.4.1 4.4.1 4.4.2 4.4.2 4.4.3 4.4.3 4.4.4 4.4.4 4.4.5 4.4.5 4.5 4.5 4.6 4.6 4.7 4.7 4.8 4.8 4.9 4.9 JDBC JDBC Banco de Dados Relacional Banco de Dados Relacional JDBC – Java Database Connectivity JDBC – Java Database Connectivity java.sql.DriverManager java.sql.DriverManager Fábrica de Conexões Fábrica de Conexões Criar Banco de Dados e Tabelas Criar Banco de Dados e Tabelas Classes Javabeans – Entidades Classes Javabeans – Entidades Inserindo Dados Inserindo Dados Fechando a Conexão Fechando a Conexão PreparedStatement ou Statement PreparedStatement ou Statement Design Patterns Design Patterns DAO – Data Access Object DAO – Data Access Object Pesquisando Pesquisando Recurso avaçando: O Cursor Recurso avaçando: O Cursor Alteração Alteração Exclusão Exclusão Introdução a Java Enterprise Edition Introdução a Java Enterprise Edition Porque Java EE tem sido tão utilizado? Porque Java EE tem sido tão utilizado? O que é Java Enterprise Edition? O que é Java Enterprise Edition? A plataforma Java Enterprise Edition A plataforma Java Enterprise Edition APIs APIs Contêiners Contêiners Deployment de aplicações Deployment de aplicações Análise de arquiteturas Análise de arquiteturas Arquitetura Física e Arquitetura Lógica Arquitetura Física e Arquitetura Lógica Tipos de aplicações na WEB Tipos de aplicações na WEB Arquitetura MVC para a Web Arquitetura MVC para a Web Vantagens da arquitetura MVC Vantagens da arquitetura MVC Ambiente de desenvolvimento Ambiente de desenvolvimento Tomcat Tomcat Instalar Java JSE SDK (JDK) Instalar Java JSE SDK (JDK) Qual versão de JDK utilizar Qual versão de JDK utilizar JAVA_HOME JAVA_HOME Instalar Tomcat Instalar Tomcat Qual versão de Tomcat utilizar Qual versão de Tomcat utilizar Iniciar e parar o Tomcat Iniciar e parar o Tomcat [Windows] Tomcat como serviço [Windows] Tomcat como serviço Tomcat como processo Tomcat como processo Testar Tomcat Testar Tomcat Criar contexto de desenvolvimento Criar contexto de desenvolvimento Estrutura de diretórios Estrutura de diretórios Criar contexto de aplicação web Criar contexto de aplicação web Configurar contexto: web.xml Configurar contexto: web.xml Ativar contexto Ativar contexto Testar contexto Testar contexto Bibliotecas Servlet Bibliotecas Servlet Testar seus servlets Testar seus servlets Testar seus JSPs Testar seus JSPs Logs Logs Variáveis de Ambiente Variáveis de Ambiente Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 89 8 89 8 89 8 89 8 10 9 9 11 10 10 11 10 10 12 11 11 14 12 12 14 12 12 15 13 13 15 13 13 16 14 14 17 15 15 19 16 16 16 19 16 17 20 17 17 20 17 18 21 18 18 21 18 19 23 19 19 23 19 21 25 21 21 25 21 21 25 21 21 25 21 21 27 21 22 28 22 23 23 28 23 23 28 24 24 29 24 24 29 24 24 29 25 25 30 25 25 30 25 25 30 25 25 30 26 26 31 26 26 31 26 26 31 26 26 31 27 27 32 27 27 32 29 29 34 29 29 34 29 29 34 30 30 36 31 31 37 31 31 37 32 32 38 1 1 2
  3. 3. Java WEB Java WEB 4.10 Sumário 5 5.1 1 5.2 1.1 5.3 1.2 5.3.1 1.2.1 5.4 1.3 5.5 1.4 6 1.5 6.1 1.6 6.2 1.7 6.3 1.8 6.4 1.9 6.5 1.9.1 7 1.9.2 7.1 1.9.3 7.2 1.9.4 7.3 1.9.5 7.3.1 2 7.4 2.1 7.4.1 2.2 7.5 2.3 7.5.1 2.3.1 7.5.2 2.3.2 7.5.3 2.3.3 7.6 3 7.6.1 3.1 8 3.2 8.1 3.3 8.2 3.4 8.3 4 8.4 4.1 8.5 4.1.1 9 4.1.2 9.1 4.1.2.1 9.1.2 4.2 9.1.2.1 4.2.1 9.1.3 4.2.2 9.2 4.2.2.1 9.2.1 4.2.2.2 9.2.2 4.3 9.2.3 4.4 9.3 4.4.1 10 4.4.2 10.1 4.4.3 10.1.1 4.4.4 10.2 4.4.5 10.3 4.5 10.3.1 4.6 10.3.1.1 4.7 10.3.2 4.8 10.3.3 4.9 Thread Java Servlet Histórico JDBC O que é um Servlet? Banco de Dados Relacional A classe HttpServlet JDBC – Java Database Connectivity Seqüencia de eventos na HttpServlet java.sql.DriverManager O Ciclo de vida do Servlet no Contêiner Fábrica de Conexões Estrutura de Aplicações Web e o Deployment Descriptor Criar Banco de Dados Request e Response e Tabelas Classes Javabeans – Entidades Introdução Inserindo HTTP Get Dados Fechando HTTP Post a Conexão PreparedStatement ou Statement A Interface HttpServletRequest Design Patterns A Interface HttpServletResponse DAO – a Aplicação Web CriandoData Access Object Pesquisando Introdução Recurso avaçando: O Cursor Endereçamento Relativo Alteração Formulários Exclusão Exemplo: Leitura de dados de um formulário Introdução a Java Enterprise Edition Manipulação de Cookies Porque javax.servlet.http.Cookie A Classe Java EE tem sido tão utilizado? O que é Java Navegação Enterprise Edition? A plataforma Java Redirecionamento Enterprise Edition APIs Reencaminhamento Contêiners Redirect versus Forward0 Deployment dados entre componentes Web Passagem de de aplicações Análise de arquiteturas Atributos da request Arquitetura Física Sessão Gerenciamento de e Arquitetura Lógica Tipos de aplicações na WEB Introdução Arquitetura MVC para Obtendo uma sessão a Web Vantagens da arquitetura MVC Atributos da sessão Ambiente de desenvolvimento Invalidando uma sessão Tomcat Gerenciamento de Sessão sem cookies Instalar Java JSE SDK (JDK) ServletContext, Filtros e Listeners Qual versão de ServletContext JDK utilizar JAVA_HOME Parâmetros de inicialização Instalar Tomcat Adicionando parâmetros de inicialização no Deployment Descriptor (web.xml) Qual versão de Tomcat utilizar Utilizando atributos do ServletContext Iniciar Filtros e parar o Tomcat [Windows] Introdução Tomcat como serviço Tomcat como processo Criando um filtro Testar Tomcat Configuração do Deployment Descriptor Criar contexto de desenvolvimento Listeners Estrutura Pages JavaServerde diretórios Criar contexto de aplicação web Introdução Configurar contexto: Ciclo de vida do JSP web.xml Ativar contexto Estrutura de diretórios Testar contexto Elementos utilizados em JSPs Bibliotecas Diretiva JSP Servlet Testar seus servlets Diretiva Page Testar seus JSPs Diretiva include Logs Declarações Variáveis de Ambiente Seja Todos os direitos reservados a 3Way Networks um Profissional Aprendendo com Profissionais www.3way.com.br Seja um Profissional Aprendendo com Profissionais www.3way.com.br 38 32 45 39 45 39 8 46 40 8 47 41 8 48 42 8 48 42 9 50 44 10 53 46 10 53 46 11 55 48 12 55 48 12 56 49 13 58 51 13 60 53 14 53 60 15 53 60 16 54 61 16 55 62 17 56 63 17 57 64 18 59 67 18 60 68 19 61 69 19 62 70 21 62 70 21 62 70 21 63 71 21 63 71 21 64 72 22 65 73 23 66 74 23 66 74 24 67 75 24 67 75 24 67 75 25 67 75 25 68 77 25 68 77 25 68 77 26 69 78 26 70 79 26 71 80 26 74 83 27 74 83 27 74 83 29 75 84 29 75 84 29 76 85 30 76 85 31 77 87 31 78 88 32 2 1 3
  4. 4. Java WEB Java WEB 10.3.4 Sumário 10.3.5 10.3.6 1 10.3.6.1 1.1 10.3.6.2 1.2 10.3.7 1.2.1 10.4 1.3 10.4.1 1.4 10.4.2 1.5 10.4.3 1.6 10.4.4 1.7 10.4.6 1.8 10.4.7 1.9 10.4.8 1.9.1 10.4.9 1.9.2 10.5 1.9.3 10.5.1 1.9.4 10.5.2 1.9.5 10.5.3 2 10.5.4 2.1 10.6 2.2 10.6.1 2.3 10.6.2 2.3.1 10.6.3 2.3.2 10.6.4 2.3.3 10.8.5 3 11 3.1 11.1 3.2 11.2 3.3 11.2.1 3.4 11.2.2 4 11.2.3 4.1 11.2.3.1 4.1.1 11.2.3.2 4.1.2 11.2.4 4.1.2.1 11.2.5 4.2 11.2.6 4.2.1 11.3 4.2.2 12 4.2.2.1 12.1 4.2.2.2 12.2 4.3 12.3 4.4 12.4 4.4.1 12.4.1 4.4.2 12.4.2 4.4.3 12.4.2.1 4.4.4 12.4.2.4 4.4.5 12.5 4.5 12.5.1 4.6 12.5.2 4.7 12.5.3 4.8 13 4.9 Expressões Scriptlets Ações JDBC <jsp:include> Banco de Dados Relacional <jsp:forward> JDBC – Java Comentários Database Connectivity java.sql.DriverManager Objetos implícitos Fábrica de Conexões page Criar config Banco de Dados e Tabelas Classes response request eJavabeans – Entidades Inserindo Objeto out Dados Fechando a Conexão session PreparedStatement ou Statement application Design Patterns pageContext DAO – Data Access Object Exception Pesquisando JavaBeans Recurso avaçando: O Cursor <jsp:useBean> Alteração <jsp:setProperty> Exclusão <jsp:getProperty> Introdução a Java Enterprise Edition Usando JavaBeans com Ações JSP Porque Java Web Reutilizáveis Componentes EE tem sido tão utilizado? O que é Java Enterprise Edition? Fragmentos JSP A plataforma Diretiva includeJava Enterprise Edition APIs Ação <jsp:include> Contêiners Ação <jsp:param> Deployment de aplicações Ação <jsp:foward> Análise de arquiteturas Expression Language OArquitetura Física e Arquitetura Lógica que é EL Tipos de EL Sintaxe de aplicações na WEB Arquitetura MVC para Literais e Operadores a Web Vantagens Variáveis da arquitetura MVC Ambiente de variáveis Navegação em desenvolvimento Tomcat Operador ponto (.) Instalar [ ] OperadorJava JSE SDK (JDK) Qual versão de JDK e Listas Navagação em Arraysutilizar JAVA_HOME Navegação em Mapas Instalar Tomcat Objetos implícitos Qual versão de Tomcat utilizar Habilitando e Desabilitando EL e scriptlets Iniciar e parar o Tomcat JavaServer Pages Standard Tag Library ( JSTL ) O[Windows] Tomcat como serviço que é JSTL Tomcat da JSTL Instalaçãocomo processo Testar Tomcat Como usar JSTL em uma página JSP Criar contexto Biblioteca Core de desenvolvimento Estrutura de diretórios Suporte a variáveis c: set e c:remove Criar contexto de Controle de Fluxo aplicação web Configurar contexto: web.xml Condicional <c:if>,<c:choose> Ativar contexto Iteradores <c:forEach> e <c:forTokens> Testar contexto Biblioteca de Internacionalização Bibliotecas Servlet Locale Testar seus Mensagens servlets Testar seus JSPs Formatação de Números e Datas Logs Tratamento de erros em aplicações Web Variáveis de Ambiente Todos os direitos Aprendendo com Profissionais Seja um Profissional reservados a 3Way Networks www.3way.com.br Seja um Profissional Aprendendo com Profissionais www.3way.com.br 7888 7989 7989 8 7989 8 8090 8 8090 8 8191 9 8191 10 8292 10 8292 11 8393 12 8393 12 8393 13 8393 13 8494 14 8494 15 8595 16 8696 16 8696 17 8696 17 8798 18 8798 18 8899 19 89 100 19 90 101 21 90 101 21 91 102 21 91 102 21 91 102 21 92 103 22 93 104 23 93 104 23 93 104 24 93 104 24 93 104 24 94 105 25 94 105 25 95 106 25 96 108 25 96 108 26 96 108 26 96 108 26 97 109 26 98 110 27 99 111 27 99 111 29 100 112 29 102 114 29 102 114 30 103 115 31 105 117 31 106 118 32 3 1 4
  5. 5. Java WEB Java WEB 13.1 Sumário 13.1.1 13.1.2 1 13.1.3 1.1 13.2 1.2 13.2.1 1.2.1 13.2.2 1.3 13.2.3 1.4 14 1.5 14.1 1.6 14.2 1.7 14.3 1.8 14.4 1.9 14.4.1 1.9.1 14.4.1.1 1.9.2 14.4.1.2 1.9.3 14.4.1.3 1.9.4 14.4.1.4 1.9.5 14.4.2 2 14.4.3 2.1 15 2.2 15.1 2.3 15.2 2.3.1 15.2.1 2.3.2 15.2.2 2.3.3 15.2.3 3 16 3.1 16.1 3.2 16.2 3.3 16.3 3.4 16.4 4 16.4.1 4.1 16.4.2 4.1.1 16.4.3 4.1.2 16.5 4.1.2.1 16.5.1 4.2 16.5.2 4.2.1 17 4.2.2 17.1 4.2.2.1 17.2 4.2.2.2 17.3 4.3 17.4 4.4 17.5 4.4.1 17.6 4.4.2 17.7 4.4.3 18 4.4.4 18.1 4.4.5 18.2 4.5 18.3 4.6 18.4 4.7 18.5 4.8 18.6 4.9 Configuração de páginas de erro Declarando uma página de erro geral Declarando página de erro para uma exceção mais específica JDBC Página de erro http Banco de Dados Relacional Tratando erros em Servlets JDBC – nossa Exception Criando Java Database Connectivity java.sql.DriverManager Servlet que dispara Exception Fábrica de Conexões Mapeamento no Deployment Descriptor Criar Banco de Dados e Tabelas MVC para Aplicações Web Classes Combinar – Entidades Por que Javabeans Servlets e JSP? Inserindo Dados Mal Entendidos Sobre MVC Fechando a Conexão Implementando MVC com RequestDispatcher PreparedStatement ou Statement Framework MVC STRUTS Design Patterns Controller DAO – Data Access Object ActionServlet Pesquisando Action Recurso avaçando: O Cursor ActionForm Alteração Arquivo strutsconfig.xml Exclusão Model (Modelo) Introdução a Java Enterprise Edition View (Visualização) Porque Java Custom Tags EE tem sido tão utilizado? O que é Java Introdução Enterprise Edition? A plataforma Java Enterprise Edition Como funcionam as Custom Tags? APIs A classe Tag Handler Contêiners Arquivo Descritor de Tag Library Deployment O Arquivo JSPde aplicações Análise Tag File de arquiteturas Arquitetura Física e O que é um Tag File Arquitetura Lógica Tipos de aplicações na uma Utilizando Tag Files em WEB página JSP Arquitetura MVC para Tag Files empacotados a Web Vantagens Diretivas da arquitetura MVC Ambiente de desenvolvimento tag Tomcat attribute Instalar variable Java JSE SDK (JDK) Qual versão de JDK Standard Actions utilizar JAVA_HOME <jsp:invoke/> Instalar Tomcat <jsp:doBody/> Qual versão Simple Tag de Tomcat utilizar Iniciar e parar o Tomcat O que é uma Simple Tag [Windows] Tomcat como serviço Ciclo de Vida Tomcat como processo Overview das classes envolvidas Testar SimpleTags CriandoTomcat Criar contexto de desenvolvimento Mapeamento de tlds em páginas Jsp Estrutura de Corpo da Tag diretórios Criar contexto de aplicação web Tópicos Avançados: definindo atributos Configurar contexto: HTML e JavaScript web.xml Ativar contexto Browsers Testar contexto HTTP UserAgent Bibliotecas Servlet Useragent String Testar seus servlets O Documento HTML Testar seus JSPs O Modelo de Objetos Logs HTML e XML Variáveis de Ambiente Seja Todos os direitos reservados a 3Way Networks um Profissional Aprendendo com Profissionais www.3way.com.br Seja um Profissional Aprendendo com Profissionais www.3way.com.br 118 106 118 106 120 107 8 120 107 8 120 107 8 120 107 8 108 121 9 108 121 10 109 122 10 109 122 11 109 122 12 109 122 12 111 124 13 111 124 13 111 124 14 112 125 15 113 126 16 114 127 16 116 129 17 116 129 17 116 129 18 116 129 18 116 129 19 116 129 19 117 130 21 118 132 21 118 132 21 118 132 21 118 132 21 119 133 22 120 134 23 120 134 23 121 135 24 122 136 24 122 136 24 122 136 25 123 137 25 124 138 25 124 138 25 124 138 26 124 138 26 125 139 26 125 139 26 126 140 27 127 141 27 128 142 29 128 142 29 128 142 29 129 143 30 129 143 31 129 145 31 130 145 32 4 1 5
  6. 6. Java WEB Java WEB 18.7 O Valor Semântico de um Documento Sumário XML 18.8 18.9 DOCTYPE 1 JDBC 18.10 A linguagem HTML 1.1 Banco de 18.10.1 IntroduçãoDados Relacional 1.2 JDBC – Java documento html 18.10.2 Estrutura do Database Connectivity 1.2.1 java.sql.DriverManager 18.10.2.1 Características das Tags HTML 1.3 Fábrica de 18.10.2.2 Atributos Conexões 1.4 Criar Banco de Dados e Tabelas 18.10.2.3 Textos 1.5 Classes Javabeans – 18.10.2.4 Caracteres Especiais Entidades 1.6 Inserindo Dados 18.10.3 Listas 1.7 Fechando a Conexão 18.10.3.1 Listas Ordenadas 1.8 PreparedStatement ou 18.10.3.2 Listas Não – Ordenadas Statement 1.9 Design Patterns 18.10.3.3 Exemplo de Lista de Conteudo 1.9.1 DAO – Data 18.10.4 Hyperlinks Access Object 1.9.2 Pesquisando 18.10.4.1 TAG <A> 1.9.3 Recurso Relativo 18.10.4.2 Caminho avaçando: O Cursor 1.9.4 Alteração 18.10.4.3 Caminho Absoluto 1.9.5 Exclusão 18.10.4.4 O Atributo Target 2 Introdução a Java 18.10.4.5 Uso com Imagens Enterprise Edition 2.1 Porque 18.10.5 Tabelas Java EE tem sido tão utilizado? 2.2 O que é Java 18.10.5.1 A TAG <TR> Enterprise Edition? 2.3 A plataforma 18.10.5.2 A TAG <TD> Java Enterprise Edition 2.3.1 APIs 18.10.5.3 A TAG <TH> 2.3.2 Contêiners 18.10.5.4 Estrutura Formal das Tabelas 2.3.3 Deployment de aplicações 18.10.6 Imagens 3 Análise de 18.10.7 Formuláriosarquiteturas 3.1 Arquitetura Física 18.10.7.1 A TAG <FORM> e Arquitetura Lógica 3.2 Tipos <INPUT> 18.10.7.2 A TAG de aplicações na WEB 3.3 Arquitetura MVC 18.10.7.3 Campos de Texto para a Web 3.4 Vantagens da arquitetura MVC 18.10.7.4 Campos de Senha 4 Ambiente Seleção 18.10.7.5 Campos dede desenvolvimento 4.1 Tomcat 18.10.7.6 Campos de Escolha 4.1.1 Instalar Java JSE SDK (JDK) 18.10.7.7 Campos de Lista ou Menu 4.1.2 Qual versão Múltiplas Linhas 18.10.7.8 Campos com de JDK utilizar 4.1.2.1 JAVA_HOME 18.10.7.9 Botões 4.2 Instalar Tomcat 18.10.7.10 Upload de Arquivos 4.2.1 Qual versão de Tomcat utilizar 18.10.7.11 Fieldset 4.2.2 Iniciar 18.10.7.12 Label e parar o Tomcat 4.2.2.1 Outras Tags Tomcat como serviço [Windows] 18.10.8 4.2.2.2 Meta informações <meta> 18.10.8.1 Tomcat como processo 4.3 Testar 18.10.8.2 Frames Tomcat 4.4 Criar contexto de desenvolvimento 18.10.8.3 IFrame 4.4.1 Estrutura de diretórios 18.11 Cascading Style Sheet – CSS 4.4.2 Criar contexto de aplicação web 18.11.1 Introdução 4.4.3 Configurar com HTML 18.11.2 Usando CSS contexto: web.xml 4.4.4 Ativar contexto 18.11.2.1 Estilos no Próprio Elemento 4.4.5 Testar contexto 18.11.2.2 Estilos no Escopo da Página 4.5 Bibliotecas Servlet 18.11.2.3 Estilos Definidos em Arquivos Externos 4.6 Testar seus servlets 18.11.3 Declaração de Estilos 4.7 Testar seus 18.11.4 Seletores JSPs 4.8 Logs 18.11.4.1 Seletores de Classes 4.9 Variáveis de Ambiente Seja Todos os direitos reservados a 3Way Networks um Profissional Aprendendo com Profissionais www.3way.com.br Seja um Profissional Aprendendo com Profissionais www.3way.com.br 145 130 145 130 146 131 8 146 131 8 146 131 8 147 132 8 132 147 9 132 147 10 133 148 10 134 149 11 136 151 12 136 151 12 136 151 13 137 152 13 138 153 14 138 153 15 138 153 16 138 153 16 138 153 17 138 153 17 139 154 18 140 155 18 140 155 19 141 156 19 142 157 21 142 157 21 144 159 21 144 159 21 144 159 21 144 159 22 145 161 23 145 161 23 145 161 24 145 161 24 145 161 24 146 162 25 146 162 25 146 162 25 146 162 25 147 163 26 147 163 26 147 163 26 148 164 26 148 164 27 148 164 27 148 164 29 149 165 29 149 165 29 150 166 30 151 167 31 152 168 31 152 168 32 5 1 6
  7. 7. Java WEB Java WEB 18.11.4.2 Sintaxe Ultilizada para Definição de Seletores Sumário 18.11.5 Propriedade de Estilo CSS 18.11.5.1 Configurações Essenciais 1 JDBC 18.11.5.2 Tabela de Unidades 1.1 Banco 18.11.5.3 Fontes de Dados Relacional 1.2 JDBC 18.11.5.4 Cores – Java Database Connectivity 1.2.1 java.sql.DriverManager 18.11.5.5 Bordas 1.3 Fábrica de Conexões 18.11.5.6 Box Model ( Modelo de Caixa ) 1.4 Criar Banco de Dados e Tabelas 18.11.5.7 Aplicando Estilos aos Principais Elementos HTML 1.5 Classes Javabeans Entidades 18.11.5.8 Configurações para–Barra de Rolatem 1.6 Inserindo Dados 18.11.5.9 Listas 1.7 Fechando a Conexão 18.11.5.10 Marcadores Customizados 1.8 PreparedStatement ou Statement 18.11.5.11 Hyperlinks 1.9 Design 18.11.5.12 Botões Patterns 1.9.1 DAO – Data Entrada de Textos 18.11.5.13 Campos paraAccess Object 1.9.2 Pesquisando 18.11.5.14 Caixas de Seleção 1.9.3 Recurso avaçando: O Cursor 18.11.5.15 Manipulando Cursores 1.9.4 Alteração 18.11.5.16 Tabelas 1.9.5 Exclusão 18.12 JavaScript 2 Introdução a Documento HTML 18.12.1 Dentro de umJava Enterprise Edition 2.1 Porque Java EE tem sido 18.12.2 Em um Arquivo Externo tão utilizado? 2.2 O que é Java Eventos 18.12.3 Tratadores deEnterprise Edition? 2.3 A plataforma Java Enterprise Edition 18.12.4 Sintaxe da Linguagem 2.3.1 APIs 18.12.5 Declaração de Variáveis 2.3.2 Contêiners 18.12.6 Palavras Reservadas 2.3.3 Deployment de 18.12.7 Tipos de Dados aplicações 3 Análise de 18.12.8 Operadoresarquiteturas 3.1 Arquitetura Física e Arquitetura 18.12.9 Comandos Condicionais e Laços Lógica 3.2 Tipos 18.12.10 Arraysde aplicações na WEB 3.3 Arquitetura MVC para a Arrays 18.12.10.1 Criação e Inicialização deWeb 3.4 Vantagens da arquitetura MVC 18.12.10.2 Acessando os Elementos do Array 4 Ambiente de desenvolvimento 18.12.10.3 Métodos Especiais 4.1 Tomcat 18.12.11 Funções 4.1.1 Instalar Java JSE 18.12.12 Classes Utilitária SDK (JDK) 4.1.2 Qual 18.12.12.1 Stringversão de JDK utilizar 4.1.2.1 JAVA_HOME 18.12.12.2 Date 4.2 Instalar Tomcat 18.12.13 Objeto Window 4.2.1 Qual versão de Tomcat utilizar 18.12.14 Objeto Document 4.2.2 Iniciar Form Formulário 18.12.15 Objeto e parar o Tomcat 4.2.2.1 Diálogos Tomcat como serviço 18.12.16 [Windows] 4.2.2.2 Tomcat 18.12.17 Status como processo 4.3 Testar Tomcat 18.12.18 Navigator 4.4 Criar contexto de desenvolvimento 18.12.19 History 4.4.1 Estrutura de diretórios 18.13 Controle de Documento Via DOM 4.4.2 Criar contexto de aplicação web 18.13.1 DOM API 4.4.3 Configurar contexto: web.xml 18.13.2 Marcar ou desmacar um conjunto de Checkboxes 4.4.4 Ativar contexto 18.13.3 Evitando Duplo Clique do Usuário 4.4.5 Testar contexto 18.13.4 Validando Campos Obrigatórios 4.5 Bibliotecas Tamanho 18.13.5 Validando o Servlet dos Campos 4.6 Testar 18.13.6 Cookiesseus servlets 4.7 Testar seus 18.14 Dom Style JSPs 4.8 Logs 18.14.1 Categorias do Style Object: 4.9 Variáveis de Ambiente Seja Todos os direitos reservados a 3Way Networks um Profissional Aprendendo com Profissionais www.3way.com.br Seja um Profissional Aprendendo com Profissionais www.3way.com.br 168 152 168 152 168 152 8 168 152 8 170 154 8 172 156 8 158 174 9 159 175 10 160 176 10 161 178 11 161 178 12 162 179 12 163 180 13 164 181 13 164 181 14 164 181 15 164 181 16 166 183 16 167 184 17 167 184 17 167 184 18 167 184 18 167 184 19 168 185 19 168 185 21 169 186 21 170 187 21 171 188 21 172 190 21 173 191 22 173 191 23 173 191 23 176 194 24 177 195 24 177 195 24 182 200 25 186 205 25 188 207 25 189 208 25 193 212 26 193 212 26 194 213 26 194 213 26 195 214 27 195 214 27 197 216 29 198 217 29 198 217 29 199 219 30 199 219 31 201 221 31 201 221 32 6 1 7
  8. 8. Java WEB Java WEB 18.14.1.1 Sumário 18.14.1.2 18.14.1.3 1 18.14.1.4 1.1 18.14.2 1.2 1.2.1 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 3 3.1 3.2 3.3 3.4 4 4.1 4.1.1 4.1.2 4.1.2.1 4.2 4.2.1 4.2.2 4.2.2.1 4.2.2.2 4.3 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.5 4.6 4.7 4.8 4.9 Propriedades Background Propriedades de Borda e Margem Propriedades de Layout JDBC Propriedades de Texto Banco de componentes do Alterando Dados Relacional formulário baseado na seleção de um elemento da lista JDBC – Java Database Connectivity java.sql.DriverManager Fábrica de Conexões Criar Banco de Dados e Tabelas Classes Javabeans – Entidades Inserindo Dados Fechando a Conexão PreparedStatement ou Statement Design Patterns DAO – Data Access Object Pesquisando Recurso avaçando: O Cursor Alteração Exclusão Introdução a Java Enterprise Edition Porque Java EE tem sido tão utilizado? O que é Java Enterprise Edition? A plataforma Java Enterprise Edition APIs Contêiners Deployment de aplicações Análise de arquiteturas Arquitetura Física e Arquitetura Lógica Tipos de aplicações na WEB Arquitetura MVC para a Web Vantagens da arquitetura MVC Ambiente de desenvolvimento Tomcat Instalar Java JSE SDK (JDK) Qual versão de JDK utilizar JAVA_HOME Instalar Tomcat Qual versão de Tomcat utilizar Iniciar e parar o Tomcat [Windows] Tomcat como serviço Tomcat como processo Testar Tomcat Criar contexto de desenvolvimento Estrutura de diretórios Criar contexto de aplicação web Configurar contexto: web.xml Ativar contexto Testar contexto Bibliotecas Servlet Testar seus servlets Testar seus JSPs Logs Variáveis de Ambiente Seja Todos os direitos reservados a 3Way Networks um Profissional Aprendendo com Profissionais www.3way.com.br Seja um Profissional Aprendendo com Profissionais www.3way.com.br 201 221 203 223 206 226 8 207 227 8 208 228 8 8 9 10 10 11 12 12 13 13 14 15 16 16 17 17 18 18 19 19 21 21 21 21 21 22 23 23 24 24 24 25 25 25 25 26 26 26 26 27 27 29 29 29 30 31 31 32 7 1 8
  9. 9. Java WEB Java WEB Sumário 1. JDBC 1.1. Banco de Dados Relacional 1 JDBC 8 O banco de Dados Relacional dados é onde guardamos os dados que pertencem ao 1.1 Banco de 8 O processo de armazenagem nosso sistema. A– maioria dos bancos de dados comerciais hoje em dia são 1.2 JDBC Java Database Connectivity 8 relacionais e derivam de uma estrutura diferente daquela orientada a objetos. e captura de dados em um8 1.2.1 java.sql.DriverManager Assim como o Conexões diz, um banco de dados relacional armazena banco é chamado de 9 1.3 Fábrica de nome já dados como uma série de Dados e Tabelas 1.4 Criar Banco de informações relacionadas. Grupos relacionados são 10 persistência. expressos na forma de tabelas.Entidades 1.5 Classes Javabeans – Cada tabela contém colunas que definem as 10 propriedades de cada Dados de dados armazenados. grupo 1.6 Inserindo 11 As tabelas definidas num banco de dados são geralmente montadas 1.7 Fechando a Conexão 12 com constraints lógicas que servem para preservar a consistência dos dados. 1.8 PreparedStatement ou Statement 12 Uma constraint é uma restrição de um tipo de dado: cada coluna é definida 1.9 Design Patterns 13 para ser de um tipo de dados específico. O sistema automaticamente rejeita a 1.9.1 DAO – Data Access Object 13 inserção de novos dados que não sejam compatíveis com o tipo de dado 1.9.2 Pesquisando 14 definido pela estrutura da tabela. 1.9.3 Recurso avaçando: O Cursor 15 A biblioteca padrão de persistência em banco de dados em Java é a 1.9.4 Alteração 16 JDBC mas já existem diversos projetos do tipo ORM (Object Relational 1.9.5 Exclusão 16 Mapping) que solucionam muitos problemas que a estrutura da api do JDBC (e 2 Introdução a Java Enterprise Edition 17 ODBC) gerou. 2.1 Porque Java EE tem sido tão utilizado? 17 2.2 O que é Java Enterprise Edition? 18 1.2. JDBC A plataforma Java Enterprise Edition – Java Database Connectivity 2.3 18 2.3.1 Java Database Connectivity ou JDBC é um conjunto de classes e interfaces (API) escritas em Java que faz o APIs 19 envio de instruções SQL para qualquer banco de dados relacional. Por meio desta os desenvolvedores podem 2.3.2 Contêiners 19 acessar bases de dados de aplicações 2.3.3 Deployment não importando quem seja seu fabricante; os desenvolvedores de um JDBC provêem a 21 implementação para arquiteturas definidas nesta API, fornecendo o mesmo grupo de funcionalidades 21 ao 3 Análise de as interfaces desenvolvedor do sistema. e Arquitetura Lógica 3.1 Arquitetura Física 21 3.2 Tipos de aplicações na WEB 21 As seguintes classes estão na API JDBC: 3.3 Arquitetura MVC para a Web 21 3.4 Vantagens da arquitetura MVC 22 - java.sql.Connection – Representa a conexão com o banco de dados. Encapsula os detalhes de como a 4 Ambiente de desenvolvimento 23 comunicação com o servidor é realizada. 4.1 Tomcat 23 o 4.1.1 - java.sql.DriverManager – Gerencia os drivers JDBC utilizados pela aplicação. Em conjunto com24 Instalar Java JSE SDK (JDK) 4.1.2 endereçoversão de JDK utilizar fornecer objetos de conexão. Qual e a autenticação, pode 24 - java.sql.Statement – Fornece meios ao desenvolvedor para que se possa executar comandos SQL. 4.1.2.1 JAVA_HOME 24 - java.sql.ResultSet – Representa o resultado de um comando SQL. Estes objetos normalmente são 4.2 Instalar Tomcat 25 4.2.1 retornados por métodos. utilizar Qual versão de Tomcat 25 4.2.2 Iniciar e parar o Tomcat 25 1.2.1. java.sql.DriverManager como serviço 4.2.2.1 [Windows] Tomcat 25 4.2.2.2 Utilizando esta classe, o desenvolvedor pode retornar um objeto de conexão que pode ser usado para Tomcat como processo 26 executar tarefas relativas ao banco de dados. Dois passos são necessários para tal: 4.3 Testar Tomcat 26 4.4 Criar contexto de desenvolvimento 26 4.4.1 - Primeiro, o driver JDBC deve estar registrado com DriverManager. Isto pode ser feito utilizando o método Estrutura de diretórios 26 Class.forName que carrega a classe do driver para a memória. 4.4.2 Criar contexto de aplicação web 27 4.4.3 - Segundo, utilizando o método getConnection(), mediante informação de uma URL, assim como a senha e Configurar contexto: web.xml 27 o nome do usuário autenticado no banco de dados. A URL deve seguir a sintaxe requisitada pela 4.4.4 Ativar contexto 29 4.4.5 implementação do banco de dados. Testar contexto 29 4.5 Bibliotecas Servlet 29 Abaixo vemos um exemplo de como se obtém uma conexão com um banco de dados JavaDB (Derby). 4.6 Testar seus servlets 30 Novamente, a URL e o driver específicos para a implementação são utilizados. Para outros bancos de dados, 4.7 Testar seus JSPs 31 verifique a documentação fornecida. 4.8 Logs 31 4.9 Variáveis de Ambiente 32 Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 8 1 9
  10. 10. Java WEB Java WEB import java.sql.*; Sumário public class JDBCExemplo { 1 JDBC 8 static String url = "jdbc:derby://localhost:1527/3way"; 1.1 Banco de String usuario = "3way"; 8 static Dados Relacional 1.2 JDBC – Java Database Connectivity 8 static String senha = "123"; public static void 1.2.1 java.sql.DriverManager main(String[] args) { 8 try{ Conexões 1.3 Fábrica de 9 Class.forName("org.apache.derby.jdbc.ClientDriver"); 1.4 Criar Banco de Dados e Tabelas 10 Connection con = DriverManager.getConnection(url,usuario,senha); 1.5 Classes Javabeans – Entidades 10 System.out.println("Conectado!"); 1.6 Inserindo Dados 11 con.close(); 1.7 Fechando a Conexão 12 }catch(ClassNotFoundException e) { 1.8 PreparedStatement ou Statement 12 e.printStackTrace(); 1.9 Design Patterns 13 }catch(SQLException e) 1.9.1 DAO – Data Access Object 13 { 1.9.2 Pesquisando 14 e.printStackTrace(); 1.9.3 Recurso avaçando: O Cursor 15 } } 1.9.4 Alteração 16 } Exclusão 1.9.5 16 2 Introdução a Java Enterprise Edition 17 Teoricamente bastatem sido tão utilizado?que escrevemos para mudar de um banco para outro. Porém não 2.1 Porque Java EE alterar as três Strings 17 é tudo tão simples assim. DependeEdition? padrão SQL o banco suporta. Isso só causa dor de cabeça e existem de qual 2.2 O que é Java Enterprise 18 certos arcabouços que resolvem isso facilmente, como é o caso do Hibernate (www.hibernate.org) e do JPA. 2.3 A plataforma Java Enterprise Edition 18 2.3.1 APIs 19 2.3.2 Contêiners 19 1.3 Fábrica de Conexões 2.3.3 Em Deployment de aplicações nossa aplicação, gostaríamos de ter o controle sobre a construção dos 21 determinado momento de 3 Análiseclasse. Muita coisa pode ser feita através do construtor, como saber quantos objetos foram de arquiteturas 21 objetos da nossa 3.1 Arquitetura log sobre essas instanciações. As vezes também queremos controlar um processo muito 21 instanciados ou fazer o Física e Arquitetura Lógica 3.2 21 repetitivo e Tipos de aplicações na WEB conexão com o banco de dados. Tomemos como exemplo a classe a seguir trabalhoso, como abrir uma 3.3 seria responsável por abrir uma Web Arquitetura MVC para a conexão com o banco: 21 que 3.4 Vantagens da arquitetura MVC 22 import java.sql.*; 4 Ambiente de desenvolvimento 23 4.1 Tomcat 23 4.1.1 public class JSE SDK (JDK) Instalar Java FabricaConexao { 24 4.1.2 Qual versão de JDK utilizar = "jdbc:derby://localhost:1527/3way"; 24 static String url 4.1.2.1 JAVA_HOME String usuario = "3way"; 24 static 4.2 Instalar Tomcat 25 static String senha = "123"; 4.2.1 Qual versão de Tomcat utilizar 25 public static Connection getConexao() throws SQLException{ 4.2.2 Iniciar e parar o Tomcat 25 4.2.2.1 [Windows] Tomcat como serviço 25 try{ 4.2.2.2 Tomcat como processo 26 Class.forName("org.apache.derby.jdbc.ClientDriver"); 4.3 Testar Tomcat 26 return DriverManager.getConnection(url,usuario,senha); }catch(ClassNotFoundException e) 4.4 Criar contexto de desenvolvimento 26 4.4.1 Estrutura de{diretórios 26 throw web SQLException(e.getMessage()); new 4.4.2 Criar contexto de aplicação 27 } 4.4.3 Configurar contexto: web.xml 27 } 4.4.4 } Ativar contexto 29 4.4.5 Testar contexto 29 4.5 Bibliotecas Servlet aviso na nossa aplicação, notificando todos os programadores ao adquirir uma 29 Poderíamos colocar um 4.6 30 conexão: Testar seus servlets 4.7 Testar seus JSPs 31 4.8 Logs 31 Connection con = FabricaConexao.getConexao(); 4.9 Variáveis de Ambiente 32 Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 9 1 10
  11. 11. Java WEB Java WEB Podemos perceber que o método getConexao() é uma fábrica de conexões, isto é, ele fabrica conexões para Sumário nós, não importando de onde elas vieram. Portanto, nada mais natural do que chamar a classe de FabricaConexao 1 8 e o método JDBC de getConexao(). 1.1 Banco de Dados Relacional 8 1.2 Criar Banco de Dados e Tabelas JDBC – Java Database Connectivity 8 1.4 1.2.1 Devemos criar um banco de dados agenda. Para criá-lo você deve editar a url de conexão do banco para: 8 java.sql.DriverManager 1.3 Fábrica de Conexões 9 1.4 Criar Banco de url = e"jdbc:derby://localhost:1527/agenda;create=true"; Dados Tabelas 10 static String 1.5 Classes Javabeans – Entidades 10 1.6 Inserindo Dados 11 A seguinte tabela contatos será usada nos exemplos desse capítulo: 1.7 Fechando a Conexão 12 1.8 PreparedStatement ou Statement 12 CREATE TABLE contatos ( 1.9 Design Patterns NOT NULL GENERATED ALWAYS AS IDENTITY, 13 ID BIGINT 1.9.1 DAO – Data Access Object 13 NOME VARCHAR(255), 1.9.2 Pesquisando 14 EMAIL VARCHAR(255), 1.9.3 Recurso avaçando: O Cursor 15 ENDERECO VARCHAR(255), 1.9.4 Alteração 16 PRIMARY KEY(id) 1.9.5 ); Exclusão 16 2 Introdução a Java Enterprise Edition 17 2.1 Porque Java EE tem sido tão utilizado? 17 1.5 Classes Javabeans – Entidades 2.2 O que é Java Enterprise Edition? 18 No banco de dados relacional, é comum representar um contato (entidade) em uma tabela de contatos. 2.3 A plataforma Java Enterprise Edition 18 Agora iremos utilizar: 2.3.1 APIs 19 - uma classe com métodos do tipo get e set para cada um de seus parâmetros, que representa algum 2.3.2 Contêiners 19 2.3.3 objeto. Deployment de aplicações 21 - uma classe com construtor sem argumentos que representa uma coleção de objetos. 3 Análise de arquiteturas 21 3.1 Arquitetura Física e Arquitetura Lógica 21 A seguir, você vê um exemplo de uma classe javabean que seria equivalente 3.2 Tipos de aplicações na WEB 21 ao nosso modelo de entidadepara a Web dados: 3.3 Arquitetura MVC do banco de 21 JavabBeans são 22 3.4 Vantagens da arquitetura MVC public class Contato { classes que possuem o 4 Ambiente de desenvolvimento 23 4.1 Tomcat construtor sem 23 private int id; 4.1.1 Instalar Java JSE SDK (JDK) argumentos e 24 private JDK utilizar 4.1.2 Qual versão deString nome; 24 métodos de acesso do 4.1.2.1 JAVA_HOME 24 private String endereco; tipo get e set. 25 4.2 Instalar Tomcat 4.2.1 Qual versão deString utilizar 25 private Tomcat email; 4.2.2 Iniciar e parar o Tomcat 25 4.2.2.1 [Windows] TomcatgetId() { 25 public int como serviço return id; 4.2.2.2 Tomcat como processo 26 } Tomcat 4.3 Testar 26 public void setId(int id) { 4.4 Criar contexto de desenvolvimento 26 this.id = id; 4.4.1 Estrutura de diretórios 26 } 4.4.2 Criar contexto de aplicação web 27 public String getNome() { return nome; 4.4.3 Configurar contexto: web.xml 27 } contexto 4.4.4 Ativar 29 public void setNome(String nome) { 4.4.5 Testar contexto 29 this.nome = nome; 4.5 Bibliotecas Servlet 29 } 4.6 Testar seus servlets getEndereco() { 30 public String return endereco; 4.7 Testar seus JSPs 31 4.8 Logs} 31 4.9 Variáveis de Ambiente 32 Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 10 1 11
  12. 12. Java WEB Java WEB Sumário public void setEndereco(String endereco) { this.endereco = endereco; } JDBC public String getEmail() { Banco de Dados Relacional return email; JDBC – Java Database Connectivity } public void setEmail(String email) { java.sql.DriverManager this.email = email; Fábrica de Conexões }Banco de Dados e Tabelas Criar 1 8 1.1 8 1.2 8 1.2.1 8 1.3 9 1.4 10 } 1.5 Classes Javabeans – Entidades 10 1.6 Inserindo Dados 11 1.6 Inserindo Dados 1.7 Fechando a Conexão 12 Para inserir dados em uma Statementum banco de dados entidade relacional basta usar a cláusula INSERT. 1.8 PreparedStatement ou tabela de 12 Precisamos Design Patterns os campos que desejamos atualizar e os valores. especificar quais 1.9 13 1.9.1 Primeiro – Data Access Object DAO o código SQL: 13 1.9.2 Pesquisando 14 String sql = "insert into contatos (nome,email,endereco) " 1.9.3 Recurso avaçando: O Cursor 15 + "values ('"+ nome +"','" + email + "','" + endereco +"')"; 1.9.4 Alteração 16 1.9.5 Exclusão 16 O exemplo acima possui dois pontos negativos que são importantíssimos. O primeiro é que o programador 2 Introdução a Java Enterprise Edition 17 que não escreveu o código original não consegue bater o olho e entender o que está escrito. O que o código acima 2.1 Porque Java EE tem sido tão utilizado? 17 faz? Lendo rapidamente fica difícil. Mais difícil ainda é saber se faltou uma vírgula, um fecha parênteses talvez? 2.2 O que é Java Enterprise Edition? 18 Outroplataformaé o clássico SQLEdition no 2.3 A problema Java Enterprise Injection. O que acontece quando o contato a ser adicionado possui 18 nome uma aspas simples? O código sql se quebra todo e pára de funcionar ou o usuário final não é capaz de alterar 2.3.1 APIs 19 seu código SQL para executar aquilo que ele desejam, tudo isso porque escolhemos aquela linha de código e não 2.3.2 Contêiners 19 fizemos o escape de caracteres especiais. 2.3.3 Deployment de aplicações 21 Por Análise de arquiteturas iremos usar código SQL como mostrado anteriormente... vamos imaginar algo esses dois motivos não 3 21 mais genérico e um pouco mais Arquitetura Lógica interessante: 3.1 Arquitetura Física e 21 3.2 Tipos de aplicações na WEB 21 String sql = "insert into contatos (nome,email,endereco) values (?,?,?)"; 3.3 Arquitetura MVC para a Web 21 3.4 Vantagens da arquitetura MVC 22 Perceba que não colocamos os pontos de interrogação de brincadeira, e sim porque realmente não 4 Ambiente de desenvolvimento 23 sabemos o que desejamos inserir. Estamos interessados em executar aquele código, mas não sabemos ainda quais 4.1 Tomcat 23 são os parâmetros que iremos utilizar nesse código SQL que será executado, chamado de statement. 4.1.1 Instalar Java JSE SDK (JDK) 24 4.1.2 As cláusulas são de JDK utilizar um banco de dados através da interface PreparedStatement. Para receber Qual versão executadas em 24 um PreparedStatement relativo à conexão, basta chamar o método prepareStatement, passando como argumento 4.1.2.1 JAVA_HOME 24 o comando SQL com os valores vindos de variáveis preenchidos com uma interrogação. 4.2 Instalar Tomcat 25 4.2.1 Qual versão de Tomcat utilizar 25 PreparedStatement stmt = con.prepareStatement( 4.2.2 Iniciar e parar o Tomcat 25 "insert into contatos(nome,email,endereco) values (?,?,?)"); 4.2.2.1 [Windows] Tomcat como serviço 25 4.2.2.2 Tomcat como processo 26 Logo em seguida, chamamos o método setString do PreparedStatement para preencher os valores, 4.3 Testar Tomcat 26 passando a posição (começando em 1) da interrogação no SQL e o valor que deve ser colocado. 4.4 Criar contexto de desenvolvimento 26 4.4.1 Estrutura de diretórios 26 //preenche os valores 4.4.2 stmt.setString(1, "3Way web Criar contexto de aplicação Networks"); 27 4.4.3 stmt.setString(2, "contato@3way.com.br"); Configurar contexto: web.xml 27 stmt.setString(3, "Av. 4ª Radial, 1952 Milão Shopping Center"); 4.4.4 Ativar contexto 29 4.4.5 Testar contexto 29 4.5 29 Por Bibliotecas Servlet ao método execute que executa o comando SQL. fim, uma chamada 4.6 Testar seus servlets 30 stmt.execute(); 4.7 Testar seus JSPs 31 4.8 Logs 31 4.9 Variáveis de Ambiente 32 Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 11 1 12
  13. 13. Java WEB Sumário 1 1.1 1.2 1.2.1 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 3 3.1 3.2 3.3 3.4 4 4.1 4.1.1 4.1.2 4.1.2.1 4.2 4.2.1 4.2.2 4.2.2.1 4.2.2.2 4.3 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.5 4.6 4.7 4.8 4.9 JDBC Banco de Dados Relacional JDBC – Java Database Connectivity java.sql.DriverManager Fábrica de Conexões Criar Banco de Dados e Tabelas Classes Javabeans – Entidades Inserindo Dados Fechando a Conexão PreparedStatement ou Statement Design Patterns DAO – Data Access Object Pesquisando Recurso avaçando: O Cursor Alteração Exclusão Introdução a Java Enterprise Edition Porque Java EE tem sido tão utilizado? O que é Java Enterprise Edition? A plataforma Java Enterprise Edition APIs Contêiners Deployment de aplicações Análise de arquiteturas Arquitetura Física e Arquitetura Lógica Tipos de aplicações na WEB Arquitetura MVC para a Web Vantagens da arquitetura MVC Ambiente de desenvolvimento Tomcat Instalar Java JSE SDK (JDK) Qual versão de JDK utilizar JAVA_HOME Instalar Tomcat Qual versão de Tomcat utilizar Iniciar e parar o Tomcat [Windows] Tomcat como serviço Tomcat como processo Testar Tomcat Criar contexto de desenvolvimento Estrutura de diretórios Criar contexto de aplicação web Configurar contexto: web.xml Ativar contexto Testar contexto Bibliotecas Servlet Testar seus servlets Testar seus JSPs Logs Variáveis de Ambiente Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais www.3way.com.br 8 8 8 8 9 10 10 11 12 12 13 13 14 15 16 16 17 17 18 18 19 19 21 21 21 21 21 22 23 23 24 24 24 25 25 25 25 26 26 26 26 27 27 29 29 29 30 31 31 32 1 13
  14. 14. Java WEB Java WEB Agora imagine todo esse processo sendo escrito toda vez que desejar inserir algo no banco? Ainda não Sumário consegue visualizar o quão destrutivo isso pode ser? Veja o exemplo abaixo, que abre uma conexão e insere um 1 JDBC 8 contato no banco: 1.1 Banco de Dados Relacional 8 public – Java Database Connectivity 1.2 JDBC class JDBCInserir { 8 public static 1.2.1 java.sql.DriverManagervoid main(String[] args) throws SQLException { 8 try { 1.3 Fábrica de Conexões 9 Connection con = ConnectionFactory.getConnection(); 1.4 Criar Banco de Dados e Tabelas 10 1.5 Classes Javabeans – // cria um preparedStatement Entidades 10 1.6 Inserindo Dados 11 PreparedStatement stmt = (PreparedStatement) con.prepareStatement("insert into contatos " 1.7 Fechando a Conexão 12 + Statement 1.8 PreparedStatement ou " (nome,email,endereco) values (?,?,?)"); 12 //preenche os valores 1.9 Design Patterns 13 stmt.setString(1, "3Way Networks"); 1.9.1 DAO – Data Access Object 13 stmt.setString(2, "contato@3way.com.br"); 1.9.2 Pesquisando 14 stmt.setString(3, "Av. 4ª Radial, 1952 Shopping Milão"); 1.9.3 Recurso avaçando: O Cursor 15 //executa 1.9.4 Alteração 16 stmt.execute(); 1.9.5 Exclusão 16 stmt.close(); 2 Introdução a Java Enterprise Edition 17 System.out.println("Gravado!"); 2.1 Porque Java EE tem con.close(); sido tão utilizado? 17 2.2 O que é Java Enterprise Edition? 18 }catch (SQLException e) { 2.3 A plataforma Java Enterprise Edition 18 e.printStackTrace(); 2.3.1 APIs 19 }finally{ 2.3.2 Contêiners 19 if (con != null){ 2.3.3 Deployment de aplicações 21 con.close(); 3 Análise de arquiteturas stmt.close(); 21 } 3.1 Arquitetura Física e Arquitetura Lógica 21 } 3.2 Tipos de aplicações na WEB 21 } 3.3 Arquitetura MVC para a Web 21 } 3.4 Vantagens da arquitetura MVC 22 4 Ambiente de desenvolvimento 23 1.7 Fechando a Conexão 4.1 Tomcat 23 4.1.1 O mais praticado é SDK (JDK) alguma API de ORM como o Hibernate ou JPA, porém aqueles que ainda Instalar Java JSE o uso de 24 insistem no Qual de JDBC devem prestar atenção no momento de fechar a conexão. O exemplo dado acima fecha a uso versão de JDK utilizar 4.1.2 24 conexão caso algum erro ocorra no momento de inserir algum dado no banco de 4.1.2.1 JAVA_HOME 24 dados. O comum é fechar a conexão em um bloco finally. 4.2 Instalar Tomcat 25 4.2.1 Qual versão de Tomcat utilizar 25 Usando Statements, você 1.8 PreparedStatement ou Statement 4.2.2 Iniciar e parar o Tomcat terá que fazer muitas 25 4.2.2.1 Ao invés de usar o PreparedStatement, você pode usar uma interface [Windows] Tomcat como serviço 25 concatenações, já com 26 mais simples chamada Statement, que simplesmente executa uma cláusula SQL 4.2.2.2 Tomcat como processo PreparedStatements, isso no método execute: 4.3 Testar Tomcat 26 4.4 Criar contexto de desenvolvimento fica mais limpo e fácil. 26 4.4.1 Statement stmt = con.createStatement(); Estrutura de diretórios 26 stmt.execute( de aplicação web 4.4.2 Criar contexto 27 "insert into contato (nome, email, endereco) values" 4.4.3 Configurar contexto: web.xml 27 +"('Nome','Email','Endereco')"); 4.4.4 stmt.close(); Ativar contexto 29 4.4.5 Testar contexto 29 4.5 Bibliotecas Servlet 29 É melhor usar a classe PreparedStatement que é mais rápida que 4.6 Testar o código muito mais limpo. Geralmente, seus comandos SQL 30 Statement e deixaseus servlets 4.7 Testar seus JSPsvariáveis do programa Java. 31 conterão valores vindos de 4.8 Logs 31 4.9 Variáveis de Ambiente 32 Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 12 1 14
  15. 15. Java WEB Java WEB Sumário 1.9 Design Patterns Orientação à objetos resolve as grandes dores de cabeças que tínhamos na programação procedural, 1 8 restringindoJDBC e centralizando responsabilidades. Mas algumas coisas não podemos simplesmente resolver com 1.1 Banco de Dados Relacional 8 orientação à objetos pois não existe palavra chave para uma funcionalidade tão específica. Alguns desses pequenos 1.2 JDBC – Java Database Connectivity que as pessoas desenvolvem uma solução padrão para o mesmo. 8 problemas aparecem com tamanha freqüência 1.2.1isso, ao nos defrontarmos com um desses problemas clássicos, podemos rapidamente implementar essa java.sql.DriverManager 8 Com 1.3 Fábrica de Conexões 9 solução genérica com uma ou outra modificação. Essa solução padrão tem o nome de Design Pattern (padrão de 1.4 Criar Banco de Dados e Tabelas 10 projeto). 1.5 Classes conhecido Entidades 10 O livro maisJavabeans –de Design Patterns foi escrito em 1995 e tem trechos 1.6 Inserindo Dados A melhor maneira 11 de código em C++ e Smalltalk. Mas o que realmente importa são os conceitos e os 1.7 Fechando adesse livro independente de qualquer linguagem. Além de Conexão 12 diagramas que fazem para aprender o que é 1.8 o livroPreparedStatement ou Statement 12 tudo, é de leitura agradável: Design Patterns, Erich Gamma et al. um Design Pattern é13 1.9 Design Patterns vendo como surgiu a13 1.9.1 DAO – Data Access Object DAO – Data Access Object 1.9.1 1.9.2 Pesquisando necessidade do 14 Já foi possível sentir que colocar código SQL dentro de suas classes de lógica 1.9.3 Recurso avaçando: O Cursor 15 é algo nem um pouco elegante e muito menos viável quando você precisa manter o mesmo. 1.9.4 Alteração 16 seu código. 1.9.5 Exclusão 16 A idéia a seguir é remover o código de acesso ao banco de dados de suas 2 Introdução a Java Enterprise Edition 17 classes de lógica e colocá-lo em uma classe responsável pelo acesso ao mesmo. 2.1 Porque Java EE tem sido tão utilizado? 17 Assim o código de acesso ao banco de dados fica em um lugar só, 2.2 O que é Java Enterprise Edition? 18 conseqüentemente, mais fácil dar manutenção ao mesmo. 2.3 A plataforma Java Enterprise Edition 18 Que tal seria se pudéssemos chamar um método adiciona que adiciona um 2.3.1 APIs 19 Contato ao banco? 2.3.2 Contêiners 19 Em outras palavras quero que o código a seguir funcione: 2.3.3 Deployment de aplicações 21 3 Análise de arquiteturas 21 // adiciona o os dados no banco 3.1 Arquitetura = new Misterio(); 21 Misterio bd Física e Arquitetura Lógica 3.2 Tipos de aplicaçõesnome”, “meu email”, “meu endereço”); na WEB 21 bd.adiciona(“meu 3.3 Arquitetura MVC para a Web 21 3.4 Vantagens da arquitetura MVC 22 Mas... Java é orientado a Strings? Vamos tentar novamente: em outras palavras quero que o código a seguir 4 Ambiente de desenvolvimento 23 funcione: 4.1 Tomcat 23 4.1.1 // Instalar Javaum contato no banco 24 adiciona JSE SDK (JDK) 4.1.2 Misterio bd = new utilizar Qual versão de JDK Misterio(); 24 // JAVA_HOME método muito mais elegante 4.1.2.1 24 bd.adiciona(contato); 4.2 Instalar Tomcat 25 4.2.1 Qual versão de Tomcat utilizar 25 Tentaremos chegar ao código anterior: seria muito melhor e mais elegante poder chamar um único método 4.2.2 Iniciar e parar o Tomcat 25 responsável[Windows] Tomcat como serviço pela inclusão, certo? 4.2.2.1 25 4.2.2.2 Tomcat como processo 26 public class TestaInsere { 4.3 Testar Tomcat 26 4.4 Criar contexto de desenvolvimento 26 public static void main(String[] args) { 4.4.1 Estrutura de diretórios 26 try { 4.4.2 Criar contexto de aplicação web 27 4.4.3 Configurar contexto: web.xml 27 //pronto para gravar 4.4.4 Ativar contexto 29 Contato contato = new Contato(); 4.4.5 Testar contexto 29 contato.setNome("3Way"); 4.5 Bibliotecas Servlet contato.setEmail("3way@3way.com.br"); 29 contato.setEndereco("Av. 4ª Radial, Goiânia-GO"); 4.6 Testar seus servlets 30 4.7 Testar seus JSPs 31 //grave nessa conexão!!! 4.8 Logs 31 ContatoDAO dao = new ContatoDAO(); 4.9 Variáveis de Ambiente 32 Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 13 1 15
  16. 16. Java WEB Java WEB Sumário //método elegante dao.adiciona(contato); 1 JDBC 8 System.out.println("Gravado!"); 1.1 Banco de Dados Relacional 8 1.2 JDBC – Java } catch Connectivity Database (SQLException e) { 8 e.printStackTrace(); 1.2.1 java.sql.DriverManager 8 } 1.3 Fábrica de Conexões 9 } 1.4 Criar Banco de Dados e Tabelas 10 } 1.5 Classes Javabeans – Entidades 10 1.6 Inserindo Dados 11 O código anterior já mostra o poder que iremos alcançar, através de uma única classe seremos capazes de 1.7 Fechando a Conexão 12 acessar o banco de dados e, mais ainda, somente através dessa classe será possível acessar os dados. Esta idéia 1.8 PreparedStatement ou Statement 12 inocente a primeira vista, é capaz de isolar todo o acesso a banco em classes bem simples, cuja instância é um 1.9 Design Patterns 13 objeto responsável por acessar os dados. Da responsabilidade deste objeto surgiu o nome de Data Access Object 1.9.1 DAO – Data Access Object 13 ou simplesmente DAO, um dos mais famosos padrões de desenvolvimento. 1.9.2 Pesquisando 14 O que falta para o código acima funcionar é uma classe chamada ContatoDAO com um método chamado 1.9.3 Recurso avaçando: O Cursor 15 adiciona. Vamos criar uma classe que se conecta ao banco de dados ao ser construída uma instância da mesma: 1.9.4 Alteração 16 1.9.5 import java.sql.Connection; Exclusão 16 2 Introdução a Java Enterprise Edition 17 import java.sql.SQLException; 2.1 Porque Java EE tem sido tão utilizado? 17 import conexao.FabricaConexao; 2.2 O que é Java Enterprise Edition? 18 public class ContatoDAO {Edition 2.3 A plataforma Java Enterprise 18 2.3.1 APIsprivate Connection conexao; 19 public ContatoDAO() throws SQLException { 2.3.2 Contêiners this.conexao = FabricaConexao.getConexao(); 19 2.3.3 Deployment de aplicações 21 } 3 21 } Análise de arquiteturas 3.1 Arquitetura Física e Arquitetura Lógica 21 Agora que todo ContatoDAO possui uma conexão com o banco podemos focar no método adiciona, que 3.2 Tipos de aplicações na WEB 21 recebe um Contato como argumento e é responsável por adicionar o mesmo através de código sql. 3.3 Arquitetura MVC para a Web 21 3.4 Vantagens da arquitetura MVC 22 public void adiciona(Contato contato) throws SQLException { 4 Ambiente de desenvolvimento 23 4.1 Tomcat 23 PreparedStatement stmt = (PreparedStatement) 4.1.1 Instalar Java JSE SDK (JDK) 24 this.conexao.prepareStatement( 4.1.2 Qual versão"insert into contatos(nome,email,endereco) values (?, ?, ?)"); de JDK utilizar 24 4.1.2.1 JAVA_HOME 24 stmt.setString(1,contato.getNome()); stmt.setString(2,contato.getEmail()); 4.2 Instalar Tomcat 25 stmt.setString(3,contato.getEndereco()); 4.2.1 Qual versão de Tomcat utilizar 25 stmt.execute(); 4.2.2 Iniciar e parar o Tomcat 25 stmt.close(); 4.2.2.1 } [Windows] Tomcat como serviço 25 4.2.2.2 Tomcat como processo 26 4.3 Testar 26 1.9.2 Pesquisando Tomcat 4.4 Criar contexto de desenvolvimento 26 Para pesquisar também utilizamos a interface PreparedStatement, de forma que o método executeQuery 4.4.1 todos os contatos no exemplo a seguir. O objeto retornado é do tipo ResultSet que permite navegar por Estrutura de diretórios 26 retorna 4.4.2 Criar contexto de aplicação web 27 seus registros através do método next(). Esse método irá retornar false quando chegar ao fim da pesquisa, portanto 4.4.3normalmente utilizado paraweb.xml loop nos registros como no exemplo a seguir: Configurar contexto: fazer um 27 ele é 4.4.4 Ativar contexto 29 pega a conexão e o Statement 4.4.5 // Testar contexto 29 Connection con = ConnectionFactory.getConnection(); 4.5 Bibliotecas Servlet 29 PreparedStatement stmt = con.prepareStatement("select * from contatos"); 4.6 Testar seus servlets 30 4.7 Testar seusum select JSPs 31 // executa 4.8 Logs 31 ResultSet rs = stmt.executeQuery(); 4.9 Variáveis de Ambiente 32 Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 14 1 16
  17. 17. Java WEB Java WEB // Sumário itera no ResultSet while (rs.next()) { } JDBC rs.close(); Banco de Dados stmt.close(); Relacional JDBC – Java con.close();Database Connectivity 1 8 1.1 8 1.2 8 1.2.1 java.sql.DriverManager 8 1.3 Fábrica de Conexões 9 Para retornar o valor de uma coluna no banco de dados basta chamar um dos métodos get do ResultSet, 1.4 Criar mais comum: getString(). 10 dentre os quais, o Banco de Dados e Tabelas 1.5 Classes Javabeans – Entidades 10 // Inserindo conexão e o Statement pega a Dados 1.6 11 Connection acon = ConnectionFactory.getConnection(); 1.7 Fechando Conexão 12 PreparedStatement stmt = con.prepareStatement("select * from contatos"); 1.8 PreparedStatement ou Statement 12 1.9 13 // Design Patterns executa um select 1.9.1 ResultSet rsAccess Object DAO – Data = stmt.executeQuery(); 13 1.9.2 Pesquisando 14 // Recurso no ResultSet itera avaçando: O Cursor 1.9.3 15 while (rs.next()) { 1.9.4 Alteração 16 System.out.println(rs.getString("nome") + " :: " + rs.getString("email")); 1.9.5 } Exclusão 16 2 Introdução a Java Enterprise Edition 17 stmt.close(); con.close(); EE tem sido tão utilizado? 2.1 Porque Java 17 2.2 O que é Java Enterprise Edition? 18 2.3 A plataforma Java Enterprise Edition 18 1.9.3 Recurso avaçando: O Cursor 2.3.1 APIs 19 Assim como o cursor do banco de dados, só é possível mover para o próximo registro. Para permitir um 2.3.2 Contêiners 19 processo de leitura parade aplicações 2.3.3 Deployment trás é necessário especificar na abertura do ResultSet que tal cursor deve ser utilizado. 21 Mas, novamente, podemos aplicar as idéias de DAO e criar um método getLista() no nosso ContatoDAO: 3 Análise de arquiteturas 21 3.1 Arquitetura Física e Arquitetura Lógica 21 PreparedStatement stmt = this.conexao.prepareStatement( 3.2 Tipos de aplicações na WEB 21 "select * from contatos"); 3.3 Arquitetura MVC para a Web 21 ResultSet rs = stmt.executeQuery(); 3.4 Vantagens da arquitetura MVC 22 List<Contato>desenvolvimento 4 Ambiente de contatos = new ArrayList<Contato>(); 23 while (rs.next()) { 4.1 Tomcat 23 Contato contato = new Contato(); 4.1.1 Instalar Java JSE SDK (JDK) 24 contato.setNome(rs.getString(“nome”)); 4.1.2 Qual versão de JDK utilizar 24 contato.setEmail(rs.getString(“email”)); 4.1.2.1 JAVA_HOME 24 contato.setEndereco(rs.getString(“endereco”)); 4.2 Instalar Tomcat 25 contatos.add(contato); 4.2.1 } Qual versão de Tomcat utilizar 25 4.2.2 Iniciar e parar o Tomcat 25 4.2.2.1 rs.close(); Tomcat como serviço [Windows] 25 stmt.close(); 4.2.2.2 return contatos; Tomcat como processo 26 4.3 Testar Tomcat 26 4.4 Criar contexto de desenvolvimento 26 Crie o método getLista na classe ContatoDAO. 4.4.1 Estrutura de diretórios 26 4.4.2 public contexto de aplicação web Criar List<Contato> getLista() throws SQLException { 27 4.4.3 Configurar contexto: web.xml 27 PreparedStatement stmt = (PreparedStatement)this.conexao.prepareStatement 4.4.4 Ativar contexto 29 ("select 4.4.5 Testar contexto * from contatos"); 29 ResultSet rs = stmt.executeQuery(); 4.5 Bibliotecas Servlet 29 4.6 Testar seus servlets contatos = new ArrayList<Contato>(); 30 List<Contato> 4.7 Testar seus JSPs 31 while (rs.next()) { Contato contato = new Contato(); 4.8 Logs 31 contato.setNome(rs.getString("nome")); 4.9 Variáveis de Ambiente 32 Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 15 1 17
  18. 18. Java WEB Sumário 1 1.1 1.2 1.2.1 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 3 3.1 3.2 3.3 3.4 4 4.1 4.1.1 4.1.2 4.1.2.1 4.2 4.2.1 4.2.2 4.2.2.1 4.2.2.2 4.3 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.5 4.6 4.7 4.8 4.9 JDBC Banco de Dados Relacional JDBC – Java Database Connectivity java.sql.DriverManager Fábrica de Conexões Criar Banco de Dados e Tabelas Classes Javabeans – Entidades Inserindo Dados Fechando a Conexão PreparedStatement ou Statement Design Patterns DAO – Data Access Object Pesquisando Recurso avaçando: O Cursor Alteração Exclusão Introdução a Java Enterprise Edition Porque Java EE tem sido tão utilizado? O que é Java Enterprise Edition? A plataforma Java Enterprise Edition APIs Contêiners Deployment de aplicações Análise de arquiteturas Arquitetura Física e Arquitetura Lógica Tipos de aplicações na WEB Arquitetura MVC para a Web Vantagens da arquitetura MVC Ambiente de desenvolvimento Tomcat Instalar Java JSE SDK (JDK) Qual versão de JDK utilizar JAVA_HOME Instalar Tomcat Qual versão de Tomcat utilizar Iniciar e parar o Tomcat [Windows] Tomcat como serviço Tomcat como processo Testar Tomcat Criar contexto de desenvolvimento Estrutura de diretórios Criar contexto de aplicação web Configurar contexto: web.xml Ativar contexto Testar contexto Bibliotecas Servlet Testar seus servlets Testar seus JSPs Logs Variáveis de Ambiente Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais www.3way.com.br 8 8 8 8 9 10 10 11 12 12 13 13 14 15 16 16 17 17 18 18 19 19 21 21 21 21 21 22 23 23 24 24 24 25 25 25 25 26 26 26 26 27 27 29 29 29 30 31 31 32 1 18
  19. 19. Java WEB Java WEB Sumário contato.setEmail(rs.getString("email")); contato.setEndereco(rs.getString("endereco")); contatos.add(contato); 1 JDBC 8 } 1.1 Banco de Dados Relacional 8 rs.close(); 1.2 JDBC – Java Database Connectivity 8 stmt.close(); return contatos; 1.2.1 java.sql.DriverManager 8 } Fábrica de Conexões 1.3 9 1.4 Criar Banco de Dados e Tabelas 10 Vamos usarJavabeans –getLista() agora para listar todos os contatos do nosso banco de dados. Crie uma 1.5 Classes o método Entidades 10 classe chamada TestaListaDAO com um método main: Crie um ContatoDAO: 1.6 Inserindo Dados 11 1.7 Fechando a Conexão 12 ContatoDAO dao = new Statement 1.8 PreparedStatement ou ContatoDAO(); 12 1.9 Design Patterns 13 Liste os contatos com o DAO: 1.9.1 DAO – Data Access Object 13 1.9.2 List<Contato> contatos = dao.getLista(); Pesquisando 14 1.9.3 Recurso avaçando: O Cursor 15 1.9.4 Itere nessa lista e imprima as informações dos contatos: Alteração 16 1.9.5 Exclusão 16 2 17 forIntrodução a Java Enterprise Edition (Contato contato : contatos) { System.out.println("Nome: 2.1 Porque Java EE tem sido tão utilizado? " + contato.getNome()); 17 System.out.println("Email: " + contato.getEmail()); 2.2 O que é Java Enterprise Edition? 18 System.out.println("Endereço: " + contato.getEndereco() + "n"); 2.3 A plataforma Java Enterprise Edition 18 } 2.3.1 APIs 19 2.3.2 Contêiners 19 1.9.4 Alteração 2.3.3 Deployment de aplicações 21 Agora que você já sabe usar o PreparedStatement para executar qualquer tipo de código SQL e ResultSet 3 Análise de arquiteturas 21 para receber os dados retornados da sua pesquisa fica simples, porém maçante, escrever o código de diferentes 3.1 Arquitetura Física e Arquitetura Lógica 21 métodos de uma classe típica de Dao. 3.2 Tipos de aplicações na WEB 21 Veja primeiro o método altera, que recebe um contato cujos valores devem ser alterados: 3.3 Arquitetura MVC para a Web 21 3.4 Vantagens altera(Contato 22 public void da arquitetura MVC contato) throws SQLException { 4 Ambiente de desenvolvimento 23 PreparedStatement stmt = (PreparedStatement) connection.prepareStatement( 4.1 Tomcat 23 4.1.1 Instalar Java"update(JDK) JSE SDK contatos set nome=?, email=?, endereco=? where id=?"); 24 stmt.setString(1, 4.1.2 Qual versão de JDK utilizar contato.getNome()); 24 stmt.setString(2, contato.getEmail()); 4.1.2.1 JAVA_HOME 24 stmt.setString(3, contato.getEndereco()); 4.2 Instalar Tomcat 25 stmt.setLong(4, contato.getId()); 4.2.1 Qual versão de Tomcat utilizar 25 stmt.execute(); stmt.close(); 4.2.2 Iniciar e parar o Tomcat 25 4.2.2.1 } [Windows] Tomcat como serviço 25 4.2.2.2 Tomcat como processo 26 1.9.5 Exclusão 4.3 Testar Tomcat 26 NãoCriar contexto de desenvolvimento existe nada de novo nas linhas acima. Uma execução de query! Simples, não? 4.4 26 4.4.1 Agora o código para remoção: começa com uma query baseada em um contato, mas usa somente o id dele Estrutura de diretórios 26 para executar a query do tipoaplicação web delete: 4.4.2 Criar contexto de 27 4.4.3 Configurar contexto: web.xml 27 public void remove(Contato contato) throws SQLException { 4.4.4 Ativar contexto 29 PreparedStatement stmt = (PreparedStatement) 4.4.5 Testar contexto 29 Connection.prepareStatement("delete from contatos where id=?"); 4.5 Bibliotecas Servlet 29 stmt.setLong(1, contato.getId()); stmt.execute(); 4.6 Testar seus servlets 30 stmt.close(); 4.7 Testar seus JSPs 31 } 4.8 Logs 31 4.9 Variáveis de Ambiente 32 Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 16 1 19
  20. 20. Java WEB Java WEB Sumário 2 Introdução a Java Enterprise Edition 1 JDBC 2.1 Porque Java EE tem sido tão utilizado? 1.1 Banco de Dados Relacional Além de – Java Database Connectivity pois não elimina parte do 1.2 JDBC ter uma vantagem numérica, mercado que usa um sistema operacional específico, também aumenta a 1.2.1 java.sql.DriverManager integrabilidade da aplicação, ou seja, permite que às empresas integrem os 1.3 Fábrica de Conexões sistemas que estão rodando em diferentes plataformas, como por exemplo o 1.4 Criar Banco de Dados e Tabelas sistema Web, os sistemas que estão nos MainFrames, os sistemas que são 1.5 Classes Javabeans – Entidades executados na máquina do usuário. 1.6 Inserindo Dados EstaFechando agrande vantagem para grandes corporações que é uma Conexão 1.7 1.8 PreparedStatement ou de sistemas. enfrentam a batalha da integração Statement 1.9 Design fundamental no sucesso da plataforma é a participação Outro fatorPatterns 1.9.1 DAO – Data Access Object de grandes empresas na especificação das APIs no Java Community Process, 1.9.2 Pesquisando como Oracle, IBM, Apple, que O Cursor só na especificação, mas também 1.9.3 Recurso avaçando: atuam não no desenvolvimento de produtos como Contêiners, IDEs, frameworks, que 1.9.4 Alteração agregam assim ainda mais confiabilidade a tecnologia. 1.9.5 Exclusão 2 Introdução a Java Enterprise Edition Certamente a existência de diversos Contêiners Open-Source e/ou 2.1 Porque Java EE tem sido tão utilizado? Gratuitos, também colabora com o alto índice de adoção da tecnologia. 2.2 O que é Java Enterprise Edition? Além destes fatores, elencamos aqui alguns pontos que podem ser 2.3 A plataforma Java Enterprise Edition atingidos com Java EE, considerados fundamentais para a arquitetura dos 2.3.1 APIs sistemas desenvolvidos atualmente: 2.3.2 Contêiners Java EE é multi-plataforma, 8 ou seja, é uma solução que 8 pode ser utilizada 8 computadores com sistema 8 operacional Unix, com Linux,9 10 com Windows, com Apple e 10 também pode ser utilizada11 12 com MainFrames. 12 13 13 14 15 16 16 17 17 18 18 19 19 2.3.3 Deployment de aplicações 21 Escalabilidade 3 Análise de arquiteturas 21 Trata-se de umFísica e Arquitetura Lógica de software que pertence à nova economia globalizada21 e 3.1 Arquitetura dos ades da engenharia 3.2 Tiposcampanha de marketing pode fazer com que uma pequena empresa cresça de forma abrupta 21 de aplicações na WEB conectada. Uma do 3.3 Arquitetura MVC que a Web 21 dia para a noite. É necessário paraa sua solução seja capaz de acompanhar o crescimento do negócio. 3.4 Vantagens da arquitetura MVC 22 4 Ambiente de desenvolvimento 23 Disponibilidade 4.1 Tomcat 23 Com uma linguagem e plataforma confiáveis, podemos contar com sistemas que rodam simultaneamente 4.1.1 Instalar Java JSE SDK (JDK) 24 em mais de Qualservidorde JDK utilizar de falhas. Sistemas conhecidos como cluster de servidores permitem que um versão para prevenção 4.1.2 24 aplicativos fiquem distribuídos e à prova de falha no data-center hospedeiro. 4.1.2.1 JAVA_HOME 24 4.2 Instalar Tomcat 25 4.2.1 Qual versão de Tomcat utilizar 25 Performance 4.2.2 Quando o e parar o é computação distribuída, Java tem uma performance muito boa em comparação a Iniciar assunto Tomcat 25 4.2.2.1 [Windows] Tomcat como serviço 25 outras tecnologias. Podemos dizer, por exemplo, que Fortran é mais rápido que Java para resolver um algoritmo 4.2.2.2 isoladamente, mas Java, quando distribuído entre servidores, não possui concorrente. Tomcat como processo 26 complexo 4.3 Testar Tomcat 26 4.4 Criar contexto de desenvolvimento 26 Baixo custo Estrutura de diretórios de manutenção 4.4.1 26 Código bem escrito, aplicação bem definidos e documentados, herança, polimorfismo, interfaces 27 objetos web da 4.4.2 Criar contexto de orientação a objeto e outros aspectos técnicos tornam um software simples de ser mantido no decorrer do tempo, 4.4.3 Configurar contexto: web.xml 27 quando bem planejado e escrito em Java. Sabemos que os aplicativos tendem a ter um ciclo de vida cada vez mais 4.4.4 Ativar contexto 29 4.4.5 Testar contexto 29 duradouro na empresa, por isto o custo de manutenção do software se torna cada vez mais importante. 4.5 Bibliotecas Servlet 29 4.6 Testar seus servlets 30 4.7 Testar seus JSPs 31 4.8 Logs 31 4.9 Variáveis de Ambiente 32 Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 171 20
  21. 21. Java WEB Java WEB Sumário 2.2 O que é Java Enterprise Edition? JavaJDBC Enterprise Edition é uma plataforma de desenvolvimento de componentes para aplicações em multi1 8 camada, que disponibiliza uma série de serviços de infra-estrutura de alto nível, evitando o desenvolvimento de 1.1 Banco de Dados Relacional 8 código complexo e aproximando os desenvolvedores do negócio em si. 1.2 JDBC – Java Database Connectivity 8 1.2.1 Algumas das especificações de componentes mais importantes da plataforma Java Enterprise Edition são: 8 java.sql.DriverManager 1.3 Fábrica Pages (JSP): 9 - JavaServerde Conexões utilizadas para criar páginas Web; 1.4 Criar Banco de Dados e Tabelas 10 - Servlets: geralmente utilizado para construir a camada de controle da aplicação, viabilizando a integração 1.5 Classes Javabeans – Entidades 10 entre as páginas JSP e Dados a camada de negócios; 1.6 Inserindo 11 - Enterprise JavaBeans: utilizados para criar componentes distribuídos, representando dados ou regras 12 de 1.7 Fechando a Conexão 1.8 12 negócio. PreparedStatement ou Statement 1.9 Design Patterns 13 1.9.1 Nenhum – Data Access Object foi idealizado para ser executado diretamente pela máquina virtual, todos DAO destes componentes 13 1.9.2 Pesquisando e controlados por um Contêiner específico como podemos observar na figura abaixo: 14 eles devem ser executados 1.9.3 Recurso avaçando: O Cursor 15 1.9.4 Alteração 16 1.9.5 Exclusão 16 2 Introdução a Java Enterprise Edition 17 2.1 Porque Java EE tem sido tão utilizado? 17 2.2 O que é Java Enterprise Edition? 18 2.3 A plataforma Java Enterprise Edition 18 2.3.1 APIs 19 2.3.2 Contêiners 19 2.3.3 Deployment de aplicações 21 3 Análise de arquiteturas 21 3.1 Arquitetura Física e Arquitetura Lógica 21 3.2 Tipos de aplicações na WEB 21 3.3 Arquitetura MVC para a Web 21 3.4 Vantagens da arquitetura MVC 22 4 Ambiente de desenvolvimento 23 4.1 Tomcat 23 4.1.1 Instalar Java JSE SDK (JDK) 24 4.1.2 Qual versão de JDK utilizar Figura 2.1 – Java EE servidores e contêiners 24 4.1.2.1 JAVA_HOME 24 4.2 Instalar Tomcat 25 4.2.1 Web Contêiner: de Tomcat utilizar JSPs (Java Server Pages) e arquivos estáticos (HTMLs, JavaScript, XML); Qual versão hospeda Servlets, 25 utiliza qualquer classe Java como, por exemplo, APIs de envio de e-mail ou acesso a banco de dados. 4.2.2 Iniciar e parar o Tomcat 25 Contêiner: hospeda Enterprise JavaBeans (EJB) que, por sua vez, também pode utilizar uma série 25 de 4.2.2.1 EJB [Windows] Tomcat como serviço APIsTomcat como processo e-mail e acesso a banco de dados. Java, tais como envio de 4.2.2.2 26 Database: Tomcat Representamos aqui um banco de dados, mas poderíamos, a partir de uma arquitetura Java EE, 4.3 Testar 26 acessar arquivos, sistemas legados, ERPs, fila de mensagens e qualquer outra fonte de dados. 4.4 Criar contexto de desenvolvimento 26 4.4.1 Estrutura de diretórios 26 4.4.2 Criar contexto de aplicação web 27 2.3 A plataforma Java Enterprise Edition 4.4.3 Configurar contexto: web.xml 27 4.4.4 Ativar contexto 29 4.4.5 Testar contexto 29 Item Descrição 4.5 Bibliotecas Servlet 29 4.6 Testar 30 Blueprints Design seus servlets Padrões de codificação e modelagem desenvolvidos por técnicos altamente 4.7 Testar seus 31 Guidelines for Java EE JSPs capacitados, reunindo em documentos e exemplos de código, as melhores práticas de 4.8 Logs 31 desenvolvimento de aplicação Java EE. 4.9 Variáveis de Ambiente 32 Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 181 21
  22. 22. Java WEB Sumário 1 1.1 1.2 1.2.1 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 3 3.1 3.2 3.3 3.4 4 4.1 4.1.1 4.1.2 4.1.2.1 4.2 4.2.1 4.2.2 4.2.2.1 4.2.2.2 4.3 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.5 4.6 4.7 4.8 4.9 JDBC Banco de Dados Relacional JDBC – Java Database Connectivity java.sql.DriverManager Fábrica de Conexões Criar Banco de Dados e Tabelas Classes Javabeans – Entidades Inserindo Dados Fechando a Conexão PreparedStatement ou Statement Design Patterns DAO – Data Access Object Pesquisando Recurso avaçando: O Cursor Alteração Exclusão Introdução a Java Enterprise Edition Porque Java EE tem sido tão utilizado? O que é Java Enterprise Edition? A plataforma Java Enterprise Edition APIs Contêiners Deployment de aplicações Análise de arquiteturas Arquitetura Física e Arquitetura Lógica Tipos de aplicações na WEB Arquitetura MVC para a Web Vantagens da arquitetura MVC Ambiente de desenvolvimento Tomcat Instalar Java JSE SDK (JDK) Qual versão de JDK utilizar JAVA_HOME Instalar Tomcat Qual versão de Tomcat utilizar Iniciar e parar o Tomcat [Windows] Tomcat como serviço Tomcat como processo Testar Tomcat Criar contexto de desenvolvimento Estrutura de diretórios Criar contexto de aplicação web Configurar contexto: web.xml Ativar contexto Testar contexto Bibliotecas Servlet Testar seus servlets Testar seus JSPs Logs Variáveis de Ambiente Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais www.3way.com.br 8 8 8 8 9 10 10 11 12 12 13 13 14 15 16 16 17 17 18 18 19 19 21 21 21 21 21 22 23 23 24 24 24 25 25 25 25 26 26 26 26 27 27 29 29 29 30 31 31 32 1 22
  23. 23. Java WEB Java WEB Sumário Compatibility Test Suite Processo formal de teste de compatibilidade de Application Server Java EE, garantindo a padronização entre os servidores de diferentes fabricantes. 1 JDBC 8 Reference Implementation Relacional A plataforma inclui um servidor chamado de R.I. (Reference Implementation) 1.1 Banco de Dados 8 1.2 JDBC – Java Database Connectivity 100% das funcionalidades especificadas. Pode ser utilizado para 8 implementado com 1.2.1 java.sql.DriverManager aplicações Java EE, sendo 100% gratuito e com código fonte disponível. 8 validar 1.3 Fábrica de Conexões 9 APIs Enterprise JavaBeans, Java Servlets API, Java Server Pages, XML e Messaging. 1.4 Criar Banco de Dados e Tabelas 10 1.5 Classes Javabeans – Entidades 10 1.6 Inserindo Dados 11 2.3.1 APIs 1.7 Fechando a Conexão 12 O conjunto de APIs Java EE é definido, em sua maioria, por interfaces que podem ser empregadas pelos 1.8 PreparedStatement ou Statement 12 desenvolvedores das aplicações corporativas. Tais APIs possuem vínculos com o núcleo (kernel) do servidor que 1.9 Design Patterns 13 executa tarefas voltadasAccess Object 1.9.1 DAO – Data para o gerenciamento de recursos e infra-estrutura. 13 1.9.2 Podemos dizer que, ao desenvolvermos aplicações Java EE através do uso de APIs disponibilizadas no Java Pesquisando 14 1.9.3 Recurso avaçando: Implementation), elas podem ser executadas nos servidores de aplicações que 15 Enterprise Edition (Reference O Cursor 1.9.4 implementado as especificações técnicas dos servidores JAVA EE. Alteração 16 tenham 1.9.5 Exclusão 16 Contamos com as seguintes APIs na plataforma Java EE: 2 Introdução a Java Enterprise Edition 17 2.1 Porque Java EE tem sido tão utilizado? 17 2.2 O que é Java Enterprise Edition? 18 API Descrição 2.3 A plataforma Java Enterprise Edition 18 JDBC Extension Extensão da API JDBC. 2.3.1 APIs 19 Enterprise JavaBeans (EJB) Componentes gerenciados pelo EJB Contêiner, que oferece serviços de 2.3.2 Contêiners 19 transação, multi-threading, persistência automática, entre outros para 21 os 2.3.3 Deployment de aplicações 3 Análise de arquiteturas componentes. 21 3.1 Arquitetura Física e Arquitetura Lógica frequentemente utilizados para integração entre as páginas 21 Java Servlets Componentes 3.2 Tipos de aplicações na WEB e a camada de negócio. 21 Web 3.3 Arquitetura MVC para a Web 21 JavaServer Pages (JSP) da arquitetura API utilizada principalmente para construção de páginas dinâmicas. 3.4 Vantagens MVC 22 4 Message Service de desenvolvimento Ambiente (JMS) 23 Java API para tratamento de mensagens assíncronas. 4.1 Tomcat 23 Java Transaction API (JTA) SDK (JDK)API para controle manual de transações. 4.1.1 Instalar Java JSE 24 4.1.2 Qual versão de JDK utilizar 24 JavaMail Utilizada para envio e recebimento de e-mails. 4.1.2.1 JAVA_HOME 24 Java API for XML Processing ( JAXP) Processamento de XML. 4.2 Instalar Tomcat 25 4.2.1 Qual and Tomcat utilizar 25 Java Naming versão de Directory API que oferece acesso a Catálogo de Objetos. 4.2.2 Iniciar 25 Interface ( JNDI) e parar o Tomcat 4.2.2.1 [Windows] Tomcat como serviço 25 Java Connector Architecture API que padroniza os conectores para integração de aplicações. 4.2.2.2 Tomcat como processo 26 Java API forTestarWeb Services (JAX- APIs para construção e utilização de Web Services. XML Tomcat 4.3 26 WS) 4.4 Criar contexto de desenvolvimento 26 4.4.1 Estrutura de diretórios 26 4.4.2 Criar contexto de aplicação web 27 4.4.3 Contêiners contexto: web.xml Configurar 27 2.3.2 4.4.4 Contêiners são servidores de objetos, também chamados de servidores de aplicação que oferecem Ativar contexto 29 4.4.5 e infra-estrutura para a execução de componentes. O conceito de Contêiner é independente da plataforma Testar contexto 29 serviços 4.5 Bibliotecas Servlet 29 Java EE, utilizado em outras linguagens e plataformas. 4.6 Testar seus servlets 30 Existem outros JSPs de Contêiner utilizados em Java, considera-se a seguinte divisão de perfil 31 de 4.7 Testar seus tipos Contêiners Java e Java EE: 4.8 Logs 31 4.9 Variáveis de Ambiente 32 Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 19 1 23
  24. 24. Java WEB Java WEB Sumário Tipo Descrição / Exemplo 1 JDBCResponsável pelo ciclo de vida da aplicação, gerenciamento de eventos, bibliotecas, entre outros. 8 Exemplos: 1.1 Banco de Dados Relacional 8 1.2 JDBCApplet Database Connectivity gráficos desenvolvidos com AWT/Swing controlados por browser; 8 – Java Contêiner - para painéis Client-side 1.2.1 java.sql.DriverManager 8 Application client Contêiner - aplicações standalone (AWT/Swing), podendo, opcionalmente, ser 1.3 Fábrica de Conexões 9 1.4 Criardistribuídas por Java Web Start. Banco de Dados e Tabelas 10 1.5 Classes Javabeans –server-side, gerencia, além do ciclo de vida de componentes, recursos e meios de 10 Um Contêiner Entidades 1.6 Inserindo Dados 11 acesso. Configuramos no Contêiner os recursos que desejamos disponibilizar para que nossas 1.7 Fechando a Conexão aplicações os acessem através de APIs de serviços, como no caso de um pooling de Conexões12 a 1.8 PreparedStatement ou Statement 12 Banco de Dados. 1.9 Design Patterns 13 Server-side 1.9.1 DAO – Data Access Object 13 Exemplos: 1.9.2 Pesquisando 14 Web Contêiner - para objetos dirigidos por HTTP (Servlets e JSP); 1.9.3 Recurso avaçando: O Cursor 15 1.9.4 Alteração 16 EJB Contêiner - para objetos de negócio server-side. 1.9.5 Exclusão 16 2 Introdução a Java Enterprise Edition 17 Além da definiçãotem sido tão utilizado? Java Enterprise Edition 2.1 Porque Java EE das interfaces na API, 17 também especifica Java Enterprise Edition? ser, quais recursos ele deve como o Contêiner deve 2.2 O que é 18 2.3 A plataforma Java Enterprise Edition 18 obrigatoriamente implementar, quais serviços ele deve oferecer. Permitindo Aplicações desenvolvidas de 2.3.1 que diversas empresas implementem seus próprios Contêiners. APIs 19 assim acordo com a especificação 2.3.2 Contêiners 19 Veja a seguir uma pequena amostra de empresas e organizações que podem ser instaladas em 21 2.3.3 Deployment de aplicações desenvolvem Contêiners Java EE: 3 Análise de arquiteturas qualquer Contêiner. 21 - Sun (GlassFish) 3.1 Arquitetura Física e Arquitetura Lógica 21 - IBM (WebSphere) 3.2 Tipos de aplicações na WEB 21 - Oracle (OAS) MVC para a Web 3.3 Arquitetura 21 - BEA Systems (WebLogic) MVC 3.4 Vantagens da arquitetura 22 - Red Hat (JBoss) desenvolvimento 4 Ambiente de 23 - Apache (Geronimo) 4.1 Tomcat 23 4.1.1 - Adobe (Jrun) JSE SDK (JDK) Instalar Java 24 4.1.2 - Borlandversão de JDK utilizar Qual (AppSever) 24 4.1.2.1 JAVA_HOME 24 4.2 Instalar Tomcat 25 A lista completa de empresas licenciadas em Java EE e o teste de 4.2.1 Qual associado pode serutilizar versão de Tomcat encontrada em http://java.sun.com/j2ee/licensees.html. 25 compatibilidade 4.2.2 Iniciar e parar o Tomcat 25 Como já vimos, a plataforma Java EE está fortemente baseada em Contêiners, como o foco do nosso curso é 4.2.2.1 [Windows] Tomcat como serviço 25 o desenvolvimento de aplicações Java para Web, nosso alvo são os Web Contêiners. Alguns dos serviços oferecidos 4.2.2.2 Tomcat como processo 26 pelos Web Contêiners são: 4.3 Testar Tomcat 26 - Gerenciamento dos recursos utilizados pelos componentes, como pool de conexões; 4.4 Criar contexto de desenvolvimento 26 4.4.1 - Gerenciamentodiretórios vida dos componentes (Servlets, JSPs e Custom Tags); Estrutura de do ciclo de 26 4.4.2 - Gerenciamento de sessões de web Criar contexto de aplicação usuários; 27 4.4.3 - Controle de acesso. Configurar contexto: web.xml 27 4.4.4 Ativar contexto 29 4.4.5 As duas principais APIs suportadas por um Contêiner Web são: Java Servlets e Java Server Pages.29 Testar contexto A 4.5 Bibliotecas Servletde Contêiner Web é o Tomcat. Observe que há alguns servidores que se denominam 29 implementação de referência 4.6 Testar seus servlets 30 compatíveis com o JAVA EE, mas que não passaram pelo teste de compatibilidade. Em caso de dúvidas, pode-se 4.7 Testar seus JSPs 31 encontrar uma lista dos Contêiners JAVA EE na seguinte URL: http://java.sun.com/j2ee/compatibility.html 4.8 Logs 31 4.9 Variáveis de Ambiente 32 Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 20 1 24
  25. 25. Java WEB Java WEB Sumário 2.3.3 Deployment de aplicações Normalmente a estrutura de diretórios utilizada em desenvolvimento não é a mesma estrutura utilizada 1 JDBC 8 dentro do servidor. Além disto, nos diretórios de desenvolvimento temos os arquivos fonte, enquanto no servidor 1.1 Banco de Dados Relacional 8 temos apenas os arquivos compilados. 1.2 JDBC – Java Database Connectivity 8 1.2.1 O trabalho de mover os arquivos estáticos da estrutura de desenvolvimento para o Contêiner Web, assim java.sql.DriverManager 8 como, o da Fábrica de Conexões compilação das classes Java, é conhecido como deployment e existem duas opções para a realização 1.3 9 desta operação. Podemos gerar umTabelas os 1.4 Criar Banco de Dados e empacotamento WAR para o nosso aplicativo, ou então, copiar diretamente10 arquivos para dentro do Contêiner, seguindo uma estrutura de diretórios conforme será apresentada mais adiante 1.5 Classes Javabeans – Entidades 10 (deployment aberto ou expandido). 1.6 Inserindo Dados 11 EsteFechando pode ser feito: trabalho a Conexão 1.7 12 - Manualmente: copiando os arquivos e organizando dentro do Contêiner na estrutura necessária; 1.8 PreparedStatement ou Statement 12 1.9 Design Patterns 13 - Através de ferramentas oferecidas pelo próprio Contêiner; 1.9.1 - Por ambiente de desenvolvimento (IDE); DAO – Data Access Object 13 1.9.2 - Por ferramentas específicas como Ant e Maven. Pesquisando 14 1.9.3 Recurso avaçando: O Cursor 15 1.9.4 Alteração 16 1.9.5 Exclusão 16 3 Análise de arquiteturas 2 Introdução a Java Enterprise Edition 17 2.1 Porque Java EE tem sido tão utilizado? 17 3.1 Arquitetura Física e Arquitetura Lógica 2.2 O que é Java Enterprise Edition? 18 Os servidores podem estar todosEdition de 2.3 A plataforma Java Enterprise fisicamente na mesma máquina, apesar de existir a divisão conceitual 18 2.3.1 APIs e processamento, ou podem estar separados fisicamente, cada um em uma máquina separada. 19 responsabilidades 2.3.2 Contêiners 19 Muitas vezes não é necessário separar os servidores fisicamente, mas a divisão conceitual garante a escalabilidade 2.3.3 Deployment de aplicações e a flexibilidade da arquitetura, permitindo e facilitando a separação física dos servidores no momento em que 21 for 3 Análise de arquiteturas 21 necessário. 3.1 Arquitetura Física e Arquitetura Lógica 21 3.2 Tipos de aplicações na WEB 21 3.3 Arquitetura MVC para a Web 21 3.4 Vantagens da arquitetura MVC 22 4 Ambiente de desenvolvimento 23 4.1 Tomcat 23 4.1.1 Instalar Java JSE SDK (JDK) 24 4.1.2 Qual versão de JDK utilizar 24 4.1.2.1 JAVA_HOME 24 4.2 Instalar Tomcat 25 4.2.1 Qual versão de Tomcat utilizar 25 4.2.2 Iniciar e parar o Tomcat 25 4.2.2.1 [Windows] Tomcat como serviço 25 4.2.2.2 Tomcat como processo 26 4.3 Testar Tomcat 26 4.4 Criar contexto de desenvolvimento 26 4.4.1 Estrutura de diretórios 26 4.4.2 Criar contexto de aplicação web 27 4.4.3 Configurar contexto: web.xml 27 Figura 3.1 – Aplicações em Camadas 4.4.4 Ativar contexto 29 4.4.5 Testar contexto 29 4.5 Bibliotecas Servlet 29 3.2 Tipos Testar seus servlets WEB de aplicações na 4.6 30 4.7 Testarenquadrar as aplicações na Web em um dos seguintes tipos: seus JSPs 31 Podemos 4.8 Logs 31 4.9 Variáveis de Ambiente 32 Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 21 1 25
  26. 26. Java WEB Sumário 1 1.1 1.2 1.2.1 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 3 3.1 3.2 3.3 3.4 4 4.1 4.1.1 4.1.2 4.1.2.1 4.2 4.2.1 4.2.2 4.2.2.1 4.2.2.2 4.3 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.5 4.6 4.7 4.8 4.9 JDBC Banco de Dados Relacional JDBC – Java Database Connectivity java.sql.DriverManager Fábrica de Conexões Criar Banco de Dados e Tabelas Classes Javabeans – Entidades Inserindo Dados Fechando a Conexão PreparedStatement ou Statement Design Patterns DAO – Data Access Object Pesquisando Recurso avaçando: O Cursor Alteração Exclusão Introdução a Java Enterprise Edition Porque Java EE tem sido tão utilizado? O que é Java Enterprise Edition? A plataforma Java Enterprise Edition APIs Contêiners Deployment de aplicações Análise de arquiteturas Arquitetura Física e Arquitetura Lógica Tipos de aplicações na WEB Arquitetura MVC para a Web Vantagens da arquitetura MVC Ambiente de desenvolvimento Tomcat Instalar Java JSE SDK (JDK) Qual versão de JDK utilizar JAVA_HOME Instalar Tomcat Qual versão de Tomcat utilizar Iniciar e parar o Tomcat [Windows] Tomcat como serviço Tomcat como processo Testar Tomcat Criar contexto de desenvolvimento Estrutura de diretórios Criar contexto de aplicação web Configurar contexto: web.xml Ativar contexto Testar contexto Bibliotecas Servlet Testar seus servlets Testar seus JSPs Logs Variáveis de Ambiente Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais www.3way.com.br 8 8 8 8 9 10 10 11 12 12 13 13 14 15 16 16 17 17 18 18 19 19 21 21 21 21 21 22 23 23 24 24 24 25 25 25 25 26 26 26 26 27 27 29 29 29 30 31 31 32 1 26
  27. 27. Java WEB Java WEB Sumário Business-to-consumer (B2C) – entre empresa e consumidor. Exemplo: uma pessoa compra um livro na Internet. 1 JDBC 8 - Business-to-business (B2B) – Troca de informações e serviços entre empresas. Exemplo: o sistema de 1.1 Banco de Dados Relacional 8 estoque de JDBC –empresa de automóveis detecta que um item de estoque precisa ser reposto e faz o pedido uma Java Database Connectivity 1.2 8 diretamente ao sistema de produção do fornecedor de autopeças. Neste tipo de aplicação a linguagem XML possui 1.2.1 java.sql.DriverManager 8 1.3 Fábrica de Conexões 9 um papel muito importante, uma vez que existe a necessidade de uma padronização das tags para comunicação de 1.4 Criar Banco de Dados e Tabelas 10 conteúdo. 1.5 Classes Javabeans – Entidades 10 - User-to-data – acesso a bases de informação. Exemplo: um usuário consulta uma base de informação. 1.6 Inserindo Dados 11 - User-to-usera Conexão 1.7 Fechando – chat e troca de informações entre usuários (Messenger, ICQ). 12 1.8 PreparedStatement ou Statement 12 1.9 Design Patterns 13 1.9.1 DAO – MVC para a Web 13 3.3 Arquitetura Data Access Object 1.9.2 Pesquisando 14 Para exemplificar a Figura 3.2 contém um diagrama de blocos que mostra a participação de Servlets, JSP e 1.9.3 Recurso avaçando: O Cursor 15 JavaBeans em uma arquitetura. A idéia é isolar cada aspecto do modelo MVC com a tecnologia mais adequada. A 1.9.4 Alteração 16 página JSP é ótima para fazer o papel da visão, uma vez que possui facilidades para a inserção de componentes 1.9.5 Exclusão 16 visuais e para a apresentação Enterprise Edition entanto, é um pouco estranho usar uma página JSP para receber e 2 Introdução a Java de informação. No 17 2.1 uma requisição. Esta tem sido tão utilizado? no aspecto de controle do modelo MVC é mais adequada a um Porque Java EE tarefa, que se enquadra 17 tratar 2.2 O que é Java Enterprise Edition? 18 Servlet, uma vez que neste momento componentes de apresentação são indesejáveis. Finalmente, é desejável que 2.3 A plataforma Java Enterprise Edition 18 a modelagem do negócio fique isolada dos aspectos de interação. A proposta é que a modelagem do negócio fique 2.3.1 APIs 19 contida em classes de JavaBeans. Em aplicações mais sofisticadas a modelagem do negócio deve ser implementada 2.3.2 Contêiners 19 por classes de Enterprisede aplicações 2.3.3 Deployment JavaBeans (EJB), no entanto esta forma de implementação foge ao escopo deste material. 21 3 Análise de arquiteturas 21 3.1 Arquitetura Física e Arquitetura Lógica 21 3.2 Tipos de aplicações na WEB 21 3.3 Arquitetura MVC para a Web 21 3.4 Vantagens da arquitetura MVC 22 4 Ambiente de desenvolvimento 23 4.1 Tomcat 23 4.1.1 Instalar Java JSE SDK (JDK) 24 4.1.2 Qual versão de JDK utilizar 24 4.1.2.1 JAVA_HOME 24 4.2 Instalar Tomcat 25 4.2.1 Qual versão de Tomcat utilizar 25 4.2.2 Iniciar e parar o Tomcat 25 4.2.2.1 [Windows] Tomcat como serviço 25 4.2.2.2 Tomcat como processo 26 4.3 Testar Tomcat 26 4.4 Criar contexto de desenvolvimento 26 4.4.1 Estrutura de diretórios 26 4.4.2 Criar contexto de aplicação web 27 4.4.3 Configurar contexto: web.xml 27 4.4.4 Ativar contexto 29 4.4.5 Testar contexto 29 4.5 Bibliotecas Servlet 29 4.6 Testar seus servlets 30 4.7 Testar seus JSPs 31 4.8 Logs 31 4.9 Variáveis de Ambiente 32 Figura 3.2 - Arquitetura de uma aplicação para Comércio Eletrônico. Todos os direitos reservados a 3Way Networks Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br 1 27 22
  28. 28. Java WEB Java WEB Sumário Servlets – Atuam como controladores, recebendo as requisições dos usuários. Após a realização das análises necessária sobre a requisição, instância o JavaBean e o armazena no escopo adequado (ou não caso o 1 JDBC 8 bean já tenha sido criado no escopo) e encaminha a requisição para a página JSP. 1.1 Banco de Dados Relacional 8 JavaBeans Java Database Connectivity solução, independente da requisição e da forma de apresentação. 1.2 JDBC – – Atuam como o modelo da 8 Comunicam-se com a camada intermediária que encapsula a lógica do problema. 1.2.1 java.sql.DriverManager 8 1.3 9 JSP Fábrica de na camada de apresentação utilizando os JavaBeans para obtenção dos dados a serem – Atuam Conexões 1.4 Criar Banco de Dados e Tabelas 10 exibidos, isolando-se assim de como os dados são obtidos. O objetivo é minimizar a quantidade de código colocado 1.5 10 na página. Classes Javabeans – Entidades 1.6 Inserindo Dados 11 Camada Intermediária (Middleware) – Incorporam a lógica de acesso aos dados. Permitem isolar os outros 1.7 Fechando a Conexão 12 módulos dePreparedStatement ou Statement problemas como estratégias de acesso aos dados e desempenho. O uso de EJB (Enterprise JavaBeans) 1.8 12 é recomendado para a implementação do Middleware, uma vez que os EJBs possuem capacidades para gerência 13 de 1.9 Design Patterns 1.9.1 DAO – Data Access Object 13 transações e persistência. Isto implica na adoção de um servidor de aplicação habilitado para EJB. 1.9.2 Pesquisando 14 1.9.3 Recurso avaçando: O Cursor 15 1.9.4 Alteração arquitetura MVC 16 3.4 Vantagens da 1.9.5 Exclusão 16 1. Facilidade de manutenção: a distribuição lógica das funções entre os módulos do sistema isola o impacto 2 Introdução a Java Enterprise Edition 17 das modificações. Java EE tem sido tão utilizado? 2.1 Porque 17 2.2 O que é Java Enterprise Edition? 18 2. Escalabilidade: Modificações necessárias para acompanhar o aumento da demanda de serviços 2.3 A plataforma Java etc) ficam concentradas na camada intermediária. Enterprise Edition 18 (database pooling, clustering, 2.3.1 APIs 19 2.3.2 Contêiners 19 2.3.3 Deployment de aplicações 21 4 Ambiente de desenvolvimento 3 Análise de arquiteturas 21 3.1 Arquitetura Física e Arquitetura Lógica 21 4.1 Tomcat de aplicações na WEB 3.2 Tipos 21 A partir do Java EE 5.0, com 3.3 O Tomcat é um servidor de aplicações Java para web. É software livre e Arquitetura MVC para a Web 21 3.4 Vantagens da arquitetura conceituado projeto Apache Jakarta e 22 as versões de especificações de código aberto, surgido dentro do MVC 4 Ambiente de desenvolvimento Servlet 2.5 e JSP 2.1, a 23 que teve apoio e endosso oficial da Sun Microsystems como Implementação 4.1 Tomcat 23 de Referência (RI) para as tecnologias Java Servlet e JavaServer Pages (JSP). implementação de referência 4.1.1 Instalar Java JSE SDK (JDK) 24 (RI) destas tecnologias passou 4.1.2 Atualmente, o Tomcat tem seu próprio projeto de desenvolvimento Qual versão de JDK utilizar 24 independente, dentro da Apache Software Foundation. O Tomcat é robusto e 4.1.2.1 JAVA_HOME 24 a ser o servidor de aplicações 4.2 eficiente oInstalar Tomcat ser utilizado mesmo em um ambiente de suficiente para Java EE 5.0 completo (Web 25 e 4.2.1 Qual versão de Tomcat utilizar 25 produção. EJB) Sun Java System 25 4.2.2 Iniciar e parar o Tomcat Tecnicamente, parte da plataforma corporativa Java Enterprise Edition Application Server Platform 4.2.2.1 [Windows] Tomcat como serviço 25 (Java EE, anteriormente denominada J2EE) abrange as tecnologias Servlet e 4.2.2.2 Tomcat como processo 26 Edition 9, baseado no projeto JSP, incluindo tecnologias de apoio relacionadas como Realms e segurança, 4.3 Testar Tomcat 26 de software livre GlassFish. JNDI Resources e JDBC DataSources. O Tomcat tem a capacidade de atuar 4.4 Criar contexto de desenvolvimento 26 4.4.1 como servidor web/HTTP autônomo, ou pode funcionar integrado a Estrutura de diretórios 26 também 4.4.2 Criar contexto de aplicação web 27 um servidor web dedicado, como Apache http ou Microsoft IIS, ou ainda 4.4.3 parteConfigurar contexto: web.xml aplicações mais amplo, como JBoss 27 como integrante de um servidor de 4.4.4 Ativar contexto 29 AS, provendo os recursos de Java Servlet e JSP. 4.4.5 Testar contexto 29 4.5 O Tomcat porém não implementa um contêiner EJB. Para aplicações Bibliotecas Servlet 29 Java Enterprise Edition (Java EE) que utilizam Enterprise JavaBeans (EJB), 4.6 Testar seus servlets 30 4.7 Testar seus servidor de aplicações Java EE completo, como JBoss 31 você deve procurar umJSPs 4.8(software livre), GlassFish (software livre), Apache Geronimo (software Logs 31 AS 4.9 Variáveis de Ambiente 32 SejaTodos os direitos reservados a 3Way Networks um Profissional Aprendendo com Profissionais 23 www.3way.com.br Seja um Profissional Aprendendo com Profissionais 1 28 www.3way.com.br
  29. 29. Java WEB Java WEB livre), IBM WebSphere (comercial), BEA WebLogic (comercial), Oracle AS (comercial) ou o Java EE SDK que inclui Sumário Sun Java System Application Server Platform Edition (gratuito), entre outros. Este é um material de instalação e configuração básica do Tomcat. Ele foi escrito e 1 JDBC Tomcat é um 8 testado com base de Dados Relacional Tomcat 4.1, 5.0, 5.5 e 6.0 em Windows, Unix e em instalações do 1.1 Banco 8 Contêiner Web. 8 Linux. As configurações Database Connectivity criar um ambiente de desenvolvimento 1.2 JDBC – Java aqui propostas são para 1.2.1 java.sql.DriverManager 8 bem simples e independente de qualquer ambiente integrado de desenvolvimento (IDE), 1.3 Fábrica de Conexões 9 suficiente para um primeiro contato com o Tomcat e as tecnologias Java para web. 1.4 Alternativas? Se você quer considerar alternativas ao Tomcat, uma boa opção é o Criar Banco de Dados e Tabelas 10 1.5 Classes Javabeans – Entidades 10 projeto Jetty, servidor web e contêiner Servlet Java, também software livre. Jetty 6 1.6 Inserindo Dados 11 suporta as mais recentes especificações Servlet 2.5 e JSP 2.1 da plataforma Java EE 5.0. 1.7 Fechando a Conexão 12 1.8 PreparedStatement ou Statement 12 4.1.1. Instalar Java Patterns (JDK) - JSE SDK 1.9 Design 13 O Tomcat é inteiramente escrito em Java e, portanto, necessita 13 de 1.9.1 DAO – Data Access Object 1.9.2 Pesquisando 14 uma Java Virtual Machine (JVM) — Máquina Virtual Java — para ser Recurso avaçando: O 15 executado. Assim, é necessário ter a plataforma Java Platform Standard É1.9.3 possível haver várias versões Cursor 1.9.4 Alteração 16 Edition (Java SE) previamente instalada. de JDK/JRE instaladas no 1.9.5 Exclusão 16 Tomcat 4.1 e 5.0 necessitavam do JDK, para compilar as páginas JSP. 2 computador em locais Enterprise Edition Introdução a Java 17 O utilizado? distintos, convivendo sem sido tão Tomcat 5.5 em diante traz embutido e usa o complilador Java Eclipse JDT 2.1 Porque Java EE tem 17 para compilar JSP. Assim, o Tomcat a partir da versão 5.5 necessita apenas do 2.2problema. Neste caso, é O que é Java Enterprise Edition? 18 JRE, mas de 2.3 A plataforma Java Enterprise Editiono JDK ainda é útil para o desenvolvedor. Para seu ambiente 18 importante ficar atento a qual 2.3.1 APIs 19 desenvolvimento Java com Tomcat, onde você deve criar aplicações Java em versão Contêiners 2.3.2 será selecionada para 19 geral, utilize o JDK completo. do Tomcat. 2.3.3 usoDeployment de aplicações 21 3 Análise de arquiteturas 21 4.1.2 Lógica versão de JDK utilizar Qual 3.1 Arquitetura Física e Arquitetura 21 A versão mais atual da plataforma Java SE é a 6, lançada em 3.2 Tipos de aplicações na WEB 21 dezembro de 2006. As duas versões anteriores, Java SE 5 (desde setembro 3.3 Arquitetura MVC para a Web 21 2004) o 3.4 Vantagens da arquitetura MVC e J2SE 1.4.2 (desde junho 2003), ainda são consideradas ativas. Já22 4 Ambiente de desenvolvimento 1.3.1 encerrou seu ciclo de vida e não deve ser usado para nenhum 23 J2SE 4.1 Tomcat 23 propósito. 4.1.1 Instalar Java JSE SDK (JDK) 24 O Tomcat 6.0 requer Java SE 5.0 ou superior. O Tomcat 5.5 suporta também J2SE 1.4.x, mas é necessário 4.1.2 Qual versão de JDK utilizar 24 instalar um pacote adicional de compatibilidade. 4.1.2.1 JAVA_HOME 24 Se você está iniciando um novo ambiente de desenvolvimento, a 4.2 Instalar Tomcat 25 princípio o mais adequado é utilizarutilizar mais recente, JDK 6, que inclui todas 4.2.1 Qual versão de Tomcat a versão 25 A variável de ambiente 25 4.2.2 Iniciar e parar Tomcat as melhorias e facilidadesoatuais para a tecnologia Java padrão. O Java SE 6 é padrão JAVA_HOME deve 4.2.2.1 25 plenamente[Windows] Tomcat como serviço anteriores, exceto raras exceções. compatível com as versões 4.2.2.2 impossibilidade de usar o Java SE 6, o Java SE 5 também funciona muito Tomcat como processo ser definida (e mantida26 Havendo 4.3 Testar Tomcat atualizada) indicando o26 bem com Tomcat. 4.4 Criar contexto de desenvolvimento 26 local de instalação do J2SE 4.4.1 Para obter o Java diretórios Estrutura de SE SDK (JDK) e informações sobre a instalação em seu 26 sistema operacional, acesse o aplicação web link: http://java.sun.com/javase/downloads/ preferencial. Esta variável 4.4.2 Criar contexto de 27 4.4.3 Configurar contexto: web.xml 4.4.4 Ativar contexto 4.1.2.1 JAVA_HOME 4.4.5 Testar contexto 4.5 Completando a Servlet Bibliotecas instalação do SDK, defina a variável de ambiente 4.6 Testar seus servlets JAVA_HOME apontando para seu local de instalação. Isto é muito importante se 4.7 Testar uma instalação de J2SE no computador, mas a variável houver mais de seus JSPs 4.8 Logs JAVA_HOME deve ser definida mesmo se houver apenas uma versão instalada. 4.9 Variáveis de Ambiente Seja Todos os direitos reservados a 3Way Networks um Profissional Aprendendo com Profissionais www.3way.com.br Seja um Profissional Aprendendo com Profissionais www.3way.com.br 27 é consultada pelo Tomcat e vários outros sistemas29 29 baseados em Java para29 determinar a JVM 30 31 preferencial. 31 32 24 1 29

×