как добраться до файла в директории www из сервлета? - PullRequest
0 голосов
/ 21 июня 2011

Используя tomcat 6, я создал шаблон внутри www / templates / templatefile.html

как мне получить к нему доступ из сервлета?я хочу прочитать html-файл и разобрать его.

Я попытался получить реальный путь с помощью request.getRealPath(request.getServletPath()) и оттуда перейти в каталог шаблонов, но по какой-то причине он все еще не может найти файл.

1 Ответ

3 голосов
/ 21 июня 2011

Если предположить, что www - это папка в корне общедоступного веб-контента, то вы можете использовать ServletContext#getRealPath() для преобразования относительного веб-пути в абсолютный путь к файловой системе диска следующим образом:

String relativeWebPath = "/www/templates/templatefile.html";
String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
File file = new File(absoluteDiskPath);
InputStream input = new FileInputStream(file);
// ...

Обратите внимание, что это не будет работать, если WAR не развернут (Tomcat в триммере по умолчанию делает это, но его можно настроить так, чтобы он этого не делал).Если все, что вы хотите получить, это InputStream, то вместо этого вы бы предпочли использовать ServletContext#getResourceAsStream().

String relativeWebPath = "/www/templates/templatefile.html";
InputStream input = getServletContext().getResourceAsStream(relativeWebPath);
// ...
...