Escolar Documentos
Profissional Documentos
Cultura Documentos
DW Aula04 IntroducaoServlets PDF
DW Aula04 IntroducaoServlets PDF
REQUEST
Cliente
RESPONSE
Servidor
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...
Agora... que tal centralizar algumas funcionalidades, como o gerenciamento de conexes? Esse o papel do contentor Java
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
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
init()
Quando necessrio
service()
Aguardando conexes
destroy()
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
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
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!
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)
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!