如何在java servlet中处理multipart / form-data POST请求?

时间:2010-08-18 09:46:02

标签: java servlets multipartform-data

我很难用我的java应用服务器处理multipart / form-data请求。根据我的发现,servlet 3.0规范提供了诸如HttpServletRequest.getParts()之类的方法,这对于处理上传到我的servlet的表单数据是理想的。

但是,此方法是3.0 servlet规范的一部分,我的应用程序服务器(Tomcat 6)尚不支持此方法。即使使用有效的3.0 web.xml文件和java EE 6库,我在尝试调用getParts()时也会遇到以下异常:

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

切换应用程序服务器对于这个项目来说并不是一个可行的选择。是否有任何第三方库可用于处理java servlet中的multipart / form-data?

3 个答案:

答案 0 :(得分:10)

结帐Apache Commons Fileupload。它为您提供了一个编程API来解析多部分请求,并逐个遍历它的各个部分。

我过去曾经使用它来进行简单的多部分处理,它可以很好地完成工作而不会过于复杂。

答案 1 :(得分:5)

Tomcat 6 does not and will not support Servlet Specification 3.0。您应该尝试在Tomcat 7上执行此操作,但我不确定此功能是否存在于当前可用的测试版中。预计该功能将出现在生产版本中。

您可以继续使用Apache Commons FileUpload,如在其他答案中发布的那样,或者您可以使用Glassfish(取决于您项目的当前阶段和类型)。

答案 2 :(得分:1)

当我们使用post方法而不是数据加密时,我们必须使用servletfileupload来获取请求的数据,并使用FileItemIterator我们可以获取所有表单数据。

我已在此链接How to process a form sent Google Web Toolkit in a servlet

上回答
相关问题