Testes em Aplicações Web com Cactus

1386 palavras 6 páginas
J550

Sessões
Helder da Rocha (helder@acm.org) www.argonavis.com.br 1

Sessões
Como o HTTP não mantém estado de sessão, são as aplicações Web que precisam cuidar de mantê-lo quando necessário
Sessões representam um cliente
A sessão é única para cada cliente e persiste através de várias requisições request Cliente

request request session

request

2

Sessões
Sessões são representados por objetos HttpSession e são obtidas a partir de uma requisição
Dois métodos podem ser usados
HttpSession session = request.getSession(false);

Se a sessão não existir, retorna null, caso contrário retorna sessão.
HttpSession session = request.getSession();

Retorna a sessão ou cria uma nova. Mesmo que getSession(true)

Para saber se uma sessão é nova, use o método isNew() if (session.isNew()) { myObject = new BusinessObject();
} else { myObject = (BusinessObject) session.getAttribute("obj");
}

getSession() deve ser chamado antes de getOutputStream()*
Sessões podem ser implementadas com cookies, e cookies são definidos no cabeçalho HTTP (que é montado antes do texto)
*ou qualquer método que obtenha o stream de saída, como getWriter()

3

Compartilhamento de objetos na sessão
Dois métodos setAttribute("nome", objeto);
Object getAttribute("nome");

permitem o compartilhamento de objetos na sessão. Ex:
Requisição 1
String[] vetor = {"um", "dois", "tres"};
HttpSession session = request.getSession(); session.setAttribute("dados", vetor);

Requisição 2
HttpSession session = request.getSession();
String[] dados = (String[])session.getAttribute("dados");

Como a sessão pode persistir além do tempo de uma requisição, é possível que a persistência de alguns objetos não sejam desejáveis

Use removeAttribute("nome") para remover objetos da sessão
4

Gerência de sessões
Não há como saber que cliente não precisa mais da sessão
Pode-se definir um timeout em minutos para a duração de uma sessão desde a última

Relacionados

  • Trabaho
    1504 palavras | 7 páginas
  • paradigmas de linguagem de programação
    1277 palavras | 6 páginas
  • JAVA TRABALHO LP
    2770 palavras | 12 páginas
  • 01 Portifolio Individual 2015
    3397 palavras | 14 páginas
  • wallace
    2473 palavras | 10 páginas
  • portfolio individual 5 semestre 2015
    4772 palavras | 20 páginas
  • Linguagem java
    4354 palavras | 18 páginas
  • 7455d160 8b6f 4ecf 9ae2 5fbfd8cc84ce 150525011446 lva1 app6891
    5324 palavras | 22 páginas
  • Redes
    1786 palavras | 8 páginas
  • Produ o textual em grupo 4 5
    5266 palavras | 22 páginas