我正在尝试实现一个servlet过滤器,它会在过滤其他所有内容时忽略某些URL。 为了使其灵活,我尝试将排除的URL设置为FilterConfig参数。虽然,在服务器配置中,filter params部分似乎不接受给定param名称的多个值,所以我有点想知道是否以及如何包含几个我可以作为Set或Array接收的值在过滤器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>
当然我可以使用分隔符分割器方法,但我想知道是否有某种标准化的方法。
非常感谢! 亚历
答案 0 :(得分:1)
Servlet规范说,任何上下文参数只能有一个值。所以,你只能选择分隔列表。
您可以使用某些分隔符作为&#39;,&#39;
<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