Zwischenspeicherung von Bildern, die vom Servlet bedient werden

8

Ich serviere Bilder von meinem Servlet. Der Inhaltstyp der Antwort ist image / jpeg. Ich finde, dass Bilder, die von meinem Servlet angefordert werden, nicht zwischengespeichert werden. Wie bekomme ich sie im Cache, wie Dateiabbild-Anforderungen normalerweise sind? Ich habe versucht, Cache-Control zu setzen: öffentlich, aber ohne Erfolg.

    
akula1001 20.05.2010, 09:53
quelle

3 Antworten

22

Das Standard-Servlet, das statischen Inhalt in Containern wie Tomcat bereitstellt, setzt keine Cache-Steuerkopfzeilen. Sie müssen dafür kein Servlet schreiben. Erstellen Sie einfach einen Filter wie diesen,

%Vor%

Wenn Sie die Cache-Steuerung hinzufügen möchten, fügen Sie den Filter einfach zu den Ressourcen in web.xml hinzu. Zum Beispiel

%Vor%     
ZZ Coder 20.05.2010 11:50
quelle
3

Sie müssen die ETag , Last-Modified und Expires Header entlang der Antwort. Der ETag stellt den eindeutigen Bezeichner der Datei dar (normalerweise basierend auf einer Kombination aus Dateiname, Dateigröße und zuletzt geändertem Zeitstempel). Der Last-Modified stellt den letzten modifizierten Zeitstempel der Datei dar. Der Header Expires gibt an, wie lange der Client die Datei im Cache behalten darf. Wenn der Cache abgelaufen ist und die ETag oder Last-Modified verfügbar sind, sendet der Client eine Anfrage HEAD , um zu überprüfen, ob die Datei erneuert werden muss. Wenn nicht, dann wird das Expires einfach wieder entsprechend verschoben.

Hier finden Sie ein Servlet-Beispiel, das all dies handhabt (und Download-Fortsetzungen und automatisches GZIP): FileServlet unterstützt Lebenslauf und GZIP

    
BalusC 20.05.2010 11:29
quelle
2

Zum Beispiel, wenn Sie sie für 1 Monat zwischenspeichern möchten:

%Vor%

(dies ist in Filter , die zum Beispiel das Muster *.jpg behandelt)

Aber Bilder sollten standardmäßig zwischengespeichert werden - überprüfen Sie Ihre Filter und Konfigurationen, um zu sehen, ob etwas die Cache-Parameter nicht falsch setzt.

    
Bozho 20.05.2010 09:55
quelle

Tags und Links