Как я могу обрабатывать POST-запросы multipart / form-data в моем java-сервлете ?

Мне очень тяжело работать с запросами multipart / form-data на моем сервере приложений Java. Из того, что я обнаружил, спецификация сервлета 3.0 предоставляет такие методы, как HttpServletRequest.getParts (), что было бы идеально для обработки данных формы, загруженных в мой сервлет.

Однако этот метод является частью спецификации сервлета 3.0, и мой сервер приложений (Tomcat 6) пока не поддерживает это. Даже при наличии допустимого файла 3.0 web.xml и библиотек java EE 6 при попытке вызвать getParts () я получаю следующее исключение:

java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getParts()Ljava/util/Collection;

Переключение серверов приложений на самом деле не является возможным вариантом для этого проекта. Существуют ли сторонние библиотеки для обработки multipart / form-data в сервлетах Java?

6
задан Nik Reiman 18 August 2010 в 09:46
поделиться

2 ответа

Посмотрите на Apache Commons Fileupload. Он предоставляет вам программный API для разбора многокомпонентного запроса и перебора отдельных его частей.

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

10
ответ дан 8 December 2019 в 14:38
поделиться

Tomcat 6 не поддерживает и не будет поддерживать спецификацию сервлетов 3.0 . Вы должны попытаться сделать это на Tomcat 7, но я не совсем уверен, присутствует ли эта функция в доступной в настоящее время бета-версии. Однако ожидается, что эта функциональность будет присутствовать в производственной версии.

Вы можете продолжать использовать Apache Commons FileUpload, как указано в другом ответе, или вы можете использовать Glassfish (в зависимости от текущей фазы и типа вашего проекта).

5
ответ дан 8 December 2019 в 14:38
поделиться
Другие вопросы по тегам:

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