Nesta semana resolvi um problema que tinha quando utiliza Servlet ou JSP em conjunto com Filtros.
Quando utilizava filtros, sempre que clicava no botão de voltar do browser, a pagina ficava em cache, mesmo configurando o cabeçalho, response e tal.
Gostaria de postar, para saber se é uma boa solução ou apenas uma GAMBIARRA.
Na classe que realiza o Logout
HttpSession session = ((HttpServletRequest) request).getSession(false);
session.setAttribute("usuario", null);
session.invalidate();
response.sendRedirect("admin/Restrito.jsp"); //Aqui eu redireciono pra uma pagina que exige que o usuario esteja logado
Este redirecionamento é, então, interceptado pelo Filtro, descrito abaixo, que verifica se o usuario está ou não logado.
Usuario usuario = (Usuario) session.getAttribute("usuario");
if (usuario == null) {
session.setAttribute("msg", "Você não está logado no sistema!");
((HttpServletResponse) res).sendRedirect("../index.jsp"); //Redireciona para a pagina principal, Home ou Login
} else {
chain.doFilter(req, res);
}
A questão é: quando eu realizo o redirecionamento pra uma página restrita apenas para o filtro interceptar e encaminha o usuario para Home, isso é correto?