Java 如何在另一个jsp页面上获取所选单选按钮的值?

Java 如何在另一个jsp页面上获取所选单选按钮的值?,java,jsp,Java,Jsp,我用Java编写了一个JSP程序,用于在线测验。管理员可以提出问题,并将其存储在数据库中。学生可以查看数据库中的所有问题。 现在的问题是—— 每个问题有4个选项,我无法从下一个JSP程序的单选按钮中读取值。这是密码 quick.jsp con = DriverManager.getConnection("jdbc:ucanaccess://C:/Users/LUV'S/Documents/NetBeansProjects/quiz/question. s = con.create

我用Java编写了一个JSP程序,用于在线测验。管理员可以提出问题,并将其存储在数据库中。学生可以查看数据库中的所有问题。
现在的问题是—— 每个问题有4个选项,我无法从下一个JSP程序的单选按钮中读取值。这是密码

quick.jsp

con = DriverManager.getConnection("jdbc:ucanaccess://C:/Users/LUV'S/Documents/NetBeansProjects/quiz/question.
        s = con.createStatement();
        int i=1;
        ResultSet rs= s.executeQuery("select id,question,option1,option2,option3,option4 from question where category=2");
        while(rs.next()){
        String id = rs.getString("id");
        String question = rs.getString("question");
        String option1 = rs.getString("option1");
        String option2 = rs.getString("option2");
        String option3 = rs.getString("option3");
        String option4 = rs.getString("option4");
        out.println("<div class='container'>");
        out.println("<table class='table table-bordered'>");
        out.println("<thead>");
        out.println("<tr class='danger'>");
              out.println("<th>"+i+") "+question+"</th>");
        out.println("</tr>");
        out.println("</thead>");
        out.println("<tbody>");
        out.println("<tr class='info'>");
                 out.println("<th><input type='radio' value='1' name="+id+"> "+option1+"</th>");
        out.println("</tr>");
        out.println("<tr class='info'>");
                 out.println("<th><input type='radio' value='2' name="+id+"> "+option2+"</th>");
        out.println("</tr>");
        out.println("<tr class='info'>");
                 out.println("<th><input type='radio' value='3' name="+id+"> "+option3+"</th>");
        out.println("</tr>");
        out.println("<tr class='info'>");
                   out.println("<th><input type='radio' value='4' name="+id+"> "+option4+"</th>");
        out.println("</tr>");
        out.println("</tbody>");
        out.println("</table>");
        out.println("</div>");
        i++;
       }

现在在我的DB中,我有两个问题在第2类。当我点击Submit时,它移动到examser,在屏幕上打印“null null”。这意味着不读取单选按钮的值。您能告诉我哪里出错了吗?

在quick.jsp中,您将单选按钮的名称设置为从SQL查询中检索到的id。所以我猜这个ID不是“ID”。但在examser.java中,您要查找名为“id”的参数。名称不匹配。在这种情况下,出于调试目的打印所有请求参数总是很有帮助的。正如@vanje所说,您应该执行类似于
request.getParameter(“7”)
或从数据库中检索到的任何可能的ID值,尽管我建议使用包含ID的名称格式,因为可能会发生som重复,并将整个过程搞得一团糟,例如
name=rad\u opt\uuu“+ID+”
为了获得名称匹配,我应该做什么@Vanje问题是,为什么您首先希望单选按钮的名称是动态的?如果每页只显示一个问题,那么静态名称就足够了。无论哪种方式,您都必须确保知道servlet中的正确名称。
con1 = DriverManager.getConnection("jdbc:ucanaccess://C:/Users/LUV'S/Documents/NetBeansProjects/quiz/question.accdb", "", "");
    Statement s5 = con1.createStatement();
    ResultSet rs1 = s5.executeQuery("select id,answer from question where category=2");
    while (rs1.next()) {
        String answer = rs1.getString("answer");
        String id = request.getParameter("id");
        out.println(id);
    }