You are on page 1of 21

AW2 – Desenvolvimento Web com J2EE: JSP 2.0, Servlets 2.

4 e Design-patterns

1 Introdução a Java Enterprise Edition 2


1.1 Porque Java EE tem sido tão utilizado? 3
1.2 O que é Java Enterprise Edition 5
1.3 Java Enterprise Edition versus Java Standard Edition 6
1.4 Java Community Process 6
1.5 A plataforma Java Enterprise Edition 7
1.5.1 APIs 8
1.5.2 Containers 9
1.5.3 Diagrama de atividades do Container 11
1.5.4 Deployment de aplicações 12

2 Análise de arquiteturas 14
2.1 Arquitetura Física e Arquitetura Lógica 15
2.2 Arquitetura em duas camadas: cliente / servidor 17
2.3 Arquitetura em três camadas: baseada na Web, com cliente “magro” 18
2.4 Arquitetura em três camadas: utilizando EJB 19
2.5 Arquitetura em n-Camadas: baseada na Web, com EJB 20

3 Ambiente de desenvolvimento 22
3.1 Aplicações Web 23
3.1.1 Web ARchive (WAR) 24
3.2 Tomcat 25
3.2.1 Instalação e Configuração 26
3.2.2 Observações relativas à versão 5.5.X 27
3.2.3 Tomcat Administration 27
3.2.4 Tomcat Manager 28
3.2.5 Aplicações no Tomcat 29
3.3 Laboratório 1 30
3.4 Deploy de aplicações com Ant 31
3.4.1 Instalação e Configuração 32
3.4.2 Introdução 33
3.4.3 Projeto (project) 34
3.4.4 Grupo de tarefas (target) 35
3.4.5 Variáveis (properties) 36
3.4.6 Tarefa (task) 38
3.4.7 Dependências 41
3.4.8 Exemplo completo e tags mais usadas 42
3.5 Laboratório 2 49

4 Java Servlet 52
4.1 Overview Histórico 53
4.2 O que é um Servlet? 54
4.3 A classe HttpServlet 56
4.3.1 Overview dos métodos da interface 57
4.4 O Ciclo de vida do Servlet no Container 58
4.5 Deployment Descriptor 59

Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados.


Índice

5 Request e Response 62
5.1 Introdução 63
5.2 HTTP Get 65
5.3 HTTP Post 65
5.4 A Interface HttpServletRequest 66
5.5 A Interface HttpServletResponse 69
5.6 Criando o Servlet OlaMundo 70
5.7 Laboratório 3 72

6 Criando a Aplicação Web 74


6.1 Introdução 75
6.2 Endereçamento Relativo 75
6.3 Formulários 77
6.3.1 Exemplo: Leitura de dados de um formulário 78
6.4 Manipulação de Cookies 83
6.4.1 A Classe javax.servlet.http.Cookie 84
6.4.2 Exemplo: Funcionalidade de lembrar usuário e senha com cookies 85
6.5 Navegação 88
6.5.1 Redirecionamento 89
6.5.2 Encaminhamento 90
6.5.3 Redirect versus Forward 91
6.6 Passagem de dados entre componentes Web 95
6.6.1 Atributos da request 95
6.7 Laboratório 4 101

7 Gerenciamento de Sessão 104


7.1 Introdução 105
7.2 Obtendo uma sessão 108
7.3 Atributos da sessão 109
7.4 Invalidando uma sessão 110
7.5 Exemplo 111
7.6 Gerenciamento de Sessão sem cookies 116
7.7 Laboratório 5 118

8 ServletContext 122
8.1 Introdução 123
8.2 Parâmetros de inicialização 124
8.2.1 Adicionando parâmetros de inicialização no Deployment Descriptor (web.xml) 124
8.3 Utilizando atributos do ServletContext 126

9 JavaServer Pages 128


9.1 Introdução 129
9.1.1 Ciclo de vida do JSP 131
9.2 Estrutura de diretórios 132
9.2.1 Projetos Web 132
9.2.2 JSPs dentro do WAR 133
9.2.3 Como acessar os JSPs? 134

Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados.


AW2 – Desenvolvimento Web com J2EE: JSP 2.0, Servlets 2.4 e Design-patterns

9.3 Elementos utilizados em JSPs 135


