Desabilitar cache (botão voltar navegador)[RESOLVIDO]

3 respostas
A
Boa tarde, bom 2012 pra todos. Estou com o seguinte problema; quando o usuário clica no botão voltar do navegador ele traz uma página da cache, ao invés de pedir a página novamente para o servidor; e eu preciso que a aplicação faça exatamente isso; quando o usuário clicar no botão voltar no navegagor, realizar um request chamando a página novamente do servidor. Ou então desabilitar o botão voltar, mas acredito que isso seja mais difícil, e no meu caso, dispensável. 
  Procurando pela internet encontrei alguns exemplos usando phaseListener, tentei essa classe no meu projeto, mas não funcionou.



public class ControlaCache implements PhaseListener {
@Override
    public void beforePhase(PhaseEvent event) {
        FacesContext contexto = event.getFacesContext();
        HttpServletResponse response = (HttpServletResponse)contexto.getExternalContext().getResponse();
        response.setHeader("Expires", "-1");
        response.setHeader("Cache-Control", "no-store, no-cache, must-revalidade, proxy-revalidade, private, post-check=0, pre-check=0");
        response.setHeader("Pragma", "no-cache");
    }

@Override
    public void afterPhase(PhaseEvent event) {

    }

@Override
    public PhaseId getPhaseId() {
        return PhaseId.RENDER_RESPONSE;
    }
}

3 Respostas

A

Também tentei usar as tags meta no template das minhas páginas e nada

<meta HTTP-EQUIV="Pragma" CONTENT="no-cache" />
    <meta HTTP-EQUIV="Cache-control" CONTENT="no-cache" />
    <meta HTTP-EQUIV="Expires" CONTENT="0" />

Testei no firefox, chrome e ie8

S

Da uma olhada nesse link e ver se isso te ajuda.

A

Obrigado pela dica, o filtro fez o que eu precisava; minha única preocupação é que o filtro é chamado várias vezes durante a chamada de uma página. Mas como não afetou visivelmente o desempenho do sistema, está ótimo.

Criado 4 de janeiro de 2012
Ultima resposta 4 de jan. de 2012
Respostas 3
Participantes 2