Actuellement, je suis en utilisant une version modifiée d'un filtre Servlet décrit ici:Stripes 1.5: fonctionnement sur Tomcat - meilleur moyen de contrôler les en-têtes HTTP (cache-control)?
http://onjava.com/pub/a/onjava/2004/03/03/filters.html
et ont accroché vers le haut aux bandes servlet répartiteur comme ceci:
<filter-mapping>
<filter-name>CacheControl</filter-name>
<servlet-name>StripesDispatcher</servlet-name>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
Ce qui fonctionne: mais a l'effet de contrôler tout mon contenu - comment pourrais-je obtenir le contrôle par base JSP et/ou par méthode d'actionBean?
J'allais essayer d'étendre 'ForwardResolution' et injecter ici, mais ne semble pas être capable de le faire dans ma propre structure de paquets? (Constructeur protégé je pense).
Deux autres idées que j'avais (que je ne en particulier, comme le son de) sont les suivants:
- Création d'une clé de cache aléatoire sur l'ensemble des pages JSP qui font appel à la ActionBean (invalidait le contrôle de cache - dans effet).
- Passer un paramètre HTTP, que je peux ensuite vérifier dans le CacheControl Filter pour savoir s'il faut ajouter dans les en-têtes de contrôle de cache. Puis-je simplement ajouter la directive à mes JSP? Quelle est la manière recommandée de le faire.
[en aparté, il semble que mon filtre est invoqué deux fois pour chaque appel ... est-ce un effet secondaire de la façon dont je l'ai accroché un filtre à la servlet rayures peut-être?]
Merci pour cela (+1) - les deux bonnes solutions de sondage.En fait, j'ai appris que les versions ultérieures de Stripes ont quelques fonctionnalités de contrôle de cache: je répondrai à ma propre question avec cette information. – monojohnny