В сервлете (веб-приложение), как я знаю относительный путь? [дубликат]

8
задан BalusC 16 March 2010 в 15:08
поделиться

1 ответ

Относительный путь к веб-приложению: /STUFF/read.txt .

Вы можете использовать ServletContext # getRealPath () для преобразования относительного веб-пути в абсолютный путь файловой системы на локальном диске. Таким образом, вы можете использовать его в дальнейшем в обычном java.io материале, который на самом деле ничего не знает о веб-контексте, в котором он работает. Например,

String relativeWebPath = "/STUFF/read.txt";
String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
File file = new File(absoluteDiskPath);
// Do your thing with File.

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

String relativeWebPath = "/STUFF/read.txt";
InputStream input = getServletContext().getResourceAsStream(relativeWebPath);
// Do your thing with InputStream.
24
ответ дан 5 December 2019 в 06:37
поделиться
Другие вопросы по тегам:

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