psw_aula02

90
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB Prof. Dr. Daniel Caetano 2013 - 2 INTRODUÇÃO À TECNOLOGIA SERVLETS 

Upload: robson-rodrigues-freitas

Post on 01-Mar-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 1/90

PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB 

Prof. Dr. Daniel Caetano

2013 - 2

INTRODUÇÃO À 

TECNOLOGIA SERVLETS 

Page 2: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 2/90

Objetivos

• Apresentar o conceito aplicaçõesorientada a serviços via web

• Apresentar o papel dos

contentores Java

• Capacitar para a construção deAplicações Web simples

Page 3: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 3/90

Material de Estudo

Material Acesso ao MaterialNotas de Aula http://www.caetano.eng.br/ 

(Prog. Servidor Web - Aula 2)

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

Material Didático -

Java: ComoProgramar

(6ª Edição) Páginas 928 a 948

Page 4: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 4/90

ARQUITETURA WEB E SERVIÇOS 

Page 5: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 5/90

Arquitetura Web e Serviços•

Na primeira aula, vimos esse sistema:

Cliente

Servidor

REQUEST

RESPONSE

Page 6: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 6/90

Arquitetura Web e Serviços

• Quem é responsável por gerar a request?

• O computador cliente

 – Navegador

 – Outro programa qualquer

• Quem é responsável por gerar a response?

• O computador servidor 

 – Programa servidor

• O servidor presta um serviço ao cliente 

Page 7: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 7/90

Arquitetura Web e Serviços

• O cliente: navegador

• Requisições são geradas quando – Digitamos uma nova URL / Clicamos em um link

 – Enviamos um formulário

 – Enviamos uma consulta AJAX

Page 8: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 8/90

Arquitetura Web e Serviços

• O servidor: aplicativo em computador 24/7• Este aplicativo é composto de serviços

• Serviço recebe requests e devolve responses

 – Apenas quando uma requisição chega ele atua

• É este tipo de aplicativo, baseado emserviços, que iremos desenvolver!

Page 9: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 9/90

Arquitetura Web e Serviços

• Faz sentido um servidor dedicado a um únicoserviço simples?

• A resposta é: depende!

Depende de quê? – Da demanda sobre estes serviços

 – Do processamento exigido pelos serviços

 – Dos requisitos de segurança e qualidade (SLA)

• É comum ter servidores web e servidores debanco de dados dedicados

• Se a demanda de um serviço não é grande, em

geral não faz sentido ter infra exclusiva...

Page 10: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 10/90

Arquitetura Web e Serviços

• Vários serviços web na mesma máquina – Comum

• No caso do Java, estes pequenos serviços 

são chamados de servlets 

• Agora... que tal centralizar funções comuns?

 – Ex.: Gerenciamento de Conexões

• Esse é o papel do contentor Java 

Page 11: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 11/90

Arquitetura Web e Serviços

• Existem vários contentores Java – GlassFish

 – TomCat

 – TomCat + JBoss – Dentre outros...

• Neste curso, usaremos o GlassFish – É o mais completo

 – É o padrão sugerido pela Oracle

Page 12: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 12/90

O CONTENTOR JAVA E O CICLO DE VIDA 

Page 13: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 13/90

O Contentor Java

• O contentor Java também é conhecido comoservidor de aplicações Java 

• Gerencia a execução de serviços web Java

• Disponibilizar infraestrutura necessária paraestes serviços

• Permite a comunicação com outroscomponentes Java e aplicações

Page 14: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 14/90

O Contentor Java

• Servidor de Aplicações - Funcionamento básico:1. Aguarda pelas requests

2. Repassa a request para o servlet correto

3. Recebe a response do servlet 4. Devolve a response p/ cliente que enviou a request

• Ou seja, ele é responsável por gerenciar asconexões (dentre outras coisas)

Page 15: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 15/90

O Contentor Java

• Resumidamente...

Page 16: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 16/90

O Contentor Java

• O servidor de aplicativos não faz só isso... – Dentre outras coisas...

 – Ele também cuida do ciclo de vida do servlet

1. Quando necessário, inicia o Servlet

2. Coloca este Servlet no estado “ativo” 

3. Finaliza o Servlet quando não é maisnecessário

Page 17: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 17/90

Ciclo de Vida do Servlet

• Resumidamente... 

init()

• Quando

necessário

service()• Aguardando

conexões

destroy() • Quando não émais necessário

Invocação

Page 18: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 18/90

SERVLETS NO NETBEANS 

Page 19: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 19/90

Criando um Servlet•

Iniciaremos criando um projeto

Page 20: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 20/90

Criando um Servlet•

Escolha o tipo: Java Web e Aplicação Web

Page 21: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 21/90

Criando um Servlet•

Escolha o tipo: Java Web e Aplicação WebJava

ATENÇÃO

Caso apareça uma janelasolicitando autorização paraacesso, responda “Permitir” 

Page 22: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 22/90

Criando um Servlet•