9.3.1 Scriptlets 135
9.3.2 Comentários 136
9.3.3 Expressões 136
9.3.4 Declarações 137
9.3.5 Diretivas JSP 138
9.4 Importando pacotes e classes 140
9.5 Laboratório 6 141
9.6 Objetos implícitos 142
9.6.1 Exemplo: Entendendo como funcionam os objetos implícitos 143
9.6.2 Exemplo: Leitura de dados recebidos de um formulário 146
9.6.3 Exemplo: Passando atributos através da request do Servlet para o JSP 150
9.7 JavaBeans 154
9.7.1 <jsp:useBean> 155
9.7.2 <jsp:getProperty> 158
9.7.3 <jsp:setProperty> 159
9.8 Laboratório 7 163
9.9 Páginas compostas 164
9.9.1 Fragmentos JSP 165
9.9.2 Diretiva include 166
9.9.3 Standard Action <jsp:include> 172
9.9.4 Standard Action <jsp:param> 175
9.10 Laboratório 8 176

10 Tratamento de erros em aplicações Web 178


10.1 Configuração de páginas de erro para Servlets 179
10.1.1 Criando nossa Exception 180
10.1.2 Servlet que dispara Exception 180
10.1.3 Mapeamento no Deployment Descriptor 182
10.1.4 Criando a página que será apresentada em caso de erro 183
10.1.5 Enviando Erros HTTP 185
10.2 Configuração de páginas de erro para JSPs 187
10.3 Laboratório 9 189

11 Internacionalização 192
11.1 Introdução 193
11.2 Exemplo 196

12 Expression Language 200


12.1 O que é EL 201
12.2 Sintaxe de EL 203
12.2.1 Literais e Operadores 204
12.2.2 Variáveis 208
12.2.3 Navegação em variáveis 209
12.2.4 Navegação em arrays e Lists 210
12.2.5 Navegação em Maps 211
12.2.6 Objetos implícitos 212
12.3 Habilitando e Desabilitando EL e scriptlets 216

Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados.


Índice

12.4 Laboratório 10 218

13 Introdução ao uso de Tags 222


13.1 Introdução 223
13.2 Como funcionam as Custom Tags? 224
13.3 Como utilizar bibliotecas de tags? 226
13.4 Como criar Custom Tags ? 228

14 JavaServer Pages Standard Tag Library ( JSTL ) 230


14.1 O que é JSTL 231
14.2 Instalação da JSTL 231
14.3 Como usar JSTL em uma página JSP 232
14.4 Biblioteca Core 233
14.4.1 Suporte a variáveis 233
14.4.2 Controle de Fluxo 235
14.4.3 Exemplo 240
14.5 Biblioteca de Internacionalização 245
14.5.1 Locale 245
14.5.2 Mensagens 246
14.5.3 Formatação de Números e Datas 251
14.6 Laboratório 11 259

15 Tag File 262


15.1 O que é um Tag File 263
15.2 Utilizando Tag Files em uma página JSP 264
15.3 Tag Files empacotados 265
15.4 Diretivas 266
15.4.1 tag 266
15.4.2 attribute 267
15.4.3 Exemplo 268
15.5 Standard Actions 270
15.5.1 <jsp:invoke/> 270
15.5.2 <jsp:doBody/> 272
15.6 Comparação entre include e TagFile 273
15.7 Tópicos Avançados 274
15.7.1 variable 274
15.7.2 Exemplo 1 275
15.7.3 Exemplo 2 277
15.8 Laboratório 12 280

16 Simple Tag 282


16.1 O que é uma Simple Tag 283
16.2 Ciclo de vida 283
16.3 Overview das classes envolvidas 284
16.3.1 SimpleTag 284
16.3.2 SimpleTagSupport 284
16.3.3 JspContext 284
16.4 Criando Simple Tags 285

Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados.


AW2 – Desenvolvimento Web com J2EE: JSP 2.0, Servlets 2.4 e Design-patterns

16.4.1 Definindo tags com atributos 285


16.4.2 Tag Library Descriptor 286
16.4.3 Utilizando tags no JSP 288
16.4.4 Exemplo 289
16.5 Exemplo 294
16.6 Mapeamento de tlds em páginas JSP 299
16.6.1 Mapeamento direto na página 299
16.6.2 Mapeamento em web.xml 300
16.6.3 Mapeamento via tag <uri> no arquivo .tld 300
16.7 Tópicos avançados 301
16.7.1 Variables 301
16.7.2 Manipulando o corpo da tag 302
16.8 Laboratório 13 303

