2016-10-07 6 views
-1

Я строю сервлет, который использует RequestDispatcher для загрузки HTML страницы для входа в систему.Java EE чтения ресурсов из посланной HTML

HTML, в /WEB-INF/templates/main.html

Я пытаюсь загрузить изображение для этого HTML-файл, который находится на /WEB-INF/resources/image.jpg

Я попытался с <img src="/WEB-INF/resources/image.jpg, а также без косой черты перед WEB-INF.

Я пробовал с <img src="../resources/image.jpg.

Нет, похоже, работает, как я могу это сделать?

+0

Используйте загрузчик классов, потому что код, который вы использовали, не работает, и вы ничего не можете с ним поделать. –

+0

Можете ли вы привести мне пример того, что вы имеете в виду? –

+0

Google для примера, я не приведу вам никакого примера. Просьба уточнить вашу конкретную проблему или добавить дополнительные сведения, чтобы точно указать, что вам нужно. Как это написано в настоящее время, трудно точно сказать, что вы просите. См. Страницу «Как спросить», чтобы помочь прояснить этот вопрос. –

ответ

2

Вы не можете этого сделать.

Проблема заключается в том, что изображение загружается браузером, а не приложением. И ничто вне внутренней части приложения не может получить доступ к чему-либо в каталоге WEB-INF.

Итак, вам просто нужно переместить изображение где-то еще.

+0

Точно 'WEB-INF' не доступен снаружи. –

1

Не размещайте ресурсы, открытые для внешнего мира (вне вашего сервера) в папке WEB-INF. Для статических ресурсов, таких как изображения, файлы Javascript и т. Д. ... используйте каталог вне WEB-INF.

1

WEB_INF не является общедоступным веб-пространством, поэтому файлы ant под WEB_INF не могут быть доступны сторонними веб-приложениями, как любой браузер или любое другое приложение, которое вызывает этот URL-адрес. Однако его можно прочитать из файлов на вашем сервере приложений (внутренние файлы).

Изображения в теге <img src=""> загружаются браузером не вашим приложением, поэтому у вас нет другого выбора, кроме как перемещать все ваши изображения, css и js файлы за пределами WEB-INF.