Você está na página 1de 21

UCSAL – TECNOLOGIA EM ANÁLISE E

DESENVOLVIMENTO DE SISTEMAS

Programação para Aplicações WEB


Profa. Semíramis Assis
2019.2
SERVLET - COOKIES
▪Pequenos arquivos de texto que são
enviados do servidor Web ao navegador,
sendo devolvidos ao servidor web na
próxima visita ao site.
▪É possível fornecer certa comodidade ao
cliente ao reler estes arquivos enviados
previamente (layout com as preferências
dos usuários).
SERVLET - COOKIES
▪Benefícios dos cookies:
▪Identificação de usuários – É possível
fazer validação de usuário sem que o
login precise ser refeito (comércio
eletrônico).
▪Customização de sites – A aparência
pode ser customizada, seguindo as
preferências dos usuários.
▪Propagandas direcionadas –
Propagandas podem ser direcionadas
de acordo com os interesses do
SERVLET - COOKIES
▪Pontos fracos:
▪Usuários podem desabilitar cookies no
navegador.
▪Necessário atenção sobre os dados
armazenados em cookies (privacidade
sobre dados sensíveis).
SERVLET - COOKIES
▪Passos para enviar cookies ao cliente:
▪Necessário utilizar o construtor Cookie;
▪Definir a duração máxima em
segundos (validade do cookie – ver
LongLivedCookie);
▪Colocar o cookie no objeto response
(response.addCookie).
SERVLET - COOKIES
SERVLET - COOKIES
▪Lendo cookies armazenados:
▪Através do objeto request, método
getCookies – Retorna um array com
objetos cookies.
▪Percorrer o vetor utilizando o método
getName – Procurar pelo nome
armazenado anteriormente.
▪Pegar os valores com o método
getValue.
SERVLET - COOKIES
• Recuperando valor armazenado em um cookie:

• Resultado exibido na tela:


SERVLET – CONTROLE DE
SESSÃO
▪Protocolo HTTP é stateless – Não
armazena informações sobre o estado
da requisição.
▪Problemas com carrinhos de compra –
Não seria possível armazenar dados
no carrinho e continuar comprando
sem controle de sessão.
▪API HttpSession – Utilizada para
controlar sessões em Servlets.
SERVLET – CONTROLE DE
SESSÃO
▪Existem dois mecanismos para
gerenciamento de sessão: cookies ou
reescrita da URL.
▪Reescrita é utilizada quando o
navegador não suporta cookies ou
usuário os desabilita.
SERVLET – CONTROLE DE
SESSÃO
• Criando uma
sessão:

• Recuperando
sessão:
SERVLET – CONTROLE DE
SESSÃO
▪Métodos utilitários para sessões:
▪isNew() – Retorna true caso seja a
primeira vez que o navegador tenha a
sessão criada.
▪getId() – Retorna o ID da sessão.
▪getCreationTime() – Retorna o horário
(em milissegundos) em que a sessão
foi criada.
INTRODUÇÃO A TAGLIB
▪Utilizado para reduzir a quantidade de
código Java nas páginas JSP.
▪Linguagem baseada em tags, deixa a
página mais limpa e é mais legível,
melhorando manutenibilidade.
▪Necessário instanciação da classe a ser
utilizada.
▪Métodos get dos atributos são chamados
automaticamente ao invocar o atributo.
INTRODUÇÃO A TAGLIB
▪Necessário mapeamento em arquivo .tld
(TagLib Description).
▪Classes da TagLib devem implementar a classe
Tag e extender alguma classe de Tag
(TagSupport, TagAction, etc).
▪Métodos mais importantes:
▪doStartTag() – Invocado quando a tag é
instanciada.
▪doEndTag() – Invocado quando o
processamento é concluído.
▪release() – Invocado quando todo o
processamento é terminado, para liberar os
recursos alocados.
INTRODUÇÃO A TAGLIB
▪Exemplo de arquivo TLD:
INTRODUÇÃO A TAGLIB
▪Exemplo de JSP com a chamada à Taglib:
INTRODUÇÃO A TAGLIB
SERVLET - COOKIES
▪Exercício! Criar uma servlet que gere um
cookie com duração de 2 dias.
▪Criar uma Servlet com um cookie
instanciado com a classe
LongLivedCookie.
SERVLET - COOKIES
▪Exercício! Recuperar o valor do cookie
criado no exercício anterior e exibir o
resultado na tela.
▪Fazer uma servlet que detecte se o
usuário está acessando o site pela
primeira vez ou não, utilizando cookies.
Caso seja primeira vez, exibir mensagem
“Primeira visita!”, caso contrário, exibir
“Bem vindo de volta!”.
SERVLET – CONTROLE DE
SESSÃO
▪Exercício! Utilizar o método isNew() para
determinar se o visitante está acessando
a página pela primeira vez ou não.
Enviar uma mensagem “Bem-vindo!” se
for primeira vez ou “...De volta!” se não
for.
INTRODUÇÃO A TAGLIB
▪Exercício! Fazer uma classe TagLib que
receba duas strings e concatene-as,
exibindo na tela.

Você também pode gostar