«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как получить доступ к ресурсам в каталоге WAR/WEB-INF с помощью ServletContext?

Как получить доступ к ресурсам в каталоге WAR/WEB-INF с помощью ServletContext?

Опубликовано 21 декабря 2024 г.
Просматривать:819

How to Access Resources in the WAR/WEB-INF Directory with ServletContext?

Доступ к ресурсам в каталоге WAR/WEB-INF с помощью ServletContext

Введение:

Веб-приложения Java часто хранят важные ресурсы в каталоге WAR/WEB-INF. Чтобы получить доступ к этим ресурсам, разработчики могут использовать API ServletContext.

Вопрос:

Как создать правильный путь к ресурсу, расположенному в WAR/WEB-INF папка, например "/war/WEB-INF/test/foo.txt"?

Ответ:

Существует два основных метода построения пути к ресурсам в WAR/ Каталог WEB-INF с использованием ServletContext:

1. Метод getRealPath():

Если файл WAR был расширен до набора файлов, вы можете использовать метод getRealPath():

ServletContext context = getContext();
String fullPath = context.getRealPath("/WEB-INF/test/foo.txt");

Это вернет полный системный путь к ресурсу.

2. Методы getResource() или getResourceAsStream():

Эти методы можно использовать независимо от того, расширен ли WAR-файл или нет:

ServletContext context = getContext();
URL resourceUrl = context.getResource("/WEB-INF/test/foo.txt"); // for URL
InputStream resourceContent = context.getResourceAsStream("/WEB-INF/test/foo.txt"); // for input stream

Дополнительные примечания:

  • Метод getContext(), упомянутый в примере кода, зависит от приложения. На страницах JSP он доступен как «контекст», а в сервлетах он получается из ServletConfig во время инициализации.
  • Метод getRealPath() может не работать, если контейнер сервлетов не извлекает файл WAR.
  • Методы getResource() и getResourceAsStream() надежны и работают во всех сценариях развертывания.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3