Ich möchte den Header Expires
für alle image/*
und text/css
festlegen. Ich mache das in Filter
. Jedoch:
chain.doFilter(..)
der Inhaltstyp ist noch nicht "realisiert" chain.doFilter(..)
wird der Inhaltstyp festgelegt, aber auch die Inhaltslänge, die das Hinzufügen neuer Header (zumindest in der Tomcat-Implementierung) verbietet Ich kann die Erweiterungen der angeforderten Ressource verwenden, aber da einige der CSS-Dateien von Richfaces generiert werden, indem sie aus JAR-Dateien stammen, lautet der Name der Datei nicht x.css
, sondern /xx/yy/zz.xcss/DATB/...
. .
Also gibt es eine Möglichkeit, den Content-Typ zu erhalten, bevor die Antwort festgeschrieben wird.
Ja, implementieren Sie HttpServletResponseWrapper
und überschreiben Sie%. co_de%.
und benutze es wie folgt:
%Vor%Sie sollten HttpServletResponseWrapper von der Unterklasse ableiten und überschreiben Sie addHeader und setHeader , um den neu gewünschten Header hinzuzufügen, wenn" Content-Type "als Header-Name übergeben wird. Vergessen Sie nicht, Super in diesen überschriebenen Methoden zu nennen. Wickeln Sie die Antwort, die im doFilter-Methodenargument gesendet wird, mit diesem neuen Wrapper und übergeben Sie den Wrapper an den Aufruf von doFilter.