Как я могу получить название текущего веб-приложения в Java EE?

Как я могу получить название текущего веб-приложения в Java EE?

Я довольно доволен автономным Java, но Java EE плохо мне знаком. Я пишу некоторый пользовательский код для включения к стороннему Java пакета создания отчетов EE. У меня есть несколько экземпляров, развернутых на том же сервере Tomcat, таким образом, у меня есть что-то как:

C:\
+-- tomcat6
    +-- webapps
        +-- app1
        +-- app2

Таким образом, когда пользователь переходит в, скажем, http://example.com/app1/viewReport, я хочу смочь получить "app1". (А не путем парсинга URL, предпочтительно.)

Кроме того, если бы был способ получить корень app1 (в этом примере, C:\tomcat6\webapps\app1), который был бы большим также.

7
задан Arjan Tijms 22 September 2012 в 15:16
поделиться

2 ответа

1. Получение «имя»

это называется контекстным путем. Если ваш код запущен в контексте запроса веб-запроса веб-запроса, вы можете получить его, позвонив в httpservletRequest # getContextPath () .

2. Доступ к физическому / реальному ресурсу

Если вы пытаетесь получить доступ к содержимому файл / ресурс в своем WebApp, вы лучше всего используете один из:

Также возможно получить физическую путь на диске файла / ресурса, учитывая путь относительно веб-приложения, используя ServletContext # GetrealPath (String) , но это не надежно (Не всегда работает, если вы развернуте вас WebApp в качестве войны, например,).

3. Доступ к ресурсам пути класса

на ваш комментарий, вы пытаетесь получить доступ к ресурсу в каталоге / Web-inf / Classe. Поскольку Web-inf / Classes / * - это то, где указываются на веб-прикладные классы, вы можете просто получить доступ к нему доступ, как если бы вы получили доступ к любому ресурсу ClassPath в приложении Java SE. Опять же, предполагая, что ваш код работает в контексте WebApp, вы можете просто использовать следующее:

В вашем случае вы, вероятно, захотите Чтобы использовать последнюю, а затем загрузить файл свойств через свойства # нагрузка (вход).

что-то вдоль линий:

Properties props = new Properties();
props.load(getClass().getResourceAsStream("/reportCustom.properties"));
11
ответ дан 6 December 2019 в 19:36
поделиться

Что я пытаюсь сделать, это загрузить файл свойств в WebApps / MyApp / Web-inf / Classes / ReportCustom.properties

Так как файл находится в классах Справочник, вы можете загрузить его с помощью классного загрузки (обычный механизм Java для загрузки файлов на классе). Возможно, лучше всего использовать CloseLoader CloseLoader .

2
ответ дан 6 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: