簡體   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