JakartaEE JSPでフォーム入力を受け取る基本処理を完全解説!初心者向け入門ガイド
生徒
「先生、JakartaEEのJSPでフォーム入力を受け取る方法を知りたいんですけど、どうすればいいんですか?」
先生
「フォーム入力を受け取るには、まずHTMLでフォームを作成して、それをサーブレットやJSPで処理する流れを覚えるといいよ。リクエストから値を取り出すのが基本だね。」
生徒
「なるほど、でもJSPだけでも入力を受け取れるんですか?」
先生
「うん、JSPでもリクエストオブジェクトを使って受け取れるよ。ただ実際の開発ではサーブレットで処理することが多いけど、まずは基本をJSPで体験してみよう。」
1. JSPでフォーム入力を扱う基本の流れ
JakartaEEのJSPでフォーム入力を扱う基本の流れはとてもシンプルです。まずHTMLのフォームを用意し、method="post"やmethod="get"を指定してサーバーにデータを送信します。次にJSP側でrequest.getParameter()メソッドを使って値を取り出します。
<form action="result.jsp" method="post">
<label>名前: <input type="text" name="username"></label>
<button type="submit">送信</button>
</form>
このフォームではユーザーが入力した名前がサーバーに送信され、result.jspで処理されます。
2. JSPでフォーム入力を受け取る方法
フォームから送信された値はrequest.getParameter("name属性の値")を使って受け取ります。例えば上記のフォームで送信されたusernameを取り出す場合は次のように書きます。
String name = request.getParameter("username");
out.println("入力された名前: " + name);
こうすることでユーザーが入力した値を取得して画面に表示できます。初心者が最初に学ぶべきリクエスト処理の基本です。
3. GETメソッドとPOSTメソッドの違い
フォームにはmethod="get"とmethod="post"があります。GETメソッドはURLにパラメータが表示されるので検索フォームなどに向いています。POSTメソッドはデータをリクエストボディに含めるので、ログインフォームやユーザー登録フォームのようなパスワードや個人情報を扱う場面で使います。
<form action="search.jsp" method="get">
<input type="text" name="keyword">
<button type="submit">検索</button>
</form>
GETとPOSTを正しく使い分けることはWeb開発でとても大切な基本知識です。
4. 複数のフォーム入力を受け取る
フォームに複数の入力欄を用意すると、それぞれの値をrequest.getParameter()で取り出せます。例えば名前とメールアドレスを入力するフォームの場合です。
<form action="register.jsp" method="post">
<label>名前: <input type="text" name="username"></label>
<label>メール: <input type="email" name="email"></label>
<button type="submit">登録</button>
</form>
String username = request.getParameter("username");
String email = request.getParameter("email");
このように入力欄のname属性と同じ文字列を指定すれば簡単に受け取れます。
5. チェックボックスやラジオボタンの入力を受け取る
フォーム入力にはテキストだけでなくチェックボックスやラジオボタンもあります。これらは複数の値を持つことがあるため、request.getParameterValues()を使う場合があります。
<form action="hobby.jsp" method="post">
<label><input type="checkbox" name="hobby" value="読書"> 読書</label>
<label><input type="checkbox" name="hobby" value="音楽"> 音楽</label>
<label><input type="checkbox" name="hobby" value="運動"> 運動</label>
<button type="submit">送信</button>
</form>
String[] hobbies = request.getParameterValues("hobby");
for(String h : hobbies){
out.println("趣味: " + h + "<br>");
}
チェックボックスやラジオボタンを正しく処理できると、アンケートフォームや会員登録フォームを作る幅が広がります。
6. JSPで受け取った入力を表示する例
最後に、フォーム入力を受け取って画面に表示するシンプルなJSPの例を示します。
String username = request.getParameter("username");
String email = request.getParameter("email");
out.println("あなたの名前は " + username + " です。<br>");
out.println("メールアドレスは " + email + " です。<br>");
このようにJSPのrequestオブジェクトを使えば、初心者でも簡単にフォームの入力データを処理できます。
7. JSPフォーム処理の注意点
JSPでフォーム入力を扱うときは、文字化けに注意する必要があります。特に日本語を扱う場合はリクエストの文字コードをUTF-8に設定しましょう。サーブレットであれば次のように書きます。
request.setCharacterEncoding("UTF-8");
JSPだけで処理する場合でも設定ファイルやフィルタを使って文字コードを統一すると安心です。初心者のうちは文字化けでつまずくことが多いので、早めに対策を覚えておきましょう。