Question

J'essaie d'implémenter un filtre de servlet qui ignorerait certaines URL tout en filtrant tout le reste.Voulant le rendre flexible, j'ai essayé de définir les URL exclues en tant que paramètres FilterConfig.Cependant, dans la configuration du serveur, la section des paramètres de filtre ne semble pas accepter plusieurs valeurs pour un nom de paramètre donné, donc je me demande si et comment inclure plusieurs valeurs que je peux ensuite recevoir sous forme d'ensemble ou de tableau. dans le filtre init().

Voici essentiellement ce que je recherche :

<filter> <filter-name>RequestFilter</filter-name> <filter-class>...RequestFilter</filter-class> <init-param>
<param-name>ignoredUrls</param-name>
<param-value>/url1</param-value> <param-value>/url2</param-value> <param-value>/url3</param-value> </init-param>
</filter>

Bien sûr, je peux utiliser une approche délimiteur-séparateur, mais je me demande s'il existe une sorte de manière standardisée de procéder.

Merci beaucoup!Alex

Était-ce utile?

La solution

La spécification du servlet indique que vous ne pouvez avoir qu'une seule valeur pour n'importe quel paramètre de contexte.Il ne vous reste donc plus qu'à utiliser une liste délimitée.

Vous pouvez utiliser un séparateur comme ','

<filter>
  <filter-name>RequestFilter</filter-name>
  <filter-class>...RequestFilter</filter-class>
  <init-param>
    <param-name>ignoredUrls</param-name>
    <param-value>/url1,/url2,/url3</param-value>
  </init-param>
</filter>

Plus tard, vous lirez ces valeurs de la configuration du filtre de cette manière :

String[] ignoredUrls = (param!=null)? param.split(",") : {}; // or something like this
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top