Dê um nome ao seu projeto: ex.: WProjeto1

Page 23: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 23/90

Criando um Servlet•

Dê um nome ao seu projeto: ex.: WProjeto1

Nomes de projeto devem

a) Começar com letra maiúscula

b) Não ter espaçosc) Não usar acentos ou caracteres especiaisd) Ex.: WProjeto1e) SUGESTÃO: Inicie projetos Web com a letra W

Page 24: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 24/90

Criando um Servlet•

Dê um nome ao seu projeto: ex.: WProjeto1

Page 25: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 25/90

Criando um Servlet•

Selecione o contentor: GlassFish Server

Page 26: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 26/90

Criando um Servlet•

Este é o endereço da aplicação: /WProjeto1

Page 27: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 27/90

Criando um Servlet•

Clique em Finalizar

ATENÇÃO

Caso apareça uma janelasolicitando autorização paraacesso, responda “Permitir” 

Page 28: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 28/90

Criando um Servlet•

Esta tela vai aparecer... Há campos novos!

Page 29: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 29/90

Criando um Servlet•

Execute o projeto e veja o que ocorre!

EXECUTE O PROJETO 

ATENÇÃOCaso apareça uma janela

solicitando autorização para

acesso, responda “Permitir” 

Page 30: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 30/90

Criando um Servlet•

Por padrão, o index.jsp é executado

Page 31: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 31/90

Criando um Servlet•

Vamos construir um formulário...

Page 32: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 32/90

Criando um Servlet•

Vamos construir um formulário...

Page 33: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 33/90

Criando um Servlet•

Vamos construir um formulário...Isso irá gerar uma request paraum aplicativo web chamado Imc.

Precisamos criá-lo!

Page 34: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 34/90

Criando um Servlet•

Clique com o botão direito em “Pacotes deCódigo Fonte” 

Page 35: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 35/90

Criando um Servlet•

E selecione Novo > Pacote Java... 

Page 36: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 36/90

Criando um Servlet•

Agora dê um nome ao pacote: imc

Page 37: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 37/90

Criando um Servlet•

Agora dê um nome ao pacote: imc

Nomes de PACOTES devem

a) Começar com letra minúsculab) Não ter espaçosc) Não usar acentos ou caracteres especiaisd) Ex.: imc 

Page 38: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 38/90

Criando um Servlet•

E clique em Finalizar

Page 39: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 39/90

Criando um Servlet•

Agora clique com o botão direito no pacoteimc e selecione Novo > Servlet... 

Page 40: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 40/90

Criando um Servlet•

Agora dê um nome ao servlet: Imc

Page 41: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 41/90

Criando um Servlet•

Agora dê um nome ao servlet: Imc

Um SERVLET é uma CLASSE, então...

a) Começar com letra maiúsculab) Não ter espaçosc) Não usar acentos ou caracteres especiaisd) Ex.: Imc 

Page 42: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 42/90

Criando um Servlet•

Agora dê um nome ao servlet: Imc

Este nome deve ser o

MESMO usado no campoaction do FORM!

Page 43: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 43/90

Criando um Servlet•

E clique em Próximo

Page 44: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 44/90

Criando um Servlet• MARQUE a opção Adiciona informação ao descritor

Page 45: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 45/90

Criando um Servlet• MARQUE a opção Adiciona informação ao descritor

Nomes paraacesso ao Servlet

Page 46: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 46/90

Criando um Servlet• E clique em Finalizar

Page 47: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 47/90

Criando um Servlet• Isso vai criar uma série de arquivos e abrir o servlet

na área de edição... O primeiro é o de configuração: 

Page 48: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 48/90

CONFIGURANDO O SERVLET 

Page 49: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 49/90

Configurações do Servlet

• O arquivo de configuração é chamadoweb.xml...

• Algumas vezes existem vários deles

• O que nos interessa está na pasta web-inf  • Clique duas vezes neste arquivo...

Page 50: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 50/90

Configurações do Servlet•

A aba Geral serve para indicar a descrição doSISTEMA, além de indicar o timeout (veremosisso depois) 

Page 51: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 51/90

Configurações do Servlet•

A aba Servlets configura itens importantes 

Page 52: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 52/90

Configurações do Servlet•

A ordem de inicialização 

Page 53: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 53/90

Configurações do Servlet•

O nome do Servlet 

Page 54: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 54/90

Configurações do Servlet•

A classe do Servlet (pode ser trocada!) 

Page 55: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 55/90

Configurações do Servlet•

E o nome de acesso do Servlet 

Page 56: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 56/90

Configurações do Servlet•

Essas e outras configurações podem ser feitasdiretamente pela aba XML...

• Mas pelo NetBeans é mais conveniente!

Page 57: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 57/90

PAUSA PARA O CAFÉ 

Page 58: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 58/90

VOLTANDO A EDITAR O SERVLET 

Page 59: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 59/90

Criando um Servlet• O outro arquivo importante é o arquivo do Servlet,

