Как читать web.xml из WebApp - PullRequest
       33

Как читать web.xml из WebApp

3 голосов
/ 06 февраля 2009

Для WebApps web.xml может использоваться для хранения настроек приложения. Как я могу прочитать этот файл. Мои сервлеты работают на сервере GlassFish v2.

Ответы [ 4 ]

9 голосов
/ 06 февраля 2009

Не уверен, что полностью понимаю этот вопрос ...

Предполагается, что ваш сервлет расширяется HttpServlet?

HttpServlet реализует ServletConfig, поэтому вы можете узнать конкретные параметры сервлета, используя:

В web.xml

<servlet>
    <servlet-class>com.acme.Foo</servlet-class>
    <init-param>
        <param-name>my.init.param</param-name>
        <param-value>10</param-value>
    </init-param>
</servlet>

В сервлете:

int x = Integer.parseInt(getInitParameter("my.init.param"));

Аналогично, вы можете получить глобальные (контекстные) настройки, используя:

<context-param>
    <param-name>my.context.param</param-name>
    <param-value>Hello World</param-value>
</context-param>

В сервлете:

String s = getServletContext.getInitParameter("my.context.param");

Конечно, если вы используете вместе со своими сервлетами фреймворк, такой как Spring, вы можете вместо этого использовать файлы конфигурации Spring для внедрения настроек в классы веб-приложений.

2 голосов
/ 06 февраля 2009

Добавить init-param:

<init-param> 
    <param-name>InitParam</param-name> 
    <param-value>init param value</param-value> 
</init-param> 

Затем прочитайте его из кода Java (внутри сервлета):

String initParam = getServletConfig().getInitParameter("InitParam");
0 голосов
/ 06 февраля 2009

Выбор контейнера не должен относиться к этому вопросу, поскольку каждый контейнер должен реализовывать спецификацию контейнера сервлета , будь то Tomcat, Glassfish или один из многих других .

0 голосов
/ 06 февраля 2009

Doekman, можно ли объяснить, почему вы хотите прочитать файл web.xml? Настройки в этом файле нацелены на WebContainer. Если вы хотите передать параметры конфигурации, которые будут загружены вашим приложением, просто используйте Параметры контекста:

Необязательный элемент context-param объявляет параметры инициализации контекста сервлета веб-приложения. Вы устанавливаете каждый context-param в пределах одного элемента context-param, используя элементы и. Вы можете получить доступ к этим параметрам в своем коде, используя методы javax.servlet.ServletContext.getInitParameter () и javax.servlet.ServletContext.getInitParameterNames ().

Если вам действительно нужно прочитать файл, то я уверен, что вы можете попытаться загрузить файл с помощью Java IO. Единственное, что вам нужно знать, это рабочий путь, используемый Glassfish при запуске вашего приложения. Вы можете попробовать что-то вроде этого System.getProperty ("user.dir");

Оттуда вы можете загрузить файл, используя относительный путь. Примеры на www.exampledepot.com .

...