Спецификация сервлета: <context-param> vs <env-entry> в web.xml?

Почему спецификация сервлета определяет два разных способа (параметры контекста и записи среды) для предоставления веб-приложению параметров конфигурации?

Каковы соответствующие преимущества этих подходов (когда следует отдать предпочтение)?

1 ответ

Решение

Записи среды доступны через JNDI, что может быть полезно, когда у вас нет ServletContext прямо под руками, например в EJB. Тот в web.xml на самом деле является последним в цепочке приоритетов в отношении переопределения окружающей среды. Они обычно определяются в собственной конфигурации сервера. Так что если кто-то намеревается переопределить указанную сервером запись среды из веб-приложения, то это можно сделать с помощью web.xml,

Параметры контекста действительно специфичны для самого веб-приложения. Они доступны только тогда, когда у вас есть ServletContext непосредственно под рукой, обычно только внутри фильтров, сервлетов (и, по сути, также JSP через ${initParam.someName} в EL) и слушателей. Предполагается, что они используются для предоставления параметров конфигурации для фильтров, сервлетов и / или прослушивателей, работающих в веб-приложении. Не имеет смысла предоставлять их JNDI, который является слишком сложным процессом для простой цели.

Другие вопросы по тегам