Guarda objeto na sessão

4 respostas
Deluxe

Pessoal

preciso guardar um objeto na sessão
tipo

Cliente x = new Cliente();
x.setNome(“aaaa”);

guarda o objeto X na sessão minha
e depois recuperalo

tem como fazer isso ? se sim, como fasso isso ?
vlw

4 Respostas

marcosharbs

tem sim mas a forma de recuperar a sessão depende do framework que está utilizando ou se está utilizando servlets apenas,
abaixo algun exemplos:

em struts:

request.getSession.setAttribute("chave", objeto);
request.getSession.getAttribute("chave");

em jsf:

FacesContext.getCurrentInstance().getExternalContext().getSession(false).setAttribute("chave", objeto);
FacesContext.getCurrentInstance().getExternalContext().getSession(false).getAttribute("chave");

em servlets:

request.getSession.setAttribute("chave", objeto);
request.getSession.getAttribute("chave");

nos servlets vc recebe um objeto request como parametro nso metodos doGet e doPost e no struts vc recebe o objeto request como parametro na action, desse objeto vc consegue obter a sessao, já em jsf é um pouco diferente como pode ver acima:

Deluxe

vlw cara
preciso tomar algum tipo de cuidado em fazer esse tipo de coisa?

marcosharbs

cuidados não mas esse objeto vai existir durante toda a sua sessão tem que ver se é realmente isso que vc precisa, se não talvez precise remover ele depois de usar,
na sessao tem metodos para remover o objeto ai depende da sua necessidade né, as vezes setar o objeto no request também resolve depende do seu problema.
a e tipo não deve esquecer de atualizar ele caso necessario né, por exemplo tenho uma aplicacao que quando o usuario loga joga esse objeto usuario na sessao se eu recupero e altero esse objeto devo setar ele de novo na sessao pra sobrescrever o existente se não vo perder os dados que alterei no objeto.

Felagund

Eu acho mais pratico armazenar somente o ID, e ir recuperando quando precisar dessa informação.
Ai sempre que precisar, vai ter a informação atualizada.

[]'s

Criado 4 de agosto de 2009
Ultima resposta 4 de ago. de 2009
Respostas 4
Participantes 3