Est-ce que quelqu'un sait comment coder un filtre de servlet qui va définir les en-têtes de cache sur une réponse pour un type de fichier/contenu donné? J'ai une application qui sert beaucoup d'images, et je voudrais réduire la bande passante pour l'héberger en faisant en sorte que le navigateur cache ceux qui ne changent pas très souvent. Idéalement, j'aimerais pouvoir spécifier un type de contenu et lui faire définir les en-têtes appropriés chaque fois que le type de contenu correspond.Filtre de servlet pour la mise en cache du navigateur?
Est-ce que quelqu'un sait comment s'y prendre? Ou, mieux encore, avoir un exemple de code qu'ils seraient prêts à partager? Merci!
Sinon, si vous avez tous ces fichiers dans un dossier commun, par exemple '/ static', il suffit de mapper le filtre sur un' url-pattern' de '/ static/*' de sorte que vous n'ayez pas besoin de vérifier le type de contenu à chaque fois et que vous pouvez simplement définir les en-têtes de réponse directement. – BalusC
Cela ne fonctionnera PAS pour les ressources SSL/TLS sur GlassFish car le conteneur ajoute automatiquement les en-têtes Pragma et Cache-Control. Si vous souhaitez mettre en cache ces ressources, vous devez supprimer/remplacer ces en-têtes avec quelque chose comme: super.setHeader ("Pragma", null); et super.setHeader ("Cache-Control", null). Cache-Control: "public" fonctionnerait probablement aussi. Remarque: L'utilisation de null peut ne pas être portable car elle n'est pas dans la spécification. Il peut y avoir un moyen de désactiver le conteneur d'ajouter les en-têtes, mais il n'est pas bien documenté. – Ryan