JavaのPart.getNameメソッドを完全ガイド!初心者でもわかるフォーム項目名の取得方法
生徒
「先生、Javaでアップロードされたファイルが、どのフォームの入力欄から来たかを調べる方法ってありますか?」
先生
「はい、javax.servlet.http.PartインターフェースのgetName()メソッドを使えば、フォームのname属性の値が取得できますよ。」
生徒
「それって、フォームにname="uploadFile"って書いてたら、その"uploadFile"って文字列が取れるってことですか?」
先生
「その通りです!では実際の使い方を見ていきましょう。」
1. getNameメソッドとは
getName()は、HTMLフォームでファイルをアップロードする際に指定されたname属性の値を取得するためのメソッドです。
たとえば、次のようなフォームの場合:
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="uploadFile">
<button type="submit">送信</button>
</form>
アップロードされたファイルをServletで受け取ったときに、getName()を呼び出すと"uploadFile"という文字列が返ってきます。
2. サンプルコード:フォーム項目名の取得
以下は、Servletでアップロードされたファイルのフォーム項目名を取得してログに出力する例です。
@WebServlet("/upload")
@MultipartConfig
public class UploadServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Part filePart = request.getPart("uploadFile");
String partName = filePart.getName();
System.out.println("アップロードされたフォームの項目名: " + partName);
}
}
将来を見据えて、+αのスキルを身につけたい方へ
JavaやLinuxを学んでいても、「このままで市場価値は上がるのか」 「キャリアの選択肢を広げたい」と感じる方は少なくありません。
AIを学ぶならアイデミープレミアム3. getNameで取得できる値の活用例
getName()で取得できるフォーム名を使うことで、複数ファイルや複数フィールドの処理を柔軟に制御することができます。例えば:
- 複数のファイルアップロード欄からそれぞれのファイルを特定
- 同じ
Partから他の属性と組み合わせて分類・処理 - ログ出力やエラーメッセージでユーザーにわかりやすく表示
4. getNameとgetSubmittedFileNameの違い
getName()とgetSubmittedFileName()は混同されやすいですが、それぞれ役割が異なります:
- getName():フォームの
name属性の値(例:"uploadFile") - getSubmittedFileName():ユーザーが選択した実際のファイル名(例:"cat.jpg")
5. ループ処理での利用例
複数のファイルを一括で受け取る際、getParts()メソッドで全てのPartをループ処理し、getName()で種類ごとに分けることができます。
for (Part part : request.getParts()) {
if ("uploadFile".equals(part.getName())) {
System.out.println("ファイルのフォーム名: " + part.getName());
}
}