Acessar session

9 respostas
Luciano_Lopes

Pessoal, estou guardando numa session alguns dados de acesso, como posso fazer para que outras classes acessem esses valores?

9 Respostas

drsmachado

Já leu a documentação da interface HttpSession?

Luciano_Lopes

Essa parte ja dei uma lida sim, ja implementei mas não sei como passar esses valores

drsmachado

Então volta lá e lê os métodos setAttribute e getAttribute.

marcelo.silva.java

ola vc está usando jsf??

se sim vc pode fazer isso usando injeção de dependencia,

[]s,

Luciano_Lopes

Eu tenho esses métodos mas não sei como chama-los nas outras classes sem peder o valor.

drsmachado

Camarada, você não estudou nada de web pelo visto, não é mesmo?
A instância de HttpSession é uma só, ela é singleton.
A partir do momento que você utilizar o método setAttribute, que recebe uma chave e um valor (sim, é um Map<K, V>), essa combinação existirá até que você remova essa entrada ou a subrescreva.
Para pegar o valor desejado, basta chamar o método getAttribute, que recebe como argumento uma String cujo valor deve ser a chave do elemento que deseja resgatar.
Se você estudar um pouquinho consegue entender.

Luciano_Lopes

Amigo, essa parte eu entendi, eu estou pegando e setando as informações da sessão tranquilamente mas só na classe onde elas foram implementadas mas preciso que esses valores sejam reutilizados em outras classes, eu pesquisei mas não achei nada sobre isso

drsmachado

Eu queria entender o quão difícil é fazer algo como

public void qualquerNomeSemSentido(HttpServletRequest request){
    HttpSession sessao = request.getSession();
    String valorQueOSujeitoNaoTemCapacidadeDePegar = 
sessao.getAttribute("chaveParaOValorQueQuero");
    System.out.println(valorQueOSujeitoNaoTemCapacidadeDePegar);
}
drsmachado

E se quiser saber mais, use isso

Criado 8 de julho de 2013
Ultima resposta 9 de jul. de 2013
Respostas 9
Participantes 3