Когда приложение запускается из командной строки, вы получаете один запущенный экземпляр приложения в JVM.Вот почему параметры командной строки можно использовать для передачи параметров в ваше приложение.Это не относится к веб-контейнерам.Сам веб-контейнер может запускать десятки приложений / сервлетов.Так какой же из этих дюжин «передать параметры»?Не выполнимоОбратите внимание, что веб-контейнеры имеют эту функцию, называемую «виртуальные хосты», поэтому может даже случиться, что одно и то же приложение запускается более одного раза, по одному на каждом из любого количества «виртуальных хостов».Конфигурация для одного и того же приложения может отличаться между этими «виртуальными хостами» по ряду веских причин.
Количество альтернатив для передачи параметров приложению, когда оно выполняется в качестве сервлета в веб-контейнере:
Свойства системы.Они могут быть определены с помощью -D в командной строке, используемой для запуска контейнера, или могут быть определены в настройках контейнера для данного сервлета, если контейнер обладает такими функциями.
Система JNDI.
Свойства контекста.Определяется в контейнере для конкретного развертывания приложения.Доступ к ним может быть выполнен в вашем методе init () с использованием getContext (). GetInitParameters () и связанных с ним методов.
Файлы свойств, которые должны быть развернуты с приложением (так, чтобы файлы свойств появлялись в пути к классам сервлета и былиможно найти с помощью Class.getResource () или некоторых других).Обратите внимание, что при отмене развертывания будет потеряна существующая информация о конфигурации, если это возможно, по конкретным мерам для противодействия этому.
Свойства контекста (параметры инициализации контекста), вероятно, являются вашим лучшим вариантом, хотя также необходимо учитывать, кто будет управлять этиминастройки и [эргономика] того, как это будет сделано.
И, наконец, если намерение параметров командной строки было специально и явно для конечного пользователя , чтобы предоставить их, тогда приложение должно быть переписано так, что оно предоставит пользователю веб-страницу, где он может ввести эквивалентные данные.