Servlet-filter für browser-caching?
Weiß jemand, wie man über die Codierung einen servlet-filter, der cache-Header auf eine Antwort für eine bestimmte Datei/content type? Ich habe eine app, die bietet eine Menge Bilder, und ich möchte das reduzieren der Bandbreite, die für das hosting es durch den browser-cache, die nicht sehr Häufig ändern. Im Idealfall würde ich mag in der Lage sein, um einen Inhaltstyp angeben und stellen die entsprechenden Header, wenn der Inhalt übereinstimmt.
Weiß jemand, wie man über das tun dies? Oder, noch besser, Beispielcode, Sie wäre bereit zu teilen? Danke!
InformationsquelleAutor Shadowman | 2010-07-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihrem filter haben diese Zeile:
Wo die Antwort wrapper der wie folgt aussieht:
Kurz, dieser erstellt einen response-wrapper, die, auf Einstellung der Inhalte, Typ, fügt der expires-header. (Wenn Sie möchten, können Sie hinzufügen, was andere Header auch, müssen Sie so gut). Ich habe mit diesem filter + wrapper und es funktioniert.
Siehe diese Frage auf ein bestimmtes problem, das dadurch behoben wird, und die ursprüngliche Lösung von BalusC.
/static
, dann einfach mit der Karte den filter auf eineurl-pattern
von/static/*
so dass Sie nicht brauchen, um den Inhalt zu überprüfen geben Sie jedes mal und kann nur die Antwort-Header direkt.Dies wird NICHT für SSL - /TLS-Ressourcen auf GlassFish durch den container automatisch hinzufügen Pragma und Cache-Control-Header. Wenn Sie Zwischenspeichern möchten, diese Ressourcen, die Sie benötigen, um zu entfernen/überschreiben Sie diese Header mit so etwas wie: super.setHeader("Pragma", null); super.setHeader("Cache-Control", null). Cache-Control: "public", würde wahrscheinlich auch funktionieren. Hinweis: die Verwendung von null kann nicht tragbar sein, da es nicht in der spec. Möglicherweise gibt es eine Möglichkeit zum deaktivieren der container aus der addition der Header, aber es ist nicht gut dokumentiert.
InformationsquelleAutor Bozho
Hier ist die fertige Lösung für dieses https://github.com/samaxes/javaee-cache-filter
InformationsquelleAutor Nikita Koksharov