Различие, черно-белое <контекст-param> и <init-param>

Элементы DD <context-param> и <init-param> оба могут быть получены getInitParameter() метод, в коде сервлета.

Теперь вопрос, как он дифференцируется <context-param> и <init-param>?

27
задан Adeel Ansari 31 October 2017 в 02:58
поделиться

2 ответа

Сервет Параметры init предназначены только для одного сервлета. Ничто за пределами этого сервлета может получить доступ к этому. Он объявлен внутри тег дескриптора развертывания, с другой стороны параметр контекста предназначен для всего веб-приложения. Любой сервлет или JSP в этом веб-приложении может получить доступ параметр контекста . Параметры контекста объявлены в теге непосредственно внутри , TAG> .

Методы доступа параметр контекста init

getServletContext().getInitParameter("name"); 

, тогда как метод доступа параметр init сервлета

getServletConfig().getInitParameter("name");
44
ответ дан 28 November 2019 в 05:16
поделиться

Как объяснено Adeel Ansari, здесь , это зависит от того, какой объект вы вызываете метод getInitParameter () в сервлете.

Все сервлеты расширяются и следовательно, являются экземпляром GenericiClevlet .

.

Элементы DD могут быть получены:

ServletContext context = this.getServletContext();
String paramValue = context.getInitParamter("paramName");

.

Элементы DD Оба могут быть получены:

ServletConfig config = this.getServletConfig();
String paramValue = config.getInitParamter("paramName");

также обратите внимание, что с GenericiClevlet Alld Allbies Интерфейс сервлета , ваш класс сервлета Также ServletConfig (подразумевает this = this.getservletconfig () ). Следовательно, вы также можете получить элементы DD непосредственно путем:

String paramValue = this.getInitParamter("paramName");

.

Вы можете попробовать это, имея то же самое имя параметров в обоих элементах DD с разными значениями, а затем распечатайте его на вашем сервлете.

2
ответ дан 28 November 2019 в 05:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: