Java servlet为 - 在web.xml中存储的值的列表(多PARAM值的单PARAM名)(

2019-07-28 22:30发布

我创建需要加载配置信息的servlet。 的我所需要的配置信息的一部分是字符串的列表(具体而言,主机名和/或URL的列表)。

我希望存放在我的servlet的web.xml文件中该信息(所以我没有写我自己的解析器)无论是作为的context-param或init-PARAM; 本质上由多PARAM值的单个PARAM名。

我想什么例子:

<context-param>
    <param-name>validHosts</param-name>
    <param-value>example1.com</param-value>
    <param-value>example2.com</param-value>
    <param-value>example3.com</param-value>
</context-param>

我最初的研究似乎表明这是不可能的 - 这只能有任何PARAM-名(的context-param或init-PARAM内)单PARAM值。

我知道我可以只使用一个单一的PARAM值内的分隔列表,但真正我唯一的选择,如果我还是想用的web.xml? 我是不是应该停止抱怨,写我自己的配置文件分析器?

Answer 1:

Servlet规范说,你只能有一个对任何情况下的参数值 。 所以,你会留下只有分隔列表去。

<context-param>
  <param-name>validHosts</param-name>
  <param-value>example1.com,example2.com,.....</param-value>
</context-param>


Answer 2:

把每个PARAM自成一行。 我最近做了以下工作得很好:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/spring-beans.xml
        /WEB-INF/security-config.xml    
    </param-value>
</context-param>


Answer 3:

是的,就用分隔符(如适用于本没有其他选择):

<context-param>
    <param-name>validHosts</param-name>
    <param-value>example1.com,example2.com,example3.com</param-value>
</context-param>



then simply
String[] validHosts = param.split(","); // not really much to do


文章来源: Java Servlets - Storing a list of values in web.xml (multiple param-value's for single param-name)