数あるフォーム部品の中でもチェックボックスは複数選択が可能なためサーブレットでの扱いが独特です。
つまり、request.getParameterValues()メソッド を使用して、チェックボックスで選択された値をString型の配列として取得する必要があるのです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Checkbox Form</title>
</head>
<body>
<h1>選択肢を選んでください</h1>
<form action="Checkbox" method="post">
<label>
<input type="checkbox" name="option" value="Option1">
Option 1
</label><br>
<label>
<input type="checkbox" name="option" value="Option2">
Option 2
</label><br>
<label>
<input type="checkbox" name="option" value="Option3">
Option 3
</label><br>
<label>
<input type="checkbox" name="option" value="Option4">
Option 4
</label><br>
<label>
<input type="checkbox" name="option" value="Option5">
Option 5
</label><br>
<button type="submit">送信</button>
</form>
</body>
</html>
package controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/Checkbox")
public class CheckboxServlet extends HttpServlet {
// POSTリクエストを処理するメソッド
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// チェックボックスの選択された値を取得
String[] options = request.getParameterValues("option");
// 取得した値をリクエスト属性として設定
request.setAttribute("selectedOptions", options);
// リクエストをresult.jspにフォワード
request.getRequestDispatcher("view/result.jsp").forward(request, response);
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>選択されたオプション</title>
</head>
<body>
<h2>選択されたオプション:</h2>
<ul>
<!-- selectedOptionsの各要素をリスト項目として表示 -->
<c:forEach var="option" items="${selectedOptions}">
<li>${option}</li>
</c:forEach>
</ul>
</body>
</html>
以上。