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

Мне очень тяжело работать с запросами 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?

Ответы [ 3 ]

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

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

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

5 голосов
/ 18 августа 2010

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

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

1 голос
/ 20 июня 2013

когда мы использовали метод post, тогда данные зашифровываются, поэтому мы должны использовать servletfileupload для получения запрошенных данных, а с помощью FileItemIterator мы можем получить все данные формы.

я уже отвечаю по этой ссылке Как обрабатыватьформа отправила Google Web Toolkit в виде сервлета

...