Это правильный способ иметь «глобальные» параметры для моих сервлетов? - PullRequest
2 голосов
/ 08 июня 2010

Если у меня есть:

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

в моем web.xml, это сервлетный способ задания опций (например, как используется файл конфигурации), или я делаю что-то не так?Я знаю о init-param, который можно указать для сервлета, но я бы хотел убедиться, что некоторые значения одинаковы для всех сервлетов.

Ответы [ 2 ]

3 голосов
/ 08 июня 2010

<context-param> предназначен для определения параметров инициализации для всего контекста, которые доступны для всех сервлетов. Внутри сервлета вы можете получить их по ServletContext#getInitParameter(), например

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

Это правильный способ иметь «глобальный» параметр для всех ваших сервлетов. Но вы также можете определить специфичные для сервлета параметры инициализации внутри <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() методом. Э.Г.

public void init() {
    String someParam = getInitParameter("someParam");
}
1 голос
/ 08 июня 2010

да, вы правы. Идите вперед, все работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...