multipart/form-data
HTML フォームを使用して送信されたリクエストが enctypeか defaultかをサーブレットで認識するにはどうすればよいですapplication/x-www-form-urlencoded
か?
または、どのフォームが使用されたかを認識する他の方法はありますか? request.getParameter("some_param")
デフォルトのエンコーディングでのみ機能します。
multipart/form-data
HTML フォームを使用して送信されたリクエストが enctypeか defaultかをサーブレットで認識するにはどうすればよいですapplication/x-www-form-urlencoded
か?
または、どのフォームが使用されたかを認識する他の方法はありますか? request.getParameter("some_param")
デフォルトのエンコーディングでのみ機能します。
Content-Type:
ヘッダーを使用して識別できます
if(HttpServletRequest.getContentType().contains("form-data")){
//handle multipart data
....
} else if(HttpServletRequest.getContentType().contains("x-www-form-urlencoded")){
//handle from data
....
}
Web コンテナがServlet 3.0 をサポートしている場合は、HttpServletRequest.getParts() API を使用します。
if(request.getParts() !=null){
//handle multipart
} else {
//handle form data
}
マルチパートに Apache Commons FileUpload を使用していますが、マルチパート フォームとデフォルト フォームの処理を切り替える方法がわかりませんでした。
Apache Commons FileUpload 独自のものServletFileUpload#isMultipartContent()
を使用して確認します。
if (ServletFileUpload.isMultipartContent(request)) {
// Parse with FileUpload.
}
else {
// Use normal getParameter().
}