Você está na página 1de 53

Programação Java Web

Introdução Programação Java Web


Servlet Prof. Jeangrei Veiga
jeangrei@visionnit.com.br
PROGRAMA

Arquitetura em Camadas

Arquitetura J2EE

Container e Serviços

Servlet

2
Prof. Jeangrei Veiga UPF - ADS - Programação de Aplicações Web
PROGRAMAÇÃO JAVA WEB
ARQUITETURA EM CAMADAS

Introdução a Programação de Computadores - Prof. Jeangrei Veiga


3
PROGRAMAÇÃO JAVA WEB
Arquitetura em Camadas – Introdução e Motivação
▪ Requisitos da Solução: O que grandes empresas com
grandes problemas de desenvolvimento de sistemas,
querem tecnicamente?
▪ Melhor flexibilidade: satisfazer novos requisitos de negócio
rapidamente
▪ Melhor manutenabilidade: minimizar o impacto de mudanças
▪ Melhor reusabilidade: montar rapidamente aplicações únicas e
dinâmicas
▪ Melhor aproveitamento do legado: reusar funcionalidade de
sistemas legados em novas aplicações.
▪ Melhor interoperabilidade: possibilitando integrar 2 aplicações
executando em plataformas diferentes
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 4
PROGRAMAÇÃO JAVA WEB
Arquitetura em Camadas – Introdução e Motivação
▪ Melhor escalabilidade: Possibilitando distribuir e configurar a
execução da aplicação para satisfazer vários volumes de
transações.
▪ Menor tempo de desenvolvimento:
▪ Possibilitando viver em “Internet time” e com baixo orçamento
▪ Equivalente a querer Produtividade do Programador.
▪ Melhor robustez: Possibilitando ter soluções com menos defeitos,
confiabilidade e disponibilidade.
▪ Menor risco: Possibilitando tudo sem se arriscar a ter projetos
fracassados.
Resumindo: tudo que ISO 9126 caracteriza como “qualidade de
software”
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 5
PROGRAMAÇÃO JAVA WEB
Arquitetura em Camadas – Introdução e Motivação

▪Solução: Aplicações Multicamadas


Distribuídas

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 6


PROGRAMAÇÃO JAVA WEB
Arquitetura em Camadas – Evolução das Aplicações Multicamadas
Centralizada
▪ Manutenção e atualização
extremamente penosa e complexa

▪ Dominantes de 1946 até década de 80


como arquitetura corporativa
(Mainfremes)

▪ Problema básico: interface não


amigável

7
System/360 – Mainframe criado pela IBM em 1964
PROGRAMAÇÃO JAVA WEB
Arquitetura em Camadas – Evolução das Aplicações Multicamadas
2 Camadas
▪ Sistemas em Camadas permitiram aumentar a escalabilidade
de uso de Sistemas de Informações, surgindo para:
▪ Melhor aproveitar os PCs da empresa
▪ Oferecer sistemas com interfaces gráficas amigáveis
▪ Integrar o desktop e os dados corporativos

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 8


PROGRAMAÇÃO JAVA WEB
Arquitetura em Camadas – Evolução das Aplicações Multicamadas
3 Camadas
▪ A arquitetura cliente/servidor em 2 camadas sofria de vários
problemas:
✓ Falta de escalabilidade (conexões a bancos de dados).
✓ Enormes problemas de manutenção (mudanças na lógica de aplicação
forçava instalações).
✓ Dificuldade de acessar fontes
heterogêneas (legado CICS, 3270, ...).

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 9


PROGRAMAÇÃO JAVA WEB
Arquitetura em Camadas – Evolução das Aplicações Multicamadas
3 Camadas
▪ A arquitetura em 3 camadas original sofre de problemas:
✓ Instalação inicial de programas em desktop é cara.
✓ O problema de manutenção ainda persiste quando há mudanças à camada
de apresentação.

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 10


PROGRAMAÇÃO JAVA WEB
Arquitetura em Camadas – Evolução das Aplicações Multicamadas
4 Camadas
▪ Então, usamos o Browser como Cliente Universal
▪ É retirada a apresentação do cliente e
centralizá-lo
▪ O cliente deixa de existir como um
programa, o acesso é feito através de um
navegador.
▪ Às vezes, continua-se a chamar isso de 3
camadas porque as camadas Web e
Aplicação frequentemente rodam na
mesma máquina (para pequenos volumes)

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 11


PROGRAMAÇÃO JAVA WEB
Arquitetura em Camadas – Evolução das Aplicações Multicamadas
n Camadas
▪ Os problemas remanescentes:
✓ Não há suporte a Thin Clients (PDAs, celulares, smart cards, quiosques, ...)
pois preciso usar um browser (pesado) no cliente
✓ Dificuldade de criar software reutilizável: cadê a componentização?

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 12


