La mise en cache dite du navigateur signifie que lorsque vous accédez à une page Web pour la première fois, le navigateur mettra en cache ces pages Web localement. Lorsque vous accédez à ces pages Web en cache la prochaine fois, le navigateur lira directement le contenu de ces pages Web de la zone locale sans avoir à les obtenir du réseau.
Bien que la fonction de mise en cache fournie par le navigateur puisse améliorer efficacement la vitesse de chargement des pages Web, pour certaines pages Web qui nécessitent des mises à jour en temps réel, ce mécanisme de mise en cache affectera l'affichage normal des pages Web. Heureusement, il y a trois champs dans l'en-tête de message de réponse HTTP pour désactiver la fonction de cache du navigateur client. Les trois instructions suivantes utilisent ces trois champs pour fermer le cache du navigateur:
Response.SetDateHeader ("Expires", 0); Response.sethEader ("Cache-Control", "No-cache"); Response.sethEader ("Pragma", "No-cache");Bien que les trois champs d'en-tête de message de réponse HTTP ci-dessus puissent tous fermer le cache du navigateur. Cependant, tous les navigateurs ne prennent pas en charge ces trois champs d'en-tête de message de réponse, il est donc préférable d'utiliser les trois champs d'en-tête de message de réponse ci-dessus pour fermer le cache du navigateur.
Exemple: désactiver les navigateurs de cache pages Web actuelles
1. Exemple de description
Ce programme démontre les performances lors de la soumission des messages de demande via le formulaire lorsque le cache du navigateur n'est pas fermé et que le cache du navigateur est fermé.
2. Écrivez une classe de cache
Le cache du navigateur est fermé en utilisant les trois champs d'en-tête de message de réponse ci-dessus dans la classe de cache et publie un morceau de code HTML au client pour tester l'effet de la fermeture du cache et de ne pas fermer le cache. Le code d'implémentation de la classe de cache est le suivant:
La classe publique Cache étend HttpServlet {public void Service (HttpServLetRequest Request, HttpServletResponse Response) lève ServletException, ioException {réponse.setContentType ("text / html; charset = utf-8"); String cache = request.getParameter ("cache"); if (cache! = null) {if (cache.equals ("false")) {// Fermez le navigateur Cache Response.SetDateHeader ("expire", 0); Response.sethEader ("Cache-Control", "No-cache"); Response.sethEader ("Pragma", "No-Cache"); }} // Définir la chaîne de code html html = "<form id = 'form', action = 'test' metheth = 'post'>" + "name: <input type = 'text' name = 'name' />" + "<input type = 'soume' value = 'soume' />" + "</ form>"; Printwriter out = réponse.getWriter (); out.println (html); // Sortie du code HTML au client}}Comme on peut le voir à partir du code ci-dessus, le cache du navigateur est fermé lorsque la valeur du paramètre de demande de cache est fausse.
3. Configurez la classe de cache
Le code de configuration de la classe de cache est le suivant:
<VerTlet> <Servlet-Name> Cache </ servlet-name> <servlet-class> Chapter5.Cache </ servlet-class> </ servlet> <servlet-mapping> <servlet-name> cache </vrlet-name> <url-potern> / cache </ url-potern> </ servlet-mapping>
4. Testez la situation où le cache du navigateur n'est pas fermé
Entrez l'URL suivante dans la barre d'adresse du navigateur:
http: // localhost: 8080 / démo / cache? cache = true
Entrez n'importe quelle chaîne dans la zone de texte [Nom] et cliquez sur le bouton [Soumettre]. Pour le moment, le navigateur affichera une exception (cette exception est causée par le test soumis qui n'existe pas, nous n'avons donc pas à nous en soucier), puis cliquez sur le bouton de retour du navigateur pour revenir à la page où les données ont été entrées tout à l'heure. Nous pouvons voir que la chaîne entrée dans le moment existe toujours. Cela signifie que lors du retour, le navigateur ne retrouve pas la page du serveur, mais recharge la page actuelle du cache local.
5. Testez la situation de la fermeture du cache du navigateur
Entrez l'URL suivante dans la barre d'adresse du navigateur pour fermer le cache du navigateur:
http: // localhost: 8080 / démo / cache? cache = false
Soumettre et revenir à l'étape précédente, et a constaté que les données entrées en ce moment avaient disparu. Cela signifie qu'après la fermeture du cache du navigateur, le navigateur retrouvera toujours la page actuelle du serveur à chaque fois qu'il revient. Par conséquent, la page actuelle maintient toujours la valeur initiale.
6. Résumé de la procédure
Lors de la fermeture du cache du navigateur, afin de s'assurer qu'il est efficace dans la plupart des navigateurs autant que possible, je recommande d'utiliser les trois champs d'en-tête de message de réponse HTTP ci-dessus pour fermer le cache du navigateur en même temps.
Résumer
Ce qui précède est la méthode de Javaweb interdisant aux navigateurs de mettre en cache les pages Web actuelles. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!