neste caso o Imc.java. 

Page 60: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 60/90

Limpando a área• Vamos apagar os comentários do NetBeans 

Page 61: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 61/90

Limpando a área• Vamos esconder código “desnecessário” 

Page 62: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 62/90

Entendendo o Servlet• Observe que o Servlet extends HttpServlet

Page 63: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 63/90

Entendendo o Servlet• Vamos entender a estrutura 

Este é o trecho que

mais nos interessa!

Page 64: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 64/90

Entendendo o Servlet• Vamos entender a estrutura 

Não mexa aqui!

Page 65: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 65/90

Entendendo o Servlet• Vamos entender o funcionamento 

Quando uma request chega aocontentor, ela é repassada para esse

método, juntamente com uma reponse,onde armazenaremos a saída

Page 66: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 66/90

Entendendo o Servlet• Vamos entender o funcionamento 

A primeira coisa feita é aconfiguração do objeto out, queusaremos para imprimir a saída

Page 67: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 67/90

Programando o Servlet• Aqui é onde escreveremos o nosso código

• Temos de imprimir um HTML!

Page 68: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 68/90

Programando o Servlet• Acompanhe o professor!

Page 69: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 69/90

Programando o Servlet• Acompanhe o professor!

Execute e veja oque ocorre!

Page 70: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 70/90

Programando o Servlet• Falta fazer o cálculo:

 – IMC = PESO / (ALTURA * ALTURA)

• Mas antes...

 – É preciso pegar os parâmetros na request...

• Pegar... Parâmetro... Da request...

 – request.getParameter(“nome”) 

• Os nomes são “peso” e “altura” (do form!)• NOTA: as informações da request estão

sempre no formato String!

Page 71: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 71/90

Programando o Servlet• Execute e veja o que acontece!

Page 72: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 72/90

Programando o Servlet• Execute e veja o que acontece!

Page 73: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 73/90

Programando o Servlet• Execute e veja o que acontece!

OPA! Não pulou linha!a) Estamos imprimindo HTMLb) Onde está o <p> e o </p> ???

Page 74: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 74/90

Programando o Servlet• Execute e veja o que acontece!

Page 75: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 75/90

Programando o Servlet• Execute e veja o que acontece!

Page 76: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 76/90

Programando o Servlet

Antes de fazer os cálculos, porém...

• Temos que converter estas Strings paranúmeros reais, do tipo double 

• Existe um método pronto para isso, na classeDouble... Ele se chama valueOf

• NOTA: Use PONTO para indicar peso e altura – Certo: 1.70

 – Errado: 1,70

Page 77: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 77/90

Programando o Servlet• Execute e veja o que acontece!

Page 78: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 78/90

Programando o Servlet• Execute e veja o que acontece!

Page 79: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 79/90

Programando o Servlet• Podemos melhorar um pouco mais...

Page 80: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 80/90

Programando o Servlet• Podemos melhorar um pouco mais...

Page 81: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 81/90

Programando o Servlet• O programa tem problemas com “,” nos

números? Experimente!

• Corrija substituindo:

• Por isso:

d l

Page 82: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 82/90

Programando o Servlet• Para imprimir mensagens de acordo com o

resultado, experimente acrescentar o códigoabaixo!

d l

Page 83: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 83/90

Programando o Servlet• O servlet ainda “capota” quando um “texto” é

digitado nos campos numéricos! Experimente!

• Corrija isso acrescentando o “catch” abaixo! 

Page 84: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 84/90

ATIVIDADE ESTRUTURADA 

O i ã A i id d E d

Page 85: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 85/90

Orientação Atividades Estruturadas

Esta disciplina tem Atividades Estruturadas • Elas serão disponibilizadas futuramente 

• A primeira consiste em uma pesquisa

(leitura e redação)• A segunda consiste em compreender e

modificar um sistema funcional

• Aguardem maiores informações!

Page 86: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 86/90

ATIVIDADE 

P d S l

Page 87: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 87/90

Programando o Servlet• Modifique o Servlet Criado:

 – Para imprimir mensagens diferentes para cadanível de IMC:

• < 18.5 => Cuidado! Abaixo do peso!

• 18.5 <= imc < 25.0 => Parabéns! Peso ideal!• 25.0 <= imc < 30.0 => Atenção! Acima do peso!

• Imc >= 30.0 => Cuidado! Está obeso!

Page 88: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 88/90

CONCLUSÕES 

R

Page 89: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 89/90

Resumo• As aplicações Web funcionam como pequenos

programas que rodam no servidor

• Estes programas, em Java, são feitos com atecnologia Servlets

• Servlet recebe request e devolve response 

• TAREFA: Trabalho A

• Ainda não estou seguro com esses tais Servlets!

• Na próxima aula, exercitaremos mais...

• E veremos algumas novidades!

Page 90: psw_aula02

7/25/2019 psw_aula02

http://slidepdf.com/reader/full/pswaula02 90/90

PERGUNTAS?