PROGRAMAÇÃO JAVA WEB
Arquitetura em Camadas – Evolução das Aplicações Multicamadas
n Camadas
▪ Fazer aplicações distribuídas multicamadas é difícil, tem que:
✓ Implementar persistência (impedance mismatch entre o mundo OO e o mundo
dos BDs relacionais)
✓ Implementar tolerância a falhas com fail-over
✓ Implementar gerência de transações distribuídas
✓ Implementar balanceamento de carga
✓ Implementar resource pooling
✓ Etc.
▪ O truque é introduzir middleware num servidor de aplicação que ofereça esses
serviços automaticamente

▪ As soluções oferecidas (J2EE, .Net) são baseadas em componentes

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 13


PROGRAMAÇÃO JAVA WEB
Arquitetura em Camadas – Evolução das Aplicações Multicamadas
n Camadas

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 14


PROGRAMAÇÃO JAVA WEB
ARQUITETURA J2EE
“JAVA 2 ENTERPRISE EDITION”

Introdução a Programação de Computadores - Prof. Jeangrei Veiga


15
PROGRAMAÇÃO JAVA WEB
Arquitetura J2EE

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 16


PROGRAMAÇÃO JAVA WEB
Arquitetura J2EE

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 17


PROGRAMAÇÃO JAVA WEB
Arquitetura J2EE
▪ Foi criada a partir da linguagem de programação Java e de
tecnologias Java e possui uma boa adaptabilidade a
ambientes distribuídos.
▪ É um padrão que traz alguns benefícios para quem o aplica,
como:
✓Portabilidade, produtos que podem ser executados em
qualquer sistema que suporte J2EE;
✓Variedade de bibliotecas (componentes);
✓Aplicações independentes;

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 18


PROGRAMAÇÃO JAVA WEB
Arquitetura J2EE
▪ Os servidores de aplicação J2EE lidam com problemas
complexos, como:
✓Sincronização;
✓Transação;
✓Alocação de Recursos;
✓Gerenciamento de ciclo de vida.
▪ Não tem uma arquitetura fechada;

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 19


PROGRAMAÇÃO JAVA WEB
Arquitetura J2EE
▪ Redução no tempo de desenvolvimento e menor custo
(proposta do conceito de processo de desenvolvimento de
software);
▪ Plataforma de desenvolvimento padrão para aplicações
distribuídas em Java.
▪ Fornece uma divisão clara, lógica e física de uma aplicação
em camadas.

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 20


PROGRAMAÇÃO JAVA WEB
Arquitetura J2EE
Bibliotecas (componentes)
▪ Aplicações J2EE são compostas de componentes
▪ Componentes são unidades autocontida de software que pode
ser composta numa aplicação em tempo de design(sem
compilação)
▪ Componentes J2EE são escritos em Java

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 21


PROGRAMAÇÃO JAVA WEB
Arquitetura J2EE
Bibliotecas (componentes)
▪ Exemplos:
✓ JDBC API, para acessar Bancos de Dados
✓ Java Servlet Technology
✓ JavaServer Pages (JSP) Technology
✓ Java Message Service (JMS), para comunicação assíncrona distribuída,
fracamente acoplada e confiável
✓ Java Transaction API (JTA), para a demarcação de transações
✓ JavaMail™ Technology, para que aplicações possam enviar mail
✓ Java API for XML Processing (JAXP), para implementar B2B, relatório XML, etc.
✓ J2EE Connector Architecture, para se conectar de forma simples a vários
sistemas de informação corporativos (ERP, BD)
✓ Java Authentication and Authorization Service (JAAS), para prover serviços de
autenticação e autorização.
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 22
PROGRAMAÇÃO JAVA WEB
J2EE CONTAINER E SERVIÇOS

Introdução a Programação de Computadores - Prof. Jeangrei Veiga


23
PROGRAMAÇÃO JAVA WEB Tomcat é um exemplo de web container
J2EE Container e Serviços

Executam um “console”
na máquina cliente

Observe que servlets e JSPs podem executar sem um "J2EE server" completo, como
num servidor Web com suporte especial, como exemplo o Glassfish, JBOSS, Websphere
são exemplos de J2EE Server. 24
PROGRAMAÇÃO JAVA WEB
J2EE Container e Serviços
TOMCAT - é um web container bastante estável. Tem todas
características que um container profissional de aplicações web
possui.
Glassfish - permite todas as especificações da API Java EE,
tais como JDBC, RMI, JavaMail, JMS, JMX, etc. e determina
como as gerenciar.

JBoss - rapidez de inicialização, pouco consumo de


recursos e serviços iniciados on-demand.
WildFly - servidor de aplicações open source em Java, com
padrões definidos pela especificação Java EE.

Jetty - conta com servidor HTTP e Servlet Container


totalmente em Java.

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 25


PROGRAMAÇÃO JAVA WEB
J2EE Container e Serviços
▪ A chave da arquitetura J2EE é que muito trabalho normalmente
feito pelo programador é poupado, já que é feito
automaticamente pelo middleware, deixando o programador se
concentrar no Business Logic.
▪ A entidade que faz essa mágica é o Container, o qual "envolve"
um componente de forma a capturar mensagens dirigidas ao
componente e fornecer serviços automáticos a este.

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 26


PROGRAMAÇÃO JAVA WEB
J2EE Container e Serviços
▪ Portanto, antes de ser usado, um componente (seja cliente, Web
ou EJB) deve:
✓Ser montado numa aplicação
✓Ser "deployed" (implantado) dentro de um container
▪ O container pode ser configurado em tempo de deployment com
declarative programming, isto é, mudança de atributos

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 27


PROGRAMAÇÃO JAVA WEB
J2EE Container e Serviços
▪ Exemplos do que se faz no deployment ao configurar um
container:
✓Estabelecer segurança
✓Estabelecer o tratamento transacional
✓Mapear nomes entre a aplicação e os recursos disponíveis
▪ O container também gerencia serviços não configuráveis:
✓O lifecycle dos componentes (achar, criar, destruir, ...)
✓Pooling de recursos (conexões de bancos de dados, por exemplo)
✓Persistência de dados

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 28


PROGRAMAÇÃO JAVA WEB
J2EE Container e Serviços
Atividade 0 – Instalar e Configurar Apache Tomcat na IDE Netbeans
▪ Utilizar o tutorial “3.Tutorial_InstalandoTomcatEclipse” para realização desta
atividade.

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 29


PROGRAMAÇÃO JAVA WEB
SERVLET

Introdução a Programação de Computadores - Prof. Jeangrei Veiga


30
PROGRAMAÇÃO JAVA WEB
Primeiro Projeto Java Web
Atividade 1 – Criar o primeiro projeto Java Web
▪ Utilizar o tutorial “4-Tutorial_PrimeiroProjetoJavaWeb” para realização desta
atividade.

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 31


PROGRAMAÇÃO JAVA WEB
SERVLET
Introdução
▪ Servlets e JSP são duas tecnologias desenvolvidas pela SUN
para desenvolvimento de aplicações WEB
▪ Servlets são classes Java que são instanciadas e executadas
em associação com servidores Web, atendendo a
requisições por meio do protocolo HTTP.
▪ Ao serem acionados, os objetos Servlets podem enviar a
resposta na forma de uma página HTML ou qualquer outro
formato.

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 32


PROGRAMAÇÃO JAVA WEB
SERVLET
Introdução
▪ Servlets são tipicamente usados no desenvolvimento de
sites dinâmicos
✓Onde algumas de suas páginas são construídas no momento do
atendimento de um requisição.
✓Assim é possível criar páginas com conteúdo variável, de acordo
com o usuário, tempo, ou informações armazenadas em um banco
de dados
▪ Servlets não possuem interface gráfica e suas instâncias são
executadas dentro de um ambiente gráfico denominado
container
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 33 33
PROGRAMAÇÃO JAVA WEB
SERVLET
O que é Servlet?
▪ O nome “servlet” vem do inglês e dá uma ideia de servidor
pequeno cujo objetivo basicamente é receber requisições
HTTP, processá-las e responder ao cliente, essa resposta
pode ser um HTML, uma imagem etc.

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 34 34


PROGRAMAÇÃO JAVA WEB
SERVLET
Como Funciona?
1. Cliente (navegador) faz uma requisição HTTP ao servidor.
2. O servlet responsável trata a requisição e responde ao
cliente de acordo.
3. O cliente recebe os dados e exibe.

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 35 35


PROGRAMAÇÃO JAVA WEB
SERVLET
Container
• Servlets provêm uma solução interessante para o
relacionamento cliente/servidor na internet, tornando-se
uma alternativa para implementação de sistemas para a
Web.
Client Machine J2EE Server

Browser
Servlet JSP Page
BD

Web Container

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 36


PROGRAMAÇÃO JAVA WEB
SERVLET
Container
• O container atua em associação com servidores Web
recebendo as requisições encaminhadas por eles.
• Tipicamente existe apenas uma instância de cada Servlet

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 37 37


