Возможно ли переопределить переменную "directory.path" без перекомпиляции класса. Добавьте файл web.xml
в папку WEB-INF
, которая определяет новый параметр init.
Измените servlet-class
на фактический класс сервлета, который вы используете.
Необходимо перезапустить контейнер, чтобы принять во внимание изменения, но перекомпиляция/перестройка не требуется.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>MyServletLinkName</servlet-name>
<servlet-class>your.path.to.servlet.YourServlet</servlet-class>
<init-param>
<param-name>directory.path</param-name>
<param-value>/new/path</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>MyServletLinkName</servlet-name>
<url-pattern>/GetInfo</url-pattern>
</servlet-mapping>
</web-app>
EDIT:
Если вы хотите использовать динамический параметр, который изменяется в то время как работает приложение, вы можете использовать файл свойств, что он смотрел на волоске и осмотрены в интервале X секунд.
Вы можете использовать параметр контекста, содержащий расположение файла вместе с инициализированным контекстом слушателем. Слушатель создает поток наблюдателя, который обновляет некоторую общедоступную переменную, доступную для всех ваших сервлетов.
Вы хотите, чтобы взглянуть на раздел инициализации-парам вашего веб .xml – YMomb