Como desativar o cache dentro de uma página jsp
-
03-07-2019 - |
Pergunta
Sei que existe uma directiva HTTP cabeçalho de resposta para desativar o cache página:
Cache-Control:no-cache
Eu posso modificar o cabeçalho de "mão":
<%response.addHeader("Cache-Control","no-cache");%>
Mas há uma maneira "legal" para fazer a JSP intérprete retornar esta linha de cabeçalho na resposta do servidor?
(eu verifiquei o <% @ page ...%> directiva. Parece que não há nada como isso.)
Solução
Além disso, adicione
response.addHeader("Expires","-1"); response.addHeader("Pragma","no-cache");
para os cabeçalhos e dar que um tiro.
Outras dicas
Se você estivesse usando um servlet, então eu acredito que você postou a pergunta seria a abordagem correta. Eu não estou ciente de qualquer maneira de fazer isso no JSP.
<?xml version="1.0"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:scriptlet><![CDATA[
response.setHeader("Cache-Control", "no-cache");
]]></jsp:scriptlet>
</jsp:root>
Você deve colocar o cabeçalho de resposta dentro <jsp:root />
. Além disso, gostaria em vez recomendo o envio isto de seu servlet em vez de página JSP.
IIRC alguns browsers podem ignorar as configurações de controle de cache em alguns contextos. A solução alternativa 'segura' para isso foi para sempre obter uma página (até mesmo um pedaço AJAX) com uma nova variável de string de consulta (como o tempo.)