PROGRAMAÇÃO JAVA WEB
SERVLET
Container: Multi-thread
▪ Servlets são carregados apenas uma vez e executados de forma
multi-thread podem atender a mais de uma solicitação
simultâneamente.
▪ O Container pode criar vários threads (cópia/ clone, onde os
dados serão compartilhados minimizando alguns problemas) de
modo a permitir que uma única instância do Servlet atenda mais de
uma requisição simultaneamente.

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 38 38


PROGRAMAÇÃO JAVA WEB
SERVLET
Protocolo HTTP
▪ O cliente inicia a conversa pedindo uma página, onde não
há callback do servidor para o cliente

▪ GET Request Method, para pedir páginas estáticas ou


dinâmicas

▪ POST Request Method, para pedir páginas dinâmicas

▪ Formulários em páginas HTML podem usar o método GET


ou POST
MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 39
PROGRAMAÇÃO JAVA WEB
SERVLET
Protocolo HTTP
▪ Hypertext Transfer Protocol
▪ Seu uso para a obtenção de recursos levou ao estabelecimento
da WWW
▪ Primeira versão (HTTP/0.9) é de 1990
▪ Em 1996 foi liberada a versão 1.1
▪ Fica na camada de aplicação segundo o modelo de OSI
▪ Trafega sobre o protocolo TCP/IP
▪ A comunicação entre o cliente e o servidor é por meio de
mensagens
▪ Não guarda estado entre as trocas de mensagens

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 40


PROGRAMAÇÃO JAVA WEB
SERVLET
Protocolo HTTP
▪ Possui 8 métodos que indicam a ação a ser realizada no
recurso especificado:
▪ GET – Solicita um recurso
▪ HEAD – Solicita metainformações de um recurso
▪ POST – Envia dados para serem processados
▪ PUT – Envia um recurso
▪ DELETE – Excluir o recurso
▪ TRACE – Ecoa a requisição
▪ OPTIONS – Recupera os métodos que o servidor aceita
▪ CONNECT – Uso com proxy para túnel SSL

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 41


PROGRAMAÇÃO JAVA WEB
SERVLET
Classe HttpSerlvet
▪ Além de herdar as características da classe HttpServlet, o
programador precisa sobrescrever ao menos um dos
seguintes métodos.

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 42


PROGRAMAÇÃO JAVA WEB
SERVLET
Atividade 2 – Implementar Servlet no projeto JavaWebHelloWord

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 43


PROGRAMAÇÃO JAVA WEB
SERVLET
Atividade 2 – Implementar Servlet no projeto JavaWebHelloWord
▪ Adicionar a classe
Servlet “OlaMundoServlet.java”
no projeto.

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 44


PROGRAMAÇÃO JAVA WEB
SERVLET
Atividade 2 – Implementar Servlet no projeto JavaWebHelloWord
▪ Definir o pacote da classe
▪ Definir o nome da classe

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 45


PROGRAMAÇÃO JAVA WEB
SERVLET
Atividade 2 – Implementar Servlet no projeto JavaWebHelloWord
▪ Editar a página index.html, adicionando código para criar um link

Código HTML que criar um link


para classe servlet criada

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 46


PROGRAMAÇÃO JAVA WEB
SERVLET
Atividade 2 – Implementar Servlet no projeto JavaWebHelloWord
▪ Implementar o conteúdo HTML na classe Servlet...

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 47


PROGRAMAÇÃO JAVA WEB
SERVLET
Atividade 2 – Implementar Servlet no projeto JavaWebHelloWord
▪ Executar o projeto

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 48


PROGRAMAÇÃO JAVA WEB
SERVLET
Atividade 2 – Implementar Servlet no projeto JavaWebHelloWord
▪ Acessar o link para classe Servlet Nome da classe
Servlet

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 49


PROGRAMAÇÃO JAVA WEB
SERVLET
Estrutura da Classe Servlet

Consumo de um recurso GET. Ex.:


Exibir uma página estática Web

Consumo de um recurso
POST. Ex.: Enviar dados de
um formulário Web

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 50


PROGRAMAÇÃO JAVA WEB
SERVLET
Implementação do Front
▪ E se for necessário apresentar alguma informação para o usuário no navegador,
será necessário adicionar HTML no JAVA, utilizando a estrutura:
out.println(“ ”);

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 51


PROGRAMAÇÃO JAVA WEB
SERVLET
Interpretando a URI Nome da classe
Servlet

MV - VISIONNIT – INTRODUÇÃO A PROGRAMAÇÃO JAVA WEB - Prof. Jeangrei Veiga 52


PROGRAMAÇÃO JAVA WEB
SERVLET
Configuração web.xml
▪ Aspectos JSP que podem ser
configurados no web.xml
✓ Página inicial do projeto

✓ Parâmetros de iniciação

✓ Mapeamentos de URL

✓ Tempo de sessão.

Você também pode gostar