Вы находитесь на странице: 1из 90

PROGRAMAO SERVIDOR

EM SISTEMAS WEB
INTRODUO
TECNOLOGIA SERVLETS
Prof. Dr. Daniel Caetano
2013 - 2

Objetivos
Apresentar o conceito aplicaes
orientada a servios via web
Apresentar o papel dos
contentores Java
Capacitar para a construo de
Aplicaes Web simples

Material de Estudo

Material

Acesso ao Material

Notas de Aula

http://www.caetano.eng.br/
(Prog. Servidor Web - Aula 2)

Apresentao

http://www.caetano.eng.br/
(Prog. Servidor Web - Aula 2)

Material Didtico

Java: Como
Programar

(6 Edio) Pginas 928 a 948

ARQUITETURA
WEB E SERVIOS

Arquitetura Web e Servios


Na primeira aula, vimos esse sistema:

REQUEST

Cliente

RESPONSE
Servidor

Arquitetura Web e Servios


Quem responsvel por gerar a request?
O computador cliente
Navegador
Outro programa qualquer

Quem responsvel por gerar a response?


O computador servidor
Programa servidor

O servidor presta um servio ao cliente

Arquitetura Web e Servios


O cliente: navegador

Requisies so geradas quando


Digitamos uma nova URL / Clicamos em um link
Enviamos um formulrio
Enviamos uma consulta AJAX

Arquitetura Web e Servios


O servidor: aplicativo em computador 24/7
Este aplicativo composto de servios
Servio recebe requests e devolve responses
Apenas quando uma requisio chega ele atua

este tipo de aplicativo, baseado em


servios, que iremos desenvolver!

Arquitetura Web e Servios


Faz sentido um servidor dedicado a um nico
servio simples?
A resposta : depende!
Depende de qu?
Da demanda sobre estes servios
Do processamento exigido pelos servios
Dos requisitos de segurana e qualidade (SLA)

comum ter servidores web e servidores de


banco de dados dedicados
Se a demanda de um servio no grande, em
geral no faz sentido ter infra exclusiva...

Arquitetura Web e Servios


Vrios servios web na mesma mquina
Comum

No caso do Java, estes pequenos servios


so chamados de servlets

Agora... que tal centralizar funes comuns?


Ex.: Gerenciamento de Conexes

Esse o papel do contentor Java

Arquitetura Web e Servios


Existem vrios contentores Java
GlassFish
TomCat
TomCat + JBoss
Dentre outros...

Neste curso, usaremos o GlassFish


o mais completo
o padro sugerido pela Oracle

O CONTENTOR JAVA
E O CICLO DE VIDA

O Contentor Java
O contentor Java tambm conhecido como
servidor de aplicaes Java
Gerencia a execuo de servios web Java
Disponibilizar infraestrutura necessria para
estes servios
Permite a comunicao com outros
componentes Java e aplicaes

O Contentor Java
Servidor de Aplicaes - Funcionamento bsico:
1.
2.
3.
4.

Aguarda pelas requests


Repassa a request para o servlet correto
Recebe a response do servlet
Devolve a response p/ cliente que enviou a request

Ou seja, ele responsvel por gerenciar as


conexes (dentre outras coisas)

O Contentor Java
Resumidamente...

O Contentor Java
O servidor de aplicativos no faz s isso...
Dentre outras coisas...
Ele tambm cuida do ciclo de vida do servlet
1. Quando necessrio, inicia o Servlet
2. Coloca este Servlet no estado ativo
3. Finaliza o Servlet quando no mais
necessrio

Ciclo de Vida do Servlet


Resumidamente...
Invocao

init()

Quando
necessrio

service()

Aguardando
conexes

destroy()

Quando no
mais necessrio

SERVLETS NO
NETBEANS

Criando um Servlet
Iniciaremos criando um projeto

Criando um Servlet
Escolha o tipo: Java Web e Aplicao Web

