Como tirar objeto da Sessão

9 respostas
W

Bom dia pessoal,

tenho uma aplicação desenvolvida no netbeans 6.0 com jsf visual… e gostaria de tirar o objeto da sessão… deixa eu explicar melhor:

eu tenho alguns dados na minha página coisa estáticas nada de banco de dados… e tenho um botão toda vez q clico neste botão ele manda este pedido para uma outra aba de monitoria… até ai tudo bem só q quando eu fecho o browser e inicio ele mostra esta aba de monitoria vazia, mas qdo solicito outro pedido ele aparace os pedidos q tinha feito antes… ele só zera mesmo qunado eu restarto o Tomcat.

Alguém sabe com me ajudar…

estou usando a StringBuilder
public static StringBuilder sb = new StringBuilder();

e o meu evento do botão est´assim:

public String solicitarButton1_action() {

sb.append(descricaoLabel1.getText().toString());

sb.append("\n");

textArea1.setText(sb.toString());

return null;

}

eu tenho tb os métodos:

@Override
public void destroy() {

}
//o contrutor

public produto(){

}

//e o init

@Override
public void init() {

super.init();        
    
    try {
        _init();
    } catch (Exception e) {
        log("produto Initialization Failure", e);
        throw e instanceof FacesException ? (FacesException) e: new FacesException(e);
    }
    
   
    
}

//tentei zerar a variavel no construtor, no init, e no destroy e não rolou:
//assim:

sb = null;

alguém pode me ajudar???

9 Respostas

A

não entendi muito bem a tua dúvida, mas pra remover um objeto da sessão você só tem que fazer

session.removeAttribute(nomeDoAtributo);

A

Você também pode fazer um session.setAttribute(“nomeDoAtributo”,null)

W

mas onde eu devo colocar este código na jsp(jsf) ou no código java???

session.removeAttribute(nomeDoAtributo);

ou

session.setAttribute(“nomeDoAtributo”,null);

onde eu coloco?

M

Mas tem que necessariamente ser estatico?

W

sim

S

conheça mais a fundo a JSTL (Java Server Tag Library) ela irá ajudar e mutio na sua produção e limpeza de seu código…

W

pode deixar irei pesquisar sobre JSTL

muito obrigado a todos

[]´s

I

Tente fazer sua tela sem utilizar este atributo na sessão.
Caso não seja possível, você pode criar um método init, que é chamado toda vez que entrar na tela, e este mesmo limpa os dados da sessão que ficaram pendentes.
Eu sei que é estranho, mas imagine, se um usuário fecha o navegador direto, o objeto pode permanecer na sessão até ela cair por timeout.
Já tive este problema, em telas que eu era obrigado a ter sessão, é comum ter o método init.

Qualquer dúvida estou a disposição.

W

obrigado insonix

[]´s

Criado 10 de maio de 2008
Ultima resposta 15 de mai. de 2008
Respostas 9
Participantes 6