Este documento contém um sumário sobre Java Web, incluindo tópicos como JDBC, Java Servlet, JavaServer Pages, arquitetura MVC, ambiente de desenvolvimento Tomcat e mais.
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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