Dans la page Web, lorsque le client accède au serveur à chaque fois, certains d'entre eux n'ont pas besoin de le demander à plusieurs reprises. Par exemple, certaines photos, vidéos, etc., il n'est pas nécessaire de le demander à chaque fois, ce qui augmentera la charge de travail du serveur. Pour éviter cela, nous utilisons des filtres pour définir le client pour être mis en cache.
Page Cache et paramètres non caches et le rôle de Meta dans les pages HTML
Dans HTTP 1.1, le contrôle du cache est permis de contrôler le cache des pages. Voici quelques paramètres couramment utilisés:
NO-CACH, ni le navigateur ni le serveur de cache ne doivent être le cache des informations de la page;
public, le navigateur et le serveur de cache peuvent mettre en cache les informations de la page;
Aucun magasin, les informations de demande et de réponse ne doivent pas être stockées dans le système de disque de l'autre partie;
MUST-REVALADIDAD, pour chaque demande du client, le serveur proxy doit vouloir que le serveur vérifie que le cache est obsolète;
Dernier mode uniquement le temps de dernière génération de la page, format GMT;
Expire la valeur limite expirée, le format GMT, signifie que le navigateur ou le serveur de cache doit obtenir de nouvelles informations de page à partir du serveur réel après ce point de temps;
Les deux valeurs ci-dessus sont définies sur le format GMT de type caractéristique dans JSP et ne peuvent pas prendre effet, donc le type long est défini pour prendre effet;
Voici le code de filtre qui se met à l'absence:
<span style = "Font-Size: 24px;"> package cn.hncu.filter; Importer java.io.ioException; import javax.servlet.filter; Importer javax.servlet.filterchain; Importer javax.servlet.filterconfig; Importer javax.servlet.servletException; Importer javax.servlet.servletRequest; import javax.servlet.servletResponse; Importer javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; classe publique Cachefilter implémente Filter {@Override public void destrement () {} </span> <span style = "font-size: 24px;"> @Override public void dofilter (ServletRequest Request, ServletResponse réponse, filterchain chaîne) lance ioException, servlexception {// filtre a de nombreuses fonctions. Ceci est utilisé pour définir si le client définit le cache. Nous utilisons la réponse ici pour informer le client pour configurer Chain.Dofilter (demande, réponse); HttpServletResponse Res = (httpServletResponse) Réponse; res.sethEader ("expries", "-1"); res.sethEader ("pragma", "non-cache"); res.sethEader ("Cache-Control", "No-cache"); / * Ce qui précède peut être défini sur le non-cache, mais il peut également être défini pour être plus complet: // Le côté navigateur ou le serveur de cache n'est pas autorisé à mettre en cache les informations de page actuelles. / * Response.sethEader ("Pragma", "No-Cache"); réponse.setDateHeader ("expire", "-1"); Response.Addheader ("Cache-Control", "No-cache"); // Ni le navigateur ni le serveur de cache ne doivent être le cache de l'information de la page. Client, le serveur proxy doit vouloir que le serveur vérifie si le cache est obsolète; } @Override public void init (filterconfig arg0) lève servletException {}} </span> <span style = "font-size: 18px;"> </span>Vous trouverez ci-dessous le fichier de filtre qui définit le cache
package cn.hncu.filter; Importer java.io.ioException; Importer java.util.date; import javax.servlet.filter; Importer javax.servlet.filterchain; Importer javax.servlet.filterconfig; Importer javax.servlet.servletException; Importer javax.servlet.servletRequest; import javax.servlet.servletResponse; import javax.servlet.http.httpservletResponse; classe publique CacheFilter2 implémente Filter {@Override public void destrement () {} @Override public void dofilter (ServletRequest, réponse servletResponse, chaîne de filterchain) lève ioexception, servlexception {// filtres ont de nombreuses fonctions. Ceci est utilisé pour définir si le client définit le cache. Nous utilisons la réponse pour informer le client pour définir le cache // définir le cache pendant 1 jour ici pour activer la ressource de la classe d'image et de vidéo (configurer le chemin d'interception correspondant dans le filtre) pour exiger que le navigateur du client se cache pendant 1 jour) // le chemin intercept configurer la chaîne.Dofilter (demande, réponse); // fait la demande, le retour passe également ici, le retour à l'intercept res = (httpservletResponse) Réponse; Date D = nouvelle date (); Long temps = d.gettime () + 60 * 60 * 24; // res.sethEader ("expries", "" + heure); // de cette façon, définissez le cache pour un jour res.setDateHeader ("expries", heure); // identique à la phrase ci-dessus / * * date de date = new Date (); Response.SetDateHeader ("Last-Modified", date.getTime ()); // dernier modifié: la dernière génération de la page Response.SetDateHeader ("Expires", date.getTime () + 60 * 60 * 24); // expire: la limite d'expiration Response.sethEader ("Cache-Control", "public"); // Cache-Control contrôle si la page est mise en cache, public: le navigateur et le serveur de cache peuvent mettre en cache les informations de la page; Response.Setheader ("Pragma", "Pragma"); // Pragma: Définissez si la page est mise en cache, si elle est pragma, elle est mise en cache, et sans cache n'est pas mis en cache * /} @Override public void init (filterconfig arg0) lève ServletException {}Remarque: Le fichier de filtre ci-dessus doit être configuré dans web.xml pour filtrer en fonction du chemin configuré.
Ce qui précède est l'explication détaillée de la question de savoir si le paramètre de filtrage du filtre Javaee est des instances mises en cache introduites par l'éditeur. 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!