2

他のすべてをフィルタリングしながら一部の URL を無視するサーブレット フィルタを実装しようとしています。柔軟にしたいので、除外された URL を FilterConfig パラメータとして設定しようとしました。ただし、サーバー構成では、フィルターパラメーターセクションは特定のパラメーター名に対して複数の値を受け入れないように見えるため、セットまたは配列として受け取ることができる複数の値を含めるかどうか、およびどのように含めるかについて疑問に思っています。フィルタ init() で。

これが基本的に私が求めているものです:

<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>

もちろん、区切り記号のアプローチを使用することもできますが、それを行う標準化された方法があるかどうか疑問に思っています。

どうもありがとう!アレックス

4

1 に答える 1

2

サーブレットの仕様によると、任意のコンテキスト パラメータに対して値を 1 つだけ持つことができます。したがって、区切りリストのみを使用することになります。

「、」などの区切り文字を使用できます

<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>

後で、次の方法でフィルター構成からこれらの値を読み取ります。

String[] ignoredUrls = (param!=null)? param.split(",") : {}; // or something like this
于 2015-10-15T12:06:50.627 に答える