JSP работает в контейнере сервлета, поэтому его текущий рабочий каталог определяется контейнером. Обычно это каталог, в котором установлен контейнер, или каталог bin. В любом случае, это не то место, где вы хотите сохранить файл пользовательских свойств.
Есть 2 типичных подхода к тому, что вам нужно.
Первый подход хорош, если ваш файл является частью вашего приложения, и вы никогда не меняете его при развертывании. В этом случае прочитайте его из ресурсов:
props.load (GetClass (). GetResourceAsStream ())
или даже лучше
props.load (Thread.currentThread (). GetContextClassLoader (). GetResourceAsStream ())
*
Второй подход хорош, если вы хотите изменить свой файл свойств
в среде развертывания
*. В этом случае поместите его где-нибудь в файловой системе вне вашего контейнера. Например, /opt/mycompany/conf/myproperties.properties в Linux или в любом другом месте, которое вам нравится. Теперь вы должны использовать абсолютный путь при создании FileInputStream.
Чтобы сделать систему лучше настраиваемой, вам не следует указывать путь к файлу конфигурации внутри кода. Лучше всего передать его приложению, используя системные свойства, например, добавить параметр, например -Dmycompany.conf = / opt / mycompany / myprops.properties, когда вы запускаете сервер приложений. Если вы хотите прочитать файл, сделайте следующее:
новый FileInputStream (System.getProperties ("mycompany.conf"))
Теперь конфигурацией вашей системы можно управлять независимо от развертывателя.