Você está na página 1de 74

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

O servidor: aplicativo em computador 24/7 Ele recebe requests e devolve responses


Apenas quando uma requisio chega ele atua

este tipo de aplicativo que iremos desenvolver!

Arquitetura Web e Servios


Bem, faz sentido ter um servidor dedicado a um aplicativo, apenas? A resposta : depende! Depende de qu?
Da demanda sobre estes servios!

comum ter servidores web e servidores de banco de dados dedicados Se a demanda de um aplicativo web no grande, no faz sentido ter toda uma infraestrutura s para ele...

Arquitetura Web e Servios


Vrios aplicativos web na mesma mquina
Comum

No caso do Java, estes pequenos Aplicativos Web so chamados de servlets

Agora... que tal centralizar algumas funcionalidades, como o 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 para o cliente que enviou a request

Ou seja, ele responsvel por gerenciar as conexes (dentre outras coisas)

O Contentor Java
Resumidamente...

O Contentor Java
Mas o servidor de aplicativos no faz apenas isso... Dentre outras coisas, ele tambm cuida do ciclo de vida do servlet
1. Quando necessrio, inicia o Servlet 2. Coloca este Servlet 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

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!

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 para armazenarmos 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
Execute e veja o que acontece!

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!
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
Antes de fazer os clculos, porm... Temos que converter estas Strings para nmeros com vrgula 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
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!

Você também pode gostar