Wenn der Client auf der Webseite jedes Mal auf den Server zugreift, müssen einige von ihnen ihn nicht wiederholt anfordern. Zum Beispiel müssen einige Bilder, Videos usw. nicht jedes Mal anfordern, was die Arbeitsbelastung des Servers erhöht. Um dies zu verhindern, verwenden wir Filter, um den zwischengespeicherten Client festzulegen.
Seitencache- und Nicht-Cache-Einstellungen und die Rolle von Meta auf HTML-Seiten
In HTTP 1.1 ist Cache-Control aktiviert, um den Cache der Seiten zu steuern. Hier sind einige häufig verwendete Parameter:
No-Cache, weder der Browser noch der Cache-Server sollten die Seiteninformationen cache-Informationen zwischenspeichern.
Öffentliche, sowohl der Browser als auch der Cache -Server können die Seiteninformationen cache care.
No-Store-, Anfrage- und Antwortinformationen sollten nicht im Festplattensystem der anderen Partei gespeichert werden.
MUSS-REVALIDATE, muss der Proxy-Server für jede Anforderung vom Client überprüft, ob der Cache veraltet ist.
Last modifiziert nur die letzte Generation der Seite der Seite, GMT-Format;
Abgelaufener Limitwert, GMT -Format, bedeutet, dass der Browser- oder Cache -Server nach diesem Zeitpunkt neue Seiteninformationen vom realen Server erhalten muss.
Die beiden oben genannten Werte werden in JSP auf das GMT-Format vom Zeichen des Zeichens eingestellt und können also nicht wirksam werden, sodass der lange Typ wirksam wird.
Hier ist der Filtercode, der ungeschmerzt festgelegt ist:
<span style = "Schriftgröße: 24px;"> Paket cn.hncu.filter; importieren java.io.ioException; import Javax.servlet.filter; importieren javax.servlet.filterchain; importieren javax.servlet.filterconfig; importieren javax.servlet.servletException; importieren javax.servlet.servletrequest; importieren javax.servlet.servletresponse; importieren javax.servlet.http.httpServletRequest; importieren javax.servlet.http.httpServletResponse; public class CacheFilter implements Filter { @Override public void destroy() { }</span> <span style="font-size:24px;"> @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // Filters have many functions. Dies wird verwendet, um festzustellen, ob der Client den Cache legt. Wir verwenden hier die Antwort, um den Client zu benachrichtigen, um Chain.dofilter (Request, Antwort) einzurichten. HttpServletResponse res = (httpServletResponse) Antwort; res.setheader ("expries", "-1"); res.setheader ("pragma", "no-cache"); res.setheader ("cache-control", "no-cache"); /*Das obige kann nicht auf Cache eingestellt werden, aber es kann auch auf umfassender sein: // Die Browser- oder Cache -Server darf die aktuellen Seiteninformationen nicht zwischenspeichern. /* response.setheader ("pragma", "no-cache"); response.setDateHeader ("läuft", "-1"); response.addHeader ("cache-control", "no-cache"); // Weder der Browser noch der Cache-Server sollte die Seite Information von Seite cache. Client, der Proxy -Server muss von dem Server sein, um zu überprüfen, ob der Cache veraltet ist. } @Override public void init (filterconfig arg0) löst ServletException aus {}} </span> <span style = "Schriftgröße: 18px;"> </span>Unten finden Sie die Filterdatei, die den Cache festlegt
Paket cn.hncu.filter; importieren java.io.ioException; import Java.util.date; import Javax.servlet.filter; importieren javax.servlet.filterchain; importieren javax.servlet.filterconfig; importieren javax.servlet.servletException; importieren javax.servlet.servletrequest; importieren javax.servlet.servletresponse; importieren javax.servlet.http.httpServletResponse; öffentliche Klasse CacheFilter2 implementiert Filter {@Override public void destroy () {} @Override public void dofilter (ServletRequest Request, ServletResponse -Antwort, Filterchain -Kette) löscht IOException, ServletException aus {// Filter haben viele Funktionen. Dies wird verwendet, um festzustellen, ob der Client den Cache legt. Wir verwenden die Antwort, um den Client zu benachrichtigen, um den Cache // den Cache für 1 Tag festzustellen, um die Ressource der Bild- und Videoklasse zu aktivieren (konfigurieren Sie den entsprechenden Intercept -Pfad im Filter), um den Clientbrowser für 1 Tag zu verlangen). res = (httpServletResponse) Antwort; Datum d = neues Datum (); Langzeit = D.Getime ()+60*60*24; // res.setheader ("expries", ""+time); // Auf diese Weise den Cache für einen Tag res.setdatheader ("expries", Zeit); // Gleich wie der oben genannte Satz/ * * Datum = new Date (new Date (); response.setDateHeader ("last-modifiziert", Date.getTime ()); // Last-Modified: Die letzte Generation der Seitenantwort. // läuft ab: Die Reaktion der Ablaufgrenze. // Cache-Control steuert, ob die Seite zwischengespeichert ist, öffentlich: Sowohl der Browser als auch der Cache-Server können die Seiteninformationen zwischen den Seiten zwischen den Seiten cache. response.setheader ("pragma", "pragma"); // Pragma: Stellen Sie fest, ob die Seite zwischengespeichert ist, wenn es sichHinweis: Die obige Filterdatei muss in web.xml konfiguriert werden, um sie entsprechend dem konfigurierten Pfad zu filtern.
Das obige ist die detaillierte Erläuterung, ob die Einstellung des Javaee -Filterfilters zwischen dem Herausgeber zwischengespeicherte Instanzen zwischen zwischenströmten Instanzen besteht. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!