首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JSP + Servlet 資料庫查詢結果傳遞至前端顯示

     編輯:程式設計綜合問答

架構流程

  1. Servlet 處理請求,建立資料庫連線執行查詢。
  2. 將 ResultSet 轉為 List<Map<String, Object>> 或實體類別 List<User>。
  3. 放入 request.setAttribute("list", list)。
  4. request.getRequestDispatcher("/list.jsp").forward(request, response) 轉發至 JSP。
  5. JSP 使用 JSTL <c:forEach> 迭代顯示。

Servlet 核心程式碼

@WebServlet("/userList")
public class UserListServlet extends HttpServlet {
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        List<User> users = new ArrayList<>();
        String sql = "SELECT id, name, email FROM users";
        try (Connection conn = DriverManager.getConnection(URL, USER, PASS);
             PreparedStatement ps = conn.prepareStatement(sql);
             ResultSet rs = ps.executeQuery()) {
            while (rs.next()) {
                users.add(new User(rs.getInt("id"), rs.getString("name"), rs.getString("email")));
            }
        } catch (SQLException e) {
            throw new ServletException(e);
        }
        req.setAttribute("users", users);
        req.getRequestDispatcher("/WEB-INF/views/userList.jsp").forward(req, resp);
    }
}

JSP 顯示範例

<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
<table>
  <tr><th>ID</th><th>Name</th><th>Email</th></tr>
  <c:forEach items="${users}" var="u">
    <tr>
      <td>${u.id}</td>
      <td>${u.name}</td>
      <td>${u.email}</td>
    </tr>
  </c:forEach>
</table>

關鍵優勢

  • 職責分離:Servlet 處理邏輯,JSP 專注呈現。
  • 避免在 JSP 寫 JDBC 程式碼,提升可維護性與安全性。
  • 使用 try-with-resources 自動關閉資源,防止洩漏。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved