6

我很难用我的 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?

4

3 回答 3

10

查看Apache Commons Fileupload。它为您提供了一个编程 API 来解析多部分请求,并单独迭代它的各个部分。

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

于 2010-08-18T09:49:41.917 回答
5

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

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

于 2010-08-18T10:02:02.207 回答
1

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

我已经在这个链接上回答了How to process a form sent Google Web Toolkit in a servlet

于 2013-06-20T07:57:38.267 回答