はじめに:Javaでフォーム入力を作ってみよう!
「Webアプリを作りたいけど、まず何から始めたらいいの?」
そんな人におすすめなのが、フォーム入力機能の実装です。
ユーザーの名前・性別・希望などを受け取って、表示・保存・加工するのがフォーム入力の基本です。
この記事では、Javaを使ってHTMLの入力フォームを作り、Servlet・JSP・Springで値を受け取る方法をやさしく解説します!
1. HTMLフォームの基本構造
HTMLでは、以下のようにフォームを作ります:
1 |
<form action="form" method="post"><br> 名前:<input type="text" name="username"><br><br> 性別:<br> <input type="radio" name="gender" value="男">男<br> <input type="radio" name="gender" value="女">女<br><br> <input type="submit" value="送信"><br></form><br> |
💡ポイント:
action="form"
:送信先のURLmethod="post"
:POSTでデータ送信name="..."
:Java側で使うキー
2. Servletでフォームの値を受け取る方法
JavaのServletでフォームの値を受け取るには、request.getParameter()
を使います。
1 |
@WebServlet("/form")<br>public class FormServlet extends HttpServlet {<br> protected void doPost(HttpServletRequest req, HttpServletResponse res)<br> throws ServletException, IOException {<br> String name = req.getParameter("username");<br> String gender = req.getParameter("gender");<br><br> res.setContentType("text/html;charset=UTF-8");<br> PrintWriter out = res.getWriter();<br> out.println("<h1>ようこそ、" + name + "さん(" + gender + ")</h1>");<br> }<br>}<br> |
3. JSPでフォーム入力値を表示する
ServletとJSPを組み合わせることで、画面側をすっきりできます。
🔸 HTMLフォーム(form.jsp)
1 |
<form action="check.jsp" method="post"><br> 名前:<input type="text" name="username"><br><br> 好きな色:<br> <select name="color"><br> <option value="赤">赤</option><br> <option value="青">青</option><br> </select><br><br> <input type="submit" value="送信"><br></form><br> |
🔹 JSPで表示(check.jsp)
1 |
<%@ page contentType="text/html; charset=UTF-8" %><br><%<br> String name = request.getParameter("username");<br> String color = request.getParameter("color");<br>%><br><p><%= name %> さんの好きな色は <%= color %> です。</p><br> |
4. 複数選択やチェックボックスの扱い方
チェックボックスや複数選択のフォームでは、getParameterValues()
を使います。
✅ 複数チェックボックスのHTML
1 |
<h3>興味のある分野:</h3><br><input type="checkbox" name="topics" value="Java">Java<br><input type="checkbox" name="topics" value="Python">Python<br><input type="checkbox" name="topics" value="Web">Web<br> |
✅ Servletでの取得
1 |
String[] topics = request.getParameterValues("topics");<br>for (String topic : topics) {<br> out.println(topic + "<br>");<br>}<br> |
5. Spring MVCでフォーム処理(上級者向け)
Spring Bootでフォームを扱うには、@Controller
を使います。
🔸 HTMLテンプレート(Thymeleaf)
1 |
<form th:action="@{/submit}" method="post"><br> <input type="text" th:field="*{name}" placeholder="名前"/><br> <button type="submit">送信</button><br></form><br> |
🔹 コントローラー側
1 |
@Controller<br>public class FormController {<br><br> @GetMapping("/")<br> public String formPage(Model model) {<br> model.addAttribute("user", new User());<br> return "form";<br> }<br><br> @PostMapping("/submit")<br> public String submit(@ModelAttribute User user, Model model) {<br> model.addAttribute("name", user.getName());<br> return "result";<br> }<br>}<br> |
6. 入力チェックとバリデーションの実装
HTML側(簡易)
1 |
<input type="text" name="username" required><br> |
Servlet側(Java)
1 |
String name = request.getParameter("username");<br>if (name == null || name.isEmpty()) {<br> out.println("名前を入力してください!");<br>}<br> |
Spring Boot(本格バリデーション)
1 |
@NotBlank<br>private String name;<br> |
7. 入力フォームの改善ポイント
工夫 | 内容 |
---|---|
Bootstrap導入 | レスポンシブで見やすいフォームに |
JavaScript | 入力チェックを即時に反映 |
placeholder | 入力例を表示して親切に |
autocomplete | 入力の省力化 |
8. 練習用フォームアプリのアイデア
- ユーザー登録画面(名前、メール、性別、年齢)
- 問い合わせフォーム(メッセージ+カテゴリ)
- アンケートアプリ(複数回答+確認画面)
9. 学習の続きはこちら!
📗 独学派のあなたに:
→ 絶対にJavaプログラマーになりたい人へ。
フォーム入力・Webアプリ基礎がまるっと学べます。
🧑💻 手厚いサポートを受けたい方:
- フォーム入力アプリの実装レビュー
- プログラミング転職支援もあり!
✨まとめ
フォーム入力はJava Webアプリの「入口」です。
この仕組みが理解できれば、アンケート・ログイン・問い合わせなど、実用的なアプリを自分で作れるようになります!
コメント