繁体   English   中英

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

[英]How can I handle multipart/form-data POST requests in my java servlet?

我正在用我的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?

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

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

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

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

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

我已在此链接上回答如何处理在servlet中发送Google Web Toolkit的表单

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM