SlideShare uma empresa Scribd logo
1 de 230
Baixar para ler offline
Apostila

Java Web

www.3way.com.br
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo
3way curso-formacao-java-web-completo

Mais conteúdo relacionado

Destaque

Apostila de programação visual netbeans
Apostila de programação visual   netbeansApostila de programação visual   netbeans
Apostila de programação visual netbeansPaulo Carvalho
 
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
Poo1   aula 2 - java - apresentação do netbeans e 1º programaPoo1   aula 2 - java - apresentação do netbeans e 1º programa
Poo1 aula 2 - java - apresentação do netbeans e 1º programaDenis Sobrenome
 
Aplicações java com netbeans
Aplicações  java com  netbeansAplicações  java com  netbeans
Aplicações java com netbeansThalles Anderson
 
Conimel terminais2012
Conimel terminais2012Conimel terminais2012
Conimel terminais2012mapple2012
 
Apostila programação visual usando java e netbeans
Apostila programação visual usando java e netbeansApostila programação visual usando java e netbeans
Apostila programação visual usando java e netbeansGeorge Dantas
 
Software de qualidade e qualidade de código
Software de qualidade e qualidade de códigoSoftware de qualidade e qualidade de código
Software de qualidade e qualidade de códigoGuilherme Silveira
 
Java pra web mais fácil com MVC
Java pra web mais fácil com MVCJava pra web mais fácil com MVC
Java pra web mais fácil com MVCCecilia Fernandes
 
Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Ricardo Terra
 
Requisitos de Software
Requisitos de SoftwareRequisitos de Software
Requisitos de SoftwareSilvio Cadete
 
Apresentação Java Web - Jsf+Hibernate
Apresentação Java Web - Jsf+HibernateApresentação Java Web - Jsf+Hibernate
Apresentação Java Web - Jsf+HibernateZarathon Maia
 
Aplicações Basicas em Java com o NetBeans IDE
Aplicações Basicas em Java com o NetBeans IDEAplicações Basicas em Java com o NetBeans IDE
Aplicações Basicas em Java com o NetBeans IDEManoel Rufino Neto
 
Net beans 7.4 Funções e Atalhos
Net beans 7.4 Funções e AtalhosNet beans 7.4 Funções e Atalhos
Net beans 7.4 Funções e Atalhosandreandrade17
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de softwareLuiz China
 
Desenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework DemoiselleDesenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework DemoiselleSerge Rehem
 

Destaque (20)

Apostila de programação visual netbeans
Apostila de programação visual   netbeansApostila de programação visual   netbeans
Apostila de programação visual netbeans
 
Javafree
JavafreeJavafree
Javafree
 
Apostila: Netbeans
Apostila: NetbeansApostila: Netbeans
Apostila: Netbeans
 
Desenvolvimento de Aplicações
Desenvolvimento de AplicaçõesDesenvolvimento de Aplicações
Desenvolvimento de Aplicações
 
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
Poo1   aula 2 - java - apresentação do netbeans e 1º programaPoo1   aula 2 - java - apresentação do netbeans e 1º programa
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
 
Aplicações java com netbeans
Aplicações  java com  netbeansAplicações  java com  netbeans
Aplicações java com netbeans
 
Conimel terminais2012
Conimel terminais2012Conimel terminais2012
Conimel terminais2012
 
Apostila programação visual usando java e netbeans
Apostila programação visual usando java e netbeansApostila programação visual usando java e netbeans
Apostila programação visual usando java e netbeans
 
Software de qualidade e qualidade de código
Software de qualidade e qualidade de códigoSoftware de qualidade e qualidade de código
Software de qualidade e qualidade de código
 
Java pra web mais fácil com MVC
Java pra web mais fácil com MVCJava pra web mais fácil com MVC
Java pra web mais fácil com MVC
 
Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)
 
Java Web, o Tutorial
Java Web, o TutorialJava Web, o Tutorial
Java Web, o Tutorial
 
Requisitos de Software
Requisitos de SoftwareRequisitos de Software
Requisitos de Software
 
servlet-introducao
servlet-introducaoservlet-introducao
servlet-introducao
 
Apresentação Java Web - Jsf+Hibernate
Apresentação Java Web - Jsf+HibernateApresentação Java Web - Jsf+Hibernate
Apresentação Java Web - Jsf+Hibernate
 
Aplicações Basicas em Java com o NetBeans IDE
Aplicações Basicas em Java com o NetBeans IDEAplicações Basicas em Java com o NetBeans IDE
Aplicações Basicas em Java com o NetBeans IDE
 
Use a cabeça jsp & servlets
Use a cabeça   jsp & servletsUse a cabeça   jsp & servlets
Use a cabeça jsp & servlets
 
Net beans 7.4 Funções e Atalhos
Net beans 7.4 Funções e AtalhosNet beans 7.4 Funções e Atalhos
Net beans 7.4 Funções e Atalhos
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
 
Desenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework DemoiselleDesenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework Demoiselle
 

Semelhante a 3way curso-formacao-java-web-completo

Introducão ao Grok - PyConBrasil 3
Introducão ao Grok - PyConBrasil 3Introducão ao Grok - PyConBrasil 3
Introducão ao Grok - PyConBrasil 3Dirceu Pereira Tiegs
 
Java web fj21-- apostila da caelum
Java web fj21-- apostila da caelumJava web fj21-- apostila da caelum
Java web fj21-- apostila da caelumAgenor Neto
 
Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Thiago Rondon
 
Um Mundo Java Sem XML
Um Mundo Java Sem XMLUm Mundo Java Sem XML
Um Mundo Java Sem XMLiMasters
 

Semelhante a 3way curso-formacao-java-web-completo (6)

Introducão ao Grok - PyConBrasil 3
Introducão ao Grok - PyConBrasil 3Introducão ao Grok - PyConBrasil 3
Introducão ao Grok - PyConBrasil 3
 
Apresentando o CEJUG e o poder do Java
Apresentando o CEJUG e o poder do JavaApresentando o CEJUG e o poder do Java
Apresentando o CEJUG e o poder do Java
 
Java web fj21-- apostila da caelum
Java web fj21-- apostila da caelumJava web fj21-- apostila da caelum
Java web fj21-- apostila da caelum
 
Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.
 
Um Mundo Java Sem XML
Um Mundo Java Sem XMLUm Mundo Java Sem XML
Um Mundo Java Sem XML
 
Caelum java-web-fj21
Caelum java-web-fj21Caelum java-web-fj21
Caelum java-web-fj21
 

3way curso-formacao-java-web-completo

  • 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