我在idea写了jsp和对应的servlet,但运行结果始终只显示nogroups available

jsp<%-- Created by IntelliJ IDEA. User: lenovo Date: 2023/7/8 Time: 9:51 To change this template use File | Settings | File Templates.--%><%@ page import="java.util.List" %><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><% List<List> groups = (List<List>) request.getAttribute("groups");%>

Random Grouping

Random Grouping Result

<% if (groups != null && !groups.isEmpty()) {%> <% for (int i = 0; i < groups.size(); i++) { List group = groups.get(i); %> <% } %>
GroupMembers
Group <%= i + 1 %><% for (String member : group) { %> <%= member %>
<% } %>
<%} else {%><% if (groups != null && !groups.isEmpty()) { out.println("Groups: " + groups); } else { out.println("No groups available."); }%><% }%>
servletimport jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;import java.sql.;import java.util.ArrayList;import java.util.Collections;import java.util.List;@WebServlet(name="RandomGroupServlet" , value = "/RandomGroupServlet")public class RandomGroupServlet extends HttpServlet { private static final long serialVersionUID = 1L; private List elements; @Override public void init() throws ServletException { super.init(); elements = getElementsFromDatabase(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取每组个数 int groupSize = Integer.parseInt(request.getParameter("groupSize")); // 计算分组数和余数 int groupCount = elements.size() / groupSize; int remainCount = elements.size() % groupSize; // 打乱元素顺序 Collections.shuffle(elements); // 分组 List<List> groups = new ArrayList<>(); int startIndex = 0; for (int i = 0; i < groupCount; i++) { List group = elements.subList(startIndex, startIndex + groupSize); groups.add(group); startIndex += groupSize; } if (remainCount > 0) { List group = elements.subList(startIndex, startIndex + remainCount); groups.add(group); } // 将分组结果存储到request对象中,以便在JSP中显示 request.setAttribute("groups", groups); // 转发到JSP页面 request.getRequestDispatcher("randomgroup.jsp").forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); / out.println(request);*/ } private List getElementsFromDatabase() { List elements = new ArrayList<>(); /out.println(elements);/ // 加载JDBC驱动程序 try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } // 连接到数据库 String url = "jdbc:sqlserver://rm-2vc29v604h63b672yeo.mssql.cn-chengdu.rds.aliyuncs.com:3433;databaseName=testdb;useUnicode=true&characterEncoding=UTF-8&trustServerCertificate=true"; String user = "testuser"; String password = "Test_pw123"; try (Connection conn = DriverManager.getConnection(url, user, password)) { // 从数据库中查询姓名列表 String sql = "SELECT student_name FROM Student_table"; // 查询语句 try (PreparedStatement stmt = conn.prepareStatement(sql)) { try (ResultSet rs = stmt.executeQuery()) { while (rs.next()) { String name = rs.getString("student_name"); elements.add(name); } } } } catch (SQLException e) { e.printStackTrace(); } return elements; }}
非常感谢您的帮助,我希望达到的效果是连接数据库中的表格,然后对其中的学生进行随机分组,并在前端由用户自己定义每组人数,显示分组结果,但显然这些代码无法达到我的要求,一直无法分组完成

根据您提供的代码,这是一个使用 JSP 和 Servlet 实现的随机分组功能。下面是代码的简要说明:

1、JSP 文件(randomgroup.jsp):

使用 Java 代码片段获取名为 "groups" 的属性值,该属性值是在 Servlet 中设置的。
如果 "groups" 不为空,将遍历每个组并显示组号和成员。
如果 "groups" 为空,则输出相应的提示信息。
2、Servlet 文件(RandomGroupServlet.java):

初始化 elements 列表,该列表是从数据库中获取的元素。
在 doGet 方法中,获取每组的人数(groupSize),计算分组数和余数。
对 elements 列表进行打乱顺序操作。
创建一个列表 groups,将元素分成若干组,并将每个组添加到 groups 中。
如果还有余数,创建一个额外的组并添加到 groups 中。
将 groups 存储到 request 对象中,并转发到 randomgroup.jsp 进行显示。
doPost 方法与 doGet 方法相同,都会调用 doGet 方法。
此代码的主要逻辑是从数据库中获取一组元素,并按照给定的组大小进行随机分组。然后,将分组结果存储在 request 对象中,并通过转发到 JSP 页面来显示分组信息。

请注意,代码中可能还存在其他相关的类和配置文件,但您提供的代码片段并不完整。如果您有特定的问题或需要更详细的帮助,请提供完整的代码和相关要求。