Invalidate() não funciona direito

ola pessoal,

  na minha aplicação tem uma pagina de login, que manda os dados do form pro servlet LoginServlet, que trata esse login e se o usuario tiver ok cria sessao e da um forward pra outra pagina..o problema é qaundo o usuario da logout.
 Quando ele da logout é chamado um servlet EncerraSessao que invalida  a sessao e da um forward pro login com uma mensagem
Só que quando o usuario da um "Voltar" no brower até o servlet e manda atualizar ele carrega normalmente, mesmo depois do invalidate...

no servlet eu já tentei de tudo  (ou melhor, quase tudo), pra fazer com que não carregue depois de atualizar mas não tem jeito....

Alguem pode me dar alguma dica?

Grato pela atenção

Rodrigo Gomes

Rodrigo:

Vc ja tentou, quando o cara clicar em voltar, invalidar diretamente a sessão dele.?

Tipo, quando o cara clicar no link, vc ja invalida e expira a sessão dele…o que acha?!

ate mais…

[quote]Vc ja tentou, quando o cara clicar em voltar, invalidar diretamente a sessão dele.?
[/quote]

como assim?? não entendi

Seria o caso de vc no EncerraLogin chamar request.getSession().invalidate().

Mas como que vc está invalidando a sessão?

o pior é que no meu EncerraSessao eu dou um invalidate()
aih depois do invalidate dou um forward pro login com uma mensagem de sessao encerrada…

mas parece que o invalidate não funciona…

[quote=“rodrigo_gomes”]o pior é que no meu EncerraSessao eu dou um invalidate()
aih depois do invalidate dou um forward pro login com uma mensagem de sessao encerrada…

mas parece que o invalidate não funciona…[/quote]

Estranho esse comportamento, como que vc está verificando a sessão no login ?

o login (login.jsp) só envia os forms
o LoginServlet os trata. Qunado o usuario é logado crio um objeto usuarioBean, que é um Bean com informações do mesmo
e coloco esse objeto na sessão

 [code]session.setAttribute("usuario" , usuariobean);[/code]

daih pra verificar se a sessao eh valida testo se o atributo usuario ainda tah na sessao…

Seta null pra sessão do usuário, no encerraSessao

session.setAttribute(“usuario”, null);

antes do invalidate() ???

Rodrigo:

A forma que o thiagorani citou, acredito que vc nao precise invalidar a session…no entanto, acho que deve haver um tratamento…tipo, essa session “usuario” deve existir…entao, quando vc logar no sistema, deverá criar essa session “usuario”…quando vc for encerrar a aplicação ou mesmo clicar em “voltar”, vc pode setar null para a session.

blz?

ate mais…

vou tentar fazer isso em casa
brigadão pela força pessoal

ps: como posso setar a sessao pra null qd ele clicar em voltar ??
lembrando que esse voltar não é da minha aplicação, como falei lah em cima eh “Voltar” do browser

ao invés de setar pra null seria mais “normal” dar um removeAtribut?

Rodrigo:

Vai muito tb de vc dar uma olhada nos metodos da classe HttpSession…foi citado passar null…ms existem outras formas de vc invalidar a sessao.

ate mais…

As duas maneiras causarão o mesmo efeito. Em ambas o retorno da referencia “usuario” será null.