Não deixar voltar a página

4 respostas
leohunther

Fala gente boa!
Se alguém puder me ajudar! O problema é o seguinte:

Minha primeira página é um login. o usuário faz o login e entra, aí eu abro a sessão. Para sair o usuário clica na opção “logout”, fecha a sessão.
E exibida uma página de saída e ele sai.
Mas se o usúario teclar no boão de voltar ele consegue voltar, por mais que a sessão esteja fechada e ele não possa fazer nada.
Mas ele consegue voltar.
Gostaria de fazer o botão de voltar ficar preso na página de login, como já vi em alguns sites, como o gmail.

Procurando aqui vi a dica:

<%

response.setHeader(Cache-Control,no-cache);

response.setHeader(Pragma,no-cache);

response.setDateHeader(Expires, -1);

%>

Mas não funcionou, porque às vezes voltar a página assim mesmo. E em todas as vezes a sessão não é fechada.
Mesmo eu fechando a sessão.
Alguém conhece uma alternativa pra eu usar nesse caso.
Grato!

4 Respostas

idev4web

Parece ser um problema de cache. Não eh uma solucao boa, e eu nem recomendo.
Voce pode colocar um scriptlet no inicio das suas paginas jsp que verifica se a sessao ta ativa
se a sessao nao tiver ativa ele redireciona o usuario para uma pagina determinada.
Algo do tipo:

<%
String usr = (String)session.getAttribute("usr");
if(usr!=null && !usr.equals("")){
	//voce pegou o usuario na sessao e portanto a sessao ta ativa
}
else{
	RequestDispatcher rd = request.getRequestDispatcher("pagDestino.jsp");
	rd.forward(request,response);
}
%>

Uma forma interessante de fazer autenticacao de usuario, eh configurar no arquivo web.xml e no tomcat
Se quiser eu indico um tutorial

leohunther

idev4web
Valeu a resposta amigo.
Mas dessa forma eu já fiz. O problema de fazer assim é que o servlet só vai fazer o teste quando ele vier de uma requisição. Quando ele vier do botão voltar do browser do usuário, Ele não vai fazer o teste.

*Uma forma interessante de fazer autenticacao de usuario, eh configurar no arquivo web.xml e no tomcat .
Se quiser eu indico um tutorial

Po, se isso talvez puder resolver meu problema eu quero sim.

Grato!

PadrE

Opa… tenta usar “pragma” em minusculo.
Após fazer isso, procure limpar o histórico antes de testar de novo… ele pode buscar algo mais antigo…
Tenta fazer o teste nmo IE e no FireFox ao menos… pelo FierFox, ele mostra de uma forma bacana os Cookies carregados… e la vc pode ver se o SESSIONID está ativo antes de clicar no voltar…

Fui !

leohunther

Coloco esse código na última página ou nas páginas que eu quero que não fiquem na cache?

Criado 13 de maio de 2008
Ultima resposta 14 de mai. de 2008
Respostas 4
Participantes 3