这是为我的servlet提供“全局”参数的正确方法吗?

时间:2010-06-08 16:12:26

标签: java servlets config

如果我有:

  <context-param>
    <param-name>SomeParam</param-name>
    <param-value>SomeValue</param-value>
  </context-param>

在我的web.xml中,这是servlet指定选项的方式(就像使用配置文件一样),还是我做错了什么?我知道可以为servlet指定的init-param,但是我想确保所有servlet的值都相同。

2 个答案:

答案 0 :(得分:3)

<context-param>用于定义可供所有 servlet使用的上下文范围的初始化参数。在servlet中,您可以通过ServletContext#getInitParameter()获取它们,例如

public void init() {
    String someParam = getServletContext().getInitParameter("someParam");
}

这是为所有servlet提供“全局”参数的正确方法。但您也可以在<servlet>中定义特定于servlet的初始化参数,如下所示:

<servlet>
    <servlet-name>myServlet</servlet-name>
    <servlet-class>com.example.MyServlet</servlet-class>
    <init-param>
        <param-name>someParam</param-name>
        <param-value>someValue</param-value>
    </init-param>
</servlet>

您可以通过继承的 GenericServlet#getInitParameter()方法获取它们。 E.g。

public void init() {
    String someParam = getInitParameter("someParam");
}

答案 1 :(得分:1)

是的,你是对的。继续前进,它运作良好。