Java Servlets - 在 web.xml中存储值列表(单个参数名称的多个参数值)

2022-09-01 06:34:03

我正在创建一个需要加载配置信息的 servlet。我需要的部分配置信息是字符串列表(特别是主机名和/或URL的列表)。

我希望将此信息存储在我的servlet的web.xml文件中(因此我不必编写自己的解析器)作为上下文参数或init-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>

我最初的研究似乎表明这是不可能的 - 任何参数名称(在上下文参数或初始化参数中)只能有一个参数值。

我知道我可以在单个参数值中使用分隔列表,但是如果我仍然想使用web.xml,这真的是我唯一的选择吗?我应该停止抱怨并编写自己的配置文件解析器吗?


答案 1

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

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

答案 2

将每个参数放在自己的行上。我最近做了以下工作,它工作正常:

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

推荐