Ola amigos. Tô tentando fazer um tela de login/logout com jsp e servlet para uma agenda de contatos. Quando eu logo consigo acessar meus contatos normalmente e quando faço logout sou direcionado para pagina de login, até tudo certo. o problema é se eu voltar, usando a seta do browser, consigo ver minha lista de contatos de novo, por exemplo. ou seja todas as paginas da agenda navegadas antes continuam lá, mesmo depois de invalidar a sessão. Tô tentando fazer com que após invalidar a sessão ser direcionado para tela de login e não voltar para as paginas anteriores. desde já agradeço a atenção de todos.
Código da página de login
package br.com.caelum.mvc.logica;
import java.sql.Connection;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import br.com.caelum.agenda.dao.UsuarioDAO;
import br.com.caelum.agenda.modelo.Usuario;
public class LoginLogic implements Logica{
@Override
public void executa(HttpServletRequest request, HttpServletResponse response)
throws Exception {
String resultadoJSP = "/login.jsp";
Connection connection = (Connection) request.getAttribute("conexao");
UsuarioDAO dao = new UsuarioDAO(connection);
Usuario usuario = dao.pesqUsuarioByUsusarioSenha(request.getParameter("login"),
request.getParameter("senha"));
HttpSession sessao = request.getSession();
if(usuario != null){
sessao.setAttribute("login", usuario.getLogin());
sessao.setAttribute("id", usuario.getId());
String usuarioAutenticado = (String) sessao.getAttribute("login");
Long idUsuarioAutenticado = (Long) sessao.getAttribute("id");
if (usuarioAutenticado == null || idUsuarioAutenticado == null) {
resultadoJSP = "login.jsp";
}
resultadoJSP = "/bemvindo.jsp";
}else{
resultadoJSP = "/erro_login.jsp";
}
RequestDispatcher rd = request.getRequestDispatcher(resultadoJSP);
rd.forward(request, response);
}
}
Código de logout
package br.com.caelum.mvc.logica;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LogoutLogic implements Logica{
@Override
public void executa(HttpServletRequest request, HttpServletResponse response)
throws Exception {
request.getSession().invalidate();
RequestDispatcher rd = request.getRequestDispatcher("/login.jsp");
rd.forward(request, response);
}
}