Question

Je comprends qu'il existe une directive d'en-tête de réponse HTTP pour désactiver la mise en cache des pages:

Cache-Control:no-cache

Je peux modifier l'en-tête de " main "

 <%response.addHeader("Cache-Control","no-cache");%>

Mais existe-t-il un " joli " moyen pour que l’interprète JSP renvoie cette ligne d’en-tête dans la réponse du serveur?

(J'ai vérifié la <% @ page ...% > Il semble qu'il n'y ait rien de tel.)

Était-ce utile?

La solution

Ajoutez également

response.addHeader("Expires","-1");
response.addHeader("Pragma","no-cache");

à vos en-têtes et donner un coup de feu.

Autres conseils

Si vous utilisiez un servlet, alors je pense que ce que vous avez posté dans la question serait la bonne approche. Je ne suis au courant d'aucun moyen de faire cela dans le 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>

Vous devez placer l'en-tête de la réponse dans <jsp:root />. Aussi, je recommanderais plutôt de l'envoyer à partir de votre servlet au lieu de la page JSP.

IIRC Certains navigateurs peuvent ignorer les paramètres de contrôle du cache dans certains contextes. La solution de contournement "sûre" pour cela consistait à toujours obtenir une page (même un bloc AJAX) avec une nouvelle variable de chaîne de requête (comme l'heure.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top