6

Java アプリケーション サーバーで multipart/form-data リクエストを処理するのに非常に苦労しています。私が見つけたところによると、サーブレット 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;

アプリケーション サーバーの切り替えは、このプロジェクトでは現実的な選択肢ではありません。Java サーブレット内で multipart/form-data を処理するために利用できるサードパーティ ライブラリはありますか?

4

3 に答える 3

10

Apache Commons Fileuploadを確認してください。マルチパートリクエストを解析し、その一部を個別に反復処理するためのプログラム API を提供します。

私は過去に単純なマルチパート処理に使用しましたが、過度に複雑になることなくうまく機能します。

于 2010-08-18T09:49:41.917 に答える
5

Tomcat 6は、サーブレット仕様3.0をサポートしていません。Tomcat 7でこれを試してみる必要がありますが、この機能が現在利用可能なベータリリースに存在するかどうかはよくわかりません。ただし、この機能は製品リリースに含まれていると予想されます。

他の回答に投稿されているように、Apache Commons FileUploadを引き続き使用することも、Glassfishを使用することもできます(プロジェクトの現在のフェーズとタイプによって異なります)。

于 2010-08-18T10:02:02.207 に答える
1

データが暗号化されるよりも post メソッドを使用した場合、要求されたデータを取得するために servletfileupload を使用する必要があり、FileItemIterator を使用してすべてのフォーム データを取得できます。

私はすでにこのリンクで回答しています サーブレットで送信されたフォームを処理する方法 Google Web Toolkit

于 2013-06-20T07:57:38.267 に答える