Java servlet Filter 在 FilterConfig 中具有多个值?是否可以?

标签 java servlets parameters servlet-filters multiple-value

我正在尝试实现一个 servlet 过滤器,它会在过滤其他所有内容时忽略某些 URL。 为了使其灵活,我尝试将排除的 URL 设置为 FilterConfig 参数。不过,在服务器配置中,过滤器参数部分似乎不接受给定参数名称的多个值,因此我有点想知道是否以及如何包含可以作为集合或数组接收的多个值在过滤器 init() 中。

这基本上就是我所追求的:

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

当然,我可以使用分隔符分隔符方法,但我想知道是否有某种标准化的方法可以做到这一点。

非常感谢! 亚历克斯

最佳答案

Servlet 规范规定任何上下文参数只能有一个值。因此,您只能使用分隔列表。

您可以使用一些分隔符作为“,”

<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

关于Java servlet Filter 在 FilterConfig 中具有多个值?是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25077402/

相关文章:

mysql - 从 Servlet 在 JSP 中显示数据表

matlab - 使用 lsqcurvefit 拟合

java - 构造函数及其使用方式

java - Hibernate 中的孤立删除(当有多个映射对象时)

java - 通过 Java 使用 SQLXMLBulkload

java - 如果给定条件,如何突出显示行表?

java - 如何以表格格式显示ArrayList?

java - 如何将数组从jsp传递到servlet

linux - 无法在 bash 脚本中使用参数 nb10

java - 从 HttpSessionListener 中获取用户名