简体   繁体   English

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

[英]Is this the right way to have “global” parameters for my servlets?

If I have: 如果我有:

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

in my web.xml , is this the servlet way of specifying options ( like in the way a config file is used ) , or am I doing something wrong? 在我的web.xml ,这是指定选项的servlet方式(例如使用配置文件的方式),还是我做错了什么? I know about init-param that can be specified for a servlet, but I'd like o make sure some values are the same for all the servlets. 我知道可以为servlet指定的init-param ,但是我想确保所有servlet的某些值都相同。

The <context-param> is to define context-wide initialization parameters which is available to all servlets. <context-param>用于定义所有 servlet都可以使用的上下文范围的初始化参数。 Inside a servlet you can obtain them by ServletContext#getInitParameter() , eg 在Servlet内部,您可以通过ServletContext#getInitParameter()获得它们,例如

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

That's the right way to have a "global" parameter for all your servlets. 这是为所有servlet设置“全局”参数的正确方法。 But you can also define servlet-specific initialization parameters inside <servlet> as follows: 但您也可以在<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>

You can obtain them by the inherited GenericServlet#getInitParameter() method. 您可以通过继承的 GenericServlet#getInitParameter()方法获取它们。 Eg 例如

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

是的,您是对的。继续进行即可。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM