Как сделать файловый ввод / вывод с помощью сервлета, работающего на Tomcat - PullRequest
5 голосов
/ 10 августа 2010

Я пишу сервлет Java, используя Tomcat в качестве контейнера, который создает и обслуживает файлы PDF для конечного пользователя. В настоящее время файлы PDF создаются в памяти и записываются в ответ на POST.

Я бы хотел немного изменить это, чтобы PDF-файлы записывались на диск (чтобы их можно было снова просмотреть позже). У меня возникли проблемы с поиском подходящих практических рекомендаций для этого.

Как я могу настроить свой сервлет для записи и чтения файлов из каталога на стороне сервера? Из того, что я прочитал, я думаю, что мне нужно найти этот каталог где-то за пределами, где мое "взорванное веб-приложение "живет в $CATALINA_BASE по соображениям безопасности, и мне нужно использовать Context или что-то подобное.

1 Ответ

8 голосов
/ 10 августа 2010

Вы можете просто использовать обычные FileOutputStream и FileInputStream классы для соответствующей записи и чтения с диска.Измените ваш генератор PDF на запись на FileOutputStream и измените файл-сервлет на чтение с FileInputStream.

И, действительно, вы хотите хранить эти файлы вне веб-приложения, иначе все они будут потерянывсякий раз, когда вы повторно развертываете веб-приложение.Вам не нужен ServletContext, он полезен только для преобразования относительного веб-пути в абсолютный путь к файловой системе диска.Он вам не нужен, когда вы храните его вне веб-приложения, а именно вы уже знаете абсолютный путь к файловой системе диска.

См. Также

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...