doPut() Сервлет

У меня есть вопрос относительно метода doPut в реализации WebdavServlet на Java.

Если вы не знакомы с ним, я не думаю, что вам это нужно.

doPut принимает 2 параметра: запрос HttpServletRequest и HttpServletResponse соответственно.

По сути, doPut помещает файл в ваш сервлет.

У меня есть некоторые вопросы о том, как он указывает, КАКОЙ ФАЙЛ помещать и ГДЕ он помещается.

Итак, я думаю, что ГДЕ это помещается, получается из getRelativePath (req).

Но я понятия не имею о файловой части.


person SuperString    schedule 28.06.2010    source источник
comment
Что это за реализация WebdavServlet?   -  person skaffman    schedule 29.06.2010


Ответы (1)


Содержимое файла доступно в теле запроса по адресу HttpServletRequest#getInputStream(). Просто напишите его на любой OutputStream на свой попробуйте обычный способ ввода-вывода Java, например FileOutputStream для записи в локальный файл. .

Однако вам необходимо заранее знать кодировку контента, как декодировать тело запроса. Часто используется кодировка multipart/form-data. Чтобы проанализировать это, Apache Commons FileUpload является стандартом де-факто. Нажмите на ссылку и изучите Руководство пользователя и Часто задаваемые вопросы, чтобы узнать, как им пользоваться.

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

person BalusC    schedule 28.06.2010