Criando um Servlet
Escolha o tipo: Java Web e Aplicao Web
Java

ATENO

Caso aparea uma janela


solicitando autorizao para
acesso, responda Permitir

Criando um Servlet
D um nome ao seu projeto: ex.: WProjeto1

Criando um Servlet
D um nome ao seu projeto: ex.: WProjeto1

Nomes de projeto devem


a) Comear com letra maiscula
b) No ter espaos
c) No usar acentos ou caracteres especiais
d) Ex.: WProjeto1
e) SUGESTO: Inicie projetos Web com a letra W

Criando um Servlet
D um nome ao seu projeto: ex.: WProjeto1

Criando um Servlet
Selecione o contentor: GlassFish Server

Criando um Servlet
Este o endereo da aplicao: /WProjeto1

Criando um Servlet
Clique em Finalizar

ATENO
Caso aparea uma janela
solicitando autorizao para
acesso, responda Permitir

Criando um Servlet
Esta tela vai aparecer... H campos novos!

Criando um Servlet
Execute o projeto e veja o que ocorre!

EXECUTE O PROJETO

ATENO
Caso aparea uma janela
solicitando autorizao para
acesso, responda Permitir

Criando um Servlet
Por padro, o index.jsp executado

Criando um Servlet
Vamos construir um formulrio...

Criando um Servlet
Vamos construir um formulrio...

Criando um Servlet
Vamos construir um formulrio...

Isso ir gerar uma request para


um aplicativo web chamado Imc.
Precisamos cri-lo!

Criando um Servlet
Clique com o boto direito em Pacotes de
Cdigo Fonte

Criando um Servlet
E selecione Novo > Pacote Java...

Criando um Servlet
Agora d um nome ao pacote: imc

Criando um Servlet
Agora d um nome ao pacote: imc

Nomes de PACOTES devem

a) Comear com letra minscula


b) No ter espaos
c) No usar acentos ou caracteres especiais
d) Ex.: imc

Criando um Servlet
E clique em Finalizar

Criando um Servlet
Agora clique com o boto direito no pacote
imc e selecione Novo > Servlet...

Criando um Servlet
Agora d um nome ao servlet: Imc

Criando um Servlet
Agora d um nome ao servlet: Imc

Um SERVLET uma CLASSE, ento...


a) Comear com letra maiscula
b) No ter espaos
c) No usar acentos ou caracteres especiais
d) Ex.: Imc

Criando um Servlet
Agora d um nome ao servlet: Imc

Este nome deve ser o


MESMO usado no campo
action do FORM!

Criando um Servlet
E clique em Prximo

Criando um Servlet
MARQUE a opo Adiciona informao ao descritor

Criando um Servlet
MARQUE a opo Adiciona informao ao descritor

Nomes para
acesso ao Servlet

Criando um Servlet
E clique em Finalizar

Criando um Servlet
Isso vai criar uma srie de arquivos e abrir o servlet
na rea de edio... O primeiro o de configurao:

CONFIGURANDO O
SERVLET

Configuraes do Servlet
O arquivo de configurao chamado
web.xml...
Algumas vezes existem vrios deles
O que nos interessa est na pasta web-inf
Clique duas vezes neste arquivo...

Configuraes do Servlet
A aba Geral serve para indicar a descrio do
SISTEMA, alm de indicar o timeout (veremos
isso depois)

Configuraes do Servlet
A aba Servlets configura itens importantes

Configuraes do Servlet
A ordem de inicializao

Configuraes do Servlet
O nome do Servlet

Configuraes do Servlet
A classe do Servlet (pode ser trocada!)

Configuraes do Servlet
E o nome de acesso do Servlet

Configuraes do Servlet
Essas e outras configuraes podem ser feitas
diretamente pela aba XML...
Mas pelo NetBeans mais conveniente!

PAUSA PARA O CAF

VOLTANDO A EDITAR
O SERVLET

Criando um Servlet
O outro arquivo importante o arquivo do Servlet,
neste caso o Imc.java.

Limpando a rea
Vamos apagar os comentrios do NetBeans

Limpando a rea
Vamos esconder cdigo desnecessrio

Entendendo o Servlet
Observe que o Servlet extends HttpServlet

Entendendo
EsteoServlet
o trecho que
Vamos entender
a
estrutura
mais nos interessa!

Entendendo o Servlet
Vamos entender a estrutura

No mexa aqui!

Entendendo o Servlet
Vamos entender o funcionamento

Quando uma request chega ao


contentor, ela repassada para esse
mtodo, juntamente com uma reponse,
onde armazenaremos a sada

Entendendo o Servlet
Vamos entender o funcionamento

A primeira coisa feita a


configurao do objeto out, que
usaremos para imprimir a sada

Programando o Servlet
Aqui onde escreveremos o nosso cdigo
Temos de imprimir um HTML!

Programando o Servlet
Acompanhe o professor!

Programando o Servlet
Acompanhe o professor!

Execute e veja o
que ocorre!

Programando o Servlet
Falta fazer o clculo:
IMC = PESO / (ALTURA * ALTURA)

Mas antes...
preciso pegar os parmetros na request...

Pegar... Parmetro... Da request...


request.getParameter(nome)

Os nomes so peso e altura (do form!)


NOTA: as informaes da request esto
sempre no formato String!

Programando o Servlet
Execute e veja o que acontece!

Programando o Servlet
Execute e veja o que acontece!

Programando o Servlet
Execute e veja o que acontece!
OPA! No pulou linha!
a) Estamos imprimindo HTML
b) Onde est o <p> e o </p> ???

Programando o Servlet
Execute e veja o que acontece!

Programando o Servlet
Execute e veja o que acontece!

Programando o Servlet
Antes de fazer os clculos, porm...
Temos que converter estas Strings para
nmeros reais, do tipo double
Existe um mtodo pronto para isso, na classe
Double... Ele se chama valueOf
NOTA: Use PONTO para indicar peso e altura
Certo: 1.70
Errado: 1,70

Programando o Servlet
Execute e veja o que acontece!

Programando o Servlet
Execute e veja o que acontece!

Programando o Servlet
Podemos melhorar um pouco mais...

Programando o Servlet
Podemos melhorar um pouco mais...

Programando o Servlet
O programa tem problemas com , nos
nmeros? Experimente!
Corrija substituindo:

Por isso:

Programando o Servlet
Para imprimir mensagens de acordo com o
resultado, experimente acrescentar o cdigo
abaixo!

Programando o Servlet
O servlet ainda capota quando um texto
digitado nos campos numricos! Experimente!
Corrija isso acrescentando o catch abaixo!

ATIVIDADE
ESTRUTURADA

Orientao Atividades Estruturadas


Esta disciplina tem Atividades Estruturadas
Elas sero disponibilizadas futuramente
A primeira consiste em uma pesquisa
(leitura e redao)
A segunda consiste em compreender e
modificar um sistema funcional
Aguardem maiores informaes!

ATIVIDADE

Programando o Servlet
Modifique o Servlet Criado:
Para imprimir mensagens diferentes para cada
nvel de IMC:

< 18.5
18.5 <= imc < 25.0
25.0 <= imc < 30.0
Imc >= 30.0

=> Cuidado! Abaixo do peso!


=> Parabns! Peso ideal!
=> Ateno! Acima do peso!
=> Cuidado! Est obeso!

CONCLUSES

Resumo
As aplicaes Web funcionam como pequenos
programas que rodam no servidor
Estes programas, em Java, so feitos com a
tecnologia Servlets
Servlet recebe request e devolve response
TAREFA: Trabalho A
Ainda no estou seguro com esses tais Servlets!
Na prxima aula, exercitaremos mais...
E veremos algumas novidades!

PERGUNTAS?

Вам также может понравиться