17 Filtros 306
17.1 Introdução 307
17.2 Overview das classes envolvidas 308
17.2.1 FilterChain 308
17.2.2 Filter 309
17.3 Configuração do Deployment Descriptor 311
17.4 Criando um filtro 313
17.5 Laboratório 14 319

18 Segurança 322
18.1 Introdução 323
18.2 Conceitos sobre segurança 323
18.2.1 Glossário de terminologias 324
18.2.2 Níveis de segurança 326
18.3 Segurança no modelo Java Enterprise Edition 327
18.4 Repositório de usuários 332
18.4.1 Repositório de usuários em arquivo texto 333
18.4.2 Repositório de usuários em banco de dados relacional 333
18.4.3 Servidores de Diretório LDAP 334
18.5 Definindo grupos e usuários 335
18.6 Declarando requisitos de segurança no web.xml 336
18.6.1 Configuração do sistema de login 336
18.6.2 Configurando roles / papéis / grupos 338
18.6.3 Configurando URLs protegidas 338
18.6.4 Resumo de configurações no web.xml 340
18.7 Deployment de aplicativo Web seguro no Tomcat 342
18.8 Usando o deploytool para configurar segurança 348
18.9 Integrando Tomcat e MySQL com realm 351
18.9.1 Criando um repositório no MySQL 351
18.9.2 Configurando realm no Tomcat 352
18.10 Estendendo o modelo de segurança com API de Servlets 354
18.11 Integrando o modelo de segurança declarativa com frameworks MVC 355

19 Design Patterns 358

Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados.


Índice

19.1 Service Locator 361


19.2 Data Access Object (DAO) 362
19.3 Model, View and Controller design-pattern 365
19.4 Front-Controller design-pattern 367
19.5 Action ou Command design-pattern 370
19.6 Factory e ActionFactory 372
19.7 View Helper 376
19.8 Dispatcher to Views 377
19.9 Business Delegate 378
19.10 Considerações finais sobre padrões 379
19.11 Laboratório 15 380

20 Apêndices 382
20.1 Sintaxe XML para JSP 383
20.2 JSP Code Conventions 387
20.2.1 Convenções para estrutura de diretórios de acordo com o tipo de arquivo 387
20.2.2 Nomenclatura sugerida 388
20.2.3 JSP Page versus JSP Document 388
20.2.4 Comentários 388
20.2.5 JSTL, Scriptlets ou Standard Actions? 389
20.2.6 Recomendações sobre a diretiva page 389
20.2.7 Aspas duplas ou Aspas simples? 389
20.3 Servlet Listener 390
20.4 ServletConfig 394
20.5 Classic Tags 398
20.5.1 TagSupport 398
20.5.2 Definindo tags com atributos 399
20.5.3 O atributo pageContext 399
20.5.4 Exemplo 400
20.5.5 Tag Library Descriptor 401
20.5.6 Diretiva taglib 403
20.5.7 Deploy da aplicação 403
20.5.8 Exemplo 405
20.6 Certificação SCWCD 407
20.6.1 Sobre a certificação 407
20.6.2 Questões para certificação SCWCD 413
20.6.3 Respostas 427
20.7 Introdução a AJAX 434
20.7.1 O que há de errado com as interfaces web tradicionais? 434
20.7.2 O que é AJAX 435
20.7.3 O objeto XMLHttpRequest 437
20.7.4 Utilizando AJAX com Java no lado servidor 439

Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados.


CAPÍTULO
1

Introdução a Java
Enterprise Edition
Porque Java EE tem sido tão utilizado
O que é Java Enterprise Edition
Java Enterprise Edition versus Java Standard Edition
Java Community Process
A plataforma Java Enterprise Edition
1 Introdução a Java Enterprise Edition

1 Introdução a Java Enterprise Edition

Anotações

2 Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados.


AW2 – Desenvolvimento Web com J2EE: JSP 2.0, Servlets 2.4 e Design-patterns

1.1 Porque Java EE tem sido tão utilizado?


Java EE é multi-plataforma, ou seja, é uma solução que pode ser utilizada para PCs com Linux, com Windows,
com Apple e também pode ser utilizada com MainFrames.

Além de ser uma vantagem numérica, pois não elimina parte do mercado que usa um sistema operacional
específico também aumenta a “integrabilidade” da aplicação, ou seja, permite às empresas que integrem os
sistemas que estão rodando em diferentes plataformas, como por exemplo o sistema Web, os sistemas que estão
nos MainFrames, os sistemas que são executados na máquina do usuário.

Esta é uma grande vantagem para grandes corporações que enfrentam a batalha da integração de sistemas.

Outro fator fundamental no sucesso da plataforma é a participação de grandes empresas na especificação das
APIs no Java Community Process, como Oracle, IBM, Apple, que atuam não só na especificação, mas também no
desenvolvimento de produtos como containers, IDEs, frameworks, que agregam assim ainda mais confiabilidade a
tecnologia.

Certamente a existência de diversos containers Open-Source e/ou Gratuitos, também colabora com o alto índice
de adoção da tecnologia.

Anotações

Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados. 3


1 Introdução a Java Enterprise Edition

Além destes fatores, elencamos aqui alguns pontos que podem ser atingidos com Java EE, considerados
fundamentais para a Arquitetura dos sistemas desenvolvidos atualmente:

Escalabilidade
Trata-se de um dos "ades" da engenharia de software que pertence à nova economia globalizada e
conectada. Uma campanha de marketing pode fazer com que uma pequena empresa cresça de forma
abrupta do dia para a noite. É necessário que a sua solução seja capaz de acompanhar o crescimento do
negócio.

Disponibilidade
Com uma linguagem e plataforma confiáveis, podemos contar com sistemas que rodam simultaneamente
em mais de um servidor para prevenção de falhas. Sistemas conhecidos como cluster de servidores
permitem que aplicativos fiquem distribuídos e à prova de falha no data-center hospedeiro.

Performance
Quando o assunto é computação distribuída, Java tem uma performance muito boa em comparação a
outras tecnologias. Podemos dizer, por exemplo, que Fortran é mais rápido que Java para resolver um
algoritmo complexo isoladamente, mas Java, quando distribuído entre servidores, não possui concorrente.

Baixo custo de manutenção


Código bem escrito, objetos bem definidos e documentados, herança, polimorfismo, interfaces da
orientação a objeto e outros aspectos técnicos tornam um software simples de ser mantido no decorrer do
tempo, quando bem planejado e escrito em Java. Sabemos que os aplicativos tendem a ter um ciclo de
vida cada vez mais duradouro na empresa, por isto o custo de manutenção do software se torna cada vez
mais importante.

Anotações

4 Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados.


AW2 – Desenvolvimento Web com J2EE: JSP 2.0, Servlets 2.4 e Design-patterns

1.2 O que é Java Enterprise Edition


Java Enterprise Edition é uma plataforma de desenvolvimento de componentes para aplicações em multi-camada,
que disponibiliza uma série de serviços de infra-estrutura de alto nível, evitando o desenvolvimento de código
complexo e aproximando os desenvolvedores do negócio em si.

Algumas das especificações de componentes mais importantes da plataforma Java Enterprise Edition são:
JavaServer Pages (JSP) : utilizadas para criar páginas Web;
Servlets: geralmente utilizado para construir a camada de controle da aplicação, viabilizando a
integração entre as páginas JSP e a camada de negócios;
Enterprise JavaBeans: utilizados para criar componentes distribuídos, representando dados ou
regras de negócio.

Nenhum destes componentes foi idealizado para ser executado diretamente pela máquina virtual, todos eles
devem ser executados e controlados por um container específico como podemos observar na figura abaixo:

Web Container: hospeda Servlets, JSPs (JavaServer Pages) e arquivos estáticos (HTMLs,
JavaScript, XML); utiliza qualquer classe Java como, por exemplo, APIs de envio de e-mail ou acesso
a banco de dados.
EJB Container: hospeda Enterprise JavaBeans (EJB) que, por sua vez, também pode utilizar uma
série de APIs Java, tais como envio de e-mail e acesso a banco de dados.
Database: Representamos aqui um banco de dados, mas poderíamos, a partir de uma arquitetura
Java EE, acessar arquivos, sistemas legados, ERPs, fila de mensagens e qualquer outra fonte de
dados.

Anotações

Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados. 5


1 Introdução a Java Enterprise Edition

1.3 Java Enterprise Edition versus Java Standard Edition


É importante realçar que embora os componentes sejam gerenciados pelo container, ainda assim é necessário
uma Java Virtual Machine. É como se estívessemos escrevendo componentes de mais alto nível.

1.4 Java Community Process


Assim como Java Standard Edition a especificação de toda a plataforma Java EE é gerenciada pelo Java
Community Process (JCP) e está disponível na URL www.jcp.org. O JCP é composto por um comitê executivo e
membros da comunidade. O Comitê executivo é composto por experts de diversas empresas, como Sun, Intel,
IBM, Apple, Borland, BEA Systems, SAP, Fujitsu, HP, Apache, e Google entre outas. Desta forma dizemos que as
empresas colaboram na especificação e concorrem na implementação, ou seja, apesar de discutirem juntas a
evolução da plataforma, muitas empresas são concorrentes no mercado de containers Java EE.

Anotações

6 Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados.


AW2 – Desenvolvimento Web com J2EE: JSP 2.0, Servlets 2.4 e Design-patterns

1.5 A plataforma Java Enterprise Edition

Item Descrição

Blueprints Design Guidelines Padrões de codificação e modelagem desenvolvidos por técnicos altamente
for Java EE capacitados, reunindo em documentos e exemplos de código, as melhores
práticas de desenvolvimento de aplicação Java EE.

Compatibility Test Suite Processo formal de teste de compatibilidade de Application Server Java EE,
garantindo a padronização entre os servidores de diferentes fabricantes.

Reference Implementation A plataforma inclui um servidor chamado de R.I. (Reference Implementation)


implementado com 100% das funcionalidades especificadas. Pode ser utilizado
para validar aplicações Java EE, sendo 100% gratuito e com código fonte
disponível.

APIs Enterprise JavaBeans, Java Servlets API, Java Server Pages, XML e
Messaging.

Anotações

Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados. 7


1 Introdução a Java Enterprise Edition

1.5.1 APIs
O conjunto de APIs Java EE é definido, em sua maioria, por interfaces que podem ser empregadas pelos
desenvolvedores das aplicações corporativas. Tais APIs possuem vínculos com o núcleo (kernel) do servidor que
executa tarefas voltadas para o gerenciamento de recursos e infra-estrutura.

Podemos dizer que, ao desenvolvermos aplicações Java EE através do uso de APIs disponibilizadas no Java
Enterprise Edition (Reference Implementation), elas podem ser executadas nos servidores de aplicações que
tenham implementado as especificações técnicas dos servidores JAVA EE.

Contamos com as seguintes APIs na plataforma Java EE:

API Descrição

JDBC Extension Extensão da API JDBC.

Enterprise JavaBeans (EJB) Componentes gerenciados pelo EJB Container, que oferece
serviços de transação, multi-threading, persistência automática,
entre outros para os componentes.

Java Servlets Componentes frequentemente utilizados para integração entre


as páginas Web e a camada de negócio.

JavaServer Pages (JSP) API utilizada principalmente para construção de páginas


dinâmicas.

Java Message Service (JMS) API para tratamento de mensagens assíncronas.

Java Transaction API (JTA) API para controle manual de transações.

JavaMail Utilizada para envio e recebimento de e-mails.

Java API for XML Processing ( JAXP) Processamento de XML.

Java Naming and Directory Interface ( JNDI) API que oferece acesso a Catálogo de Objetos.

Java Connector Architecture API que padroniza os conectores para integração de aplicações.

Web Services ( JAX-RPC, JAXR e SAAJ ) APIs para construção e utilização de Web Services.

A partir de J2EE 1.4.

Anotações

8 Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados.


AW2 – Desenvolvimento Web com J2EE: JSP 2.0, Servlets 2.4 e Design-patterns

1.5.2 Containers
Containers são servidores de objetos, também chamados de Servidores de aplicação que oferecem serviços e
infra-estrutura para a execução de componentes.
O conceito de container é independente da plataforma Java EE, utilizado em outras linguagens e plataformas.

Existem outros tipos de container utilizados em Java, considera-se a seguinte divisão de perfil de containers Java
e Java EE:

Tipo Descrição / Exemplo

Client-side Responsável pelo ciclo de vida da aplicação, gerenciamento de eventos, bibliotecas, entre
outros.

Exemplos:

Applet container - para painéis gráficos desenvolvidos com AWT/Swing controlados por
browser;

Application client container - aplicações standalone (AWT / Swing), podendo, opcionalmente, ser
distribuídas por Java Web Start.

Server-side Um container server-side, gerencia, além do ciclo de vida de componentes, recursos e meios de
acesso. Configuramos no container os recursos que desejamos disponibilizar para que nossas
aplicações os acessem através de APIs de serviços, como no caso de um pooling de Conexões
a Banco de Dados.

Exemplos:

Web container - para objetos dirigidos por HTTP (Servlets e JSP);

EJB container - para objetos de negócio server-side.

Além da definição das interfaces na API, Java Enterprise Edition também especifica como o
container deve ser, quais recursos ele deve obrigatoriamente implementar, quais serviços ele deve
oferecer. Permitindo assim que diversas empresas implementem seus próprios containers.
Desta forma as aplicações desenvolvidas de acordo com a especificação podem ser instaladas em
qualquer container.

Anotações

Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados. 9


1 Introdução a Java Enterprise Edition

Apresentamos a seguir uma pequena amostra de empresas e organizações que desenvolvem containers Java EE:
Sun
IBM
Oracle
BEA Systems
JBoss Group
Apache
Macromedia
Borland

A lista completa de empresas licenciadas em Java EE e o teste de compatibilidade associado pode ser encontrada
em http://java.sun.com/j2ee/licensees.html.

Como já vimos, a plataforma Java EE está fortemente baseada em Containers, como o foco do nosso curso é o
desenvolvimento de aplicações Java para Web, nosso alvo são os Web Containers.

Alguns dos serviços oferecidos pelos Web Containers são:


Gerenciamento dos recursos utilizados pelos componentes, como pool de conexões;
Gerenciamento do ciclo de vida dos componentes (Servlets, JSPs e Custom Tags);
Gerenciamento de sessões de usuários;
Controle de acesso.

As duas principais APIs suportadas do container Web são: Java Servlets e JavaServer Pages.

A implementação de referência de container Web é o Tomcat. Observe que há alguns servidores que se
denominam compatíveis com o JAVA EE, mas que não passaram pelo teste de Compatibilidade. Em caso de
dúvidas, pode-se encontrar uma lista dos containers JAVA EE na seguinte URL:
http://java.sun.com/j2ee/compatibility.html

Anotações

10 Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados.


AW2 – Desenvolvimento Web com J2EE: JSP 2.0, Servlets 2.4 e Design-patterns

1.5.3 Diagrama de atividades do Container

Anotações

Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados. 11


1 Introdução a Java Enterprise Edition

1.5.4 Deployment de aplicações


Normalmente, a estrutura de diretórios utilizada em desenvolvimento não é a mesma estrutura utilizada dentro do
servidor. Além disto, nos diretórios de desenvolvimento temos os arquivos fonte, enquanto no servidor temos
apenas os arquivos compilados (além dos outros arquivos necessários).

O trabalho de mover os arquivos estáticos da estrutura de desenvolvimento para o Container Web, assim como, o
da compilação das classes Java, é conhecido como deployment e existem duas opções para a realização desta
operação. Podemos gerar um empacotamento WAR para o nosso aplicativo, ou então, copiar diretamente os
arquivos para dentro do container, seguindo uma estrutura de diretórios conforme será apresentada mais adiante
(deployment aberto ou expandido).

Este trabalho pode ser feito:


Manualmente: copiando os arquivos e organizando dentro do container na estrutura necessária;
Através de ferramentas oferecidas pelo próprio container;
Pelo ambiente de desenvolvimento (IDE);
Por ferramentas específicas como Ant e Maven.

Anotações

12 Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados.


CAPÍTULO
2

Análise de Arquiteturas
Arquitetura Física e Arquitetura Lógica
Arquitetura em duas camadas: cliente / servidor
Arquitetura em três camadas:beseada na Web com cliente “magro”
Arquitetura em três camadas: utilizando EJB
Arquitetura em n-Camadas: baseada na Web, com EJB
2 Análise de arquiteturas

2 Análise de arquiteturas

Anotações

14 Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados.


AW2 – Desenvolvimento Web com J2EE: JSP 2.0, Servlets 2.4 e Design-patterns

2.1 Arquitetura Física e Arquitetura Lógica


Os servidores podem estar todos fisicamente na mesma máquina, apesar de existir a divisão conceitual de
responsabilidades e processamento, ou podem estar separados fisicamente, cada um em uma máquina separada.

Muitas vezes não é necessario inicialmente separar os servidores fisicamente, mas a divisão conceitual garante a
escalabilidade e a flexibilidade da arquitetura, permitindo e facilitando a separação física dos servidores no
momento em que seja necessário.

Servidor HTTP

Container Web

Container EJB

Banco de Dados
Cliente

Todos os servidores estão fisicamente na mesma máquina

Anotações

Copyright 2005 – Globalcode – The Developers Company, todos os direitos reservados. 15

You might also like