В настоящее время я использую ServletContextListener
для установки путей JSP в веб-приложении. Пути хранятся как параметры контекста в web.xml
и извлекаются слушателем:
@Override
public void contextInitialized(ServletContextEvent sce) {
ServletContext sc = sce.getServletContext();
sc.setAttribute("urlOfThisPage", sc.getInitParameter("urlOfThisPage"));
sc.setAttribute("urlOfThatPage", sc.getInitParameter("urlOfThatPage"));
В сервлетах приложения путь к конкретному JSP можно легко получить из ServletContext
.
Мой вопрос относится к обработке файла свойств таким же образом. Я много читал об этом на других страницах StackOverflow, таких как 2161045.
Правильно ли я предполагаю, что файл свойств должен быть прочитан прослушивателем и сохранен в ServletContext
с использованием объекта Property
? но тогда, если это так, как мне получить конкретное свойство из файла свойств?
На данный момент я использую такой код в своих сервлетах, чтобы получить значение атрибута из ServletContext
.
String url = (String) sc.getAttribute("urlOfThisPage"); // Use ServletContext to get JSP's URL.
Но я не уверен, как расширить это до доступа к файлу свойств.
Я пробовал следующее в ServletContextListener
:
Properties properties = new Properties();
properties.setProperty("name", "Akechi Jinsai");
sc.setAttribute("properties", properties);
И в сервлете, используя код:
ServletContext sc = request.getSession().getServletContext();
Properties properties = (Properties) sc.getAttribute("properties");
System.out.println("Here: " + properties.getProperty("name"));
Отображается «Здесь: Акэти Дзинсай», но есть ли лучший способ получить одно свойство в сервлете, не просматривая вещи таким образом?
getServletContext().getResourceAsStream(...)
(если файл находится в пути к классам), так и использовать абсолютный путь, но я не вижу никакой связи с этим фактом, когда слушатель должен читать файл свойств. Слушатель прослушивает события и запускает обратные вызовы при возникновении этих событий - он не имеет ничего общего с загрузкой файла свойств. - person Nir Alfasi   schedule 31.05.2014