Come si aggiunge un'intestazione Expires
o Cache-Control
in JSP? Voglio aggiungere una data di scadenza a lungo termine in una pagina di inclusione per i miei componenti statici come immagini, file CSS e JavaScript.Aggiungi un'intestazione Expires o Cache-Control in JSP
risposta
Per disattivare la cache del browser per le pagine JSP, creare un Filter
che viene mappato su un url-pattern
di *.jsp
e fondamentalmente fa la seguente nel metodo doFilter()
:
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1
httpResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0
httpResponse.setDateHeader("Expires", 0); // Proxies.
In questo modo non è necessario copypaste questo su tutte le pagine JSP e li ingombra con scriptlets.
Per abilitare la cache del browser per i componenti statici, come CSS e JS, metterli tutti in una cartella comune come /static
o /resources
e creare un Filter
che viene mappato su un url-pattern
di /static/*
o /resources/*
e fondamentalmente fa la seguente nel metodo doFilter()
:
httpResponse.setDateHeader("Expires", System.currentTimeMillis() + 604800000L); // 1 week in future.
Vedi anche:
<%
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
%>
OP dice che vuole una pagina che scade nel lontano futuro, tuttavia questa risposta gli dà il contrario. –
contenitori servlet come Tomcat sono dotati di una serie di filtri predefiniti. Vedi ad esempio Expires Filter. Potrebbe essere più facile usare quello esistente piuttosto che creare il tuo filtro simile.
<%
response.setHeader("Cache-Control", "no-cache"); //HTTP 1.1
response.setHeader("Pragma", "no-cache"); //HTTP 1.0
response.setDateHeader("Expires", 0); //prevents caching at the proxy server
%>
Dovrebbero essere usati sia "Cache-Control" che "Pragma" o solo uno a seconda del container servlet? –
OP dice che vuole una pagina che scade nel lontano futuro, tuttavia questa risposta gli dà il contrario. –
- 1. API Web ASP.NET CacheControl
- 2. ETag vs Expires
- 3. META "expires" tag
- 4. Aggiungi indicatore di presenza del comunicatore MS Office in JSP
- 5. L'intestazione HTTP "Expires" non funziona in Chrome
- 6. BLOB di Azure CacheControl non viene applicato
- 7. Compilare JSP (controllare l'errore sintattico in JSP)
- 8. Impossibile impostare cookie "expires" o "maxAge" in Node.js utilizzando Express 3.0
- 9. Includere automaticamente un JSP in ogni JSP
- 10. Esecuzione Phantomjs da JavaScript, JSP o Java
- 11. Crea o aggiungi alla matrice in Ruby
- 12. Aggiungi o condizione all'entità in Entity Framework
- 13. Java + Spring Boot: Sto cercando di aggiungere l'intestazione di CacheControl a ResponseEntity
- 14. Destroy session in JSP
- 15. abilitazione el in jsp
- 16. Masterpages in JSP
- 17. Qual è la differenza tra l'intestazione Etag e Expires?
- 18. come aggiungere arraylist in JSP
- 19. Calcolatrice semplice con JSP/Servlet e Ajax
- 20. Aggiungi "using" al file ASPX o ASCX
- 21. Aggiungi un'immagine o un'icona all'intestazione scheda primefaces
- 22. JSP o JavaScript equivalente a $ _SERVER di PHP ["HTTP_HOST"]?
- 23. Come sfuggire apostrofo o virgolette su JSP (utilizzato da JavaScript)
- 24. Qualcosa non va con la codifica di .properties o JSP
- 25. Best practice: tag jsp personalizzato o tag include?
- 26. maven, file jsp in dipendenza
- 27. Debug JSP in IntelliJ IDEA
- 28. display Data diff in jsp
- 29. Problemi di codifica in JSP
- 30. Controllare stringa vuota in jsp
+ ∞ se potessi per il tuo post di blog link. Mi ha salvato COSÌ. MOLTI. ORE. –
@Bears: Prego :) – BalusC
grazie mi ha aiutato molto. Ma non c'è un errore nella seconda linea? Imho dovrebbe essere: httpResponse.setHeader ("Cache-Control", "no-cache, no-store, must-revalidate"); – Christian