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

Java JSP 入門:JSTL 資料庫操作實作範例

     編輯:Java 綜合教學

Java JSP 入門:JSTL 資料庫操作實作範例

本文針對初學者介紹 JSP 搭配 JSTL 標籤庫進行資料庫查詢與資料呈現的完整流程,並對比 ASP.NET 模式說明差異。

1. JSP 與 ASP.NET 資料綁定差異

  • ASP.NET:資料存取邏輯通常寫在 Code-behind (.cs),前端透過控制項綁定後端回傳的資料集合。
  • JSP + JSTL:資料存取與呈現邏輯可直接寫在同一個 JSP 頁面,使用 <sql:query> 查詢、<c:forEach> 迴圈輸出,開發速度較快,適合中小型專案或原型開發。

2. 環境準備

  1. 下載 jstl.jar 與 standard.jar(或 javax.servlet.jsp.jstl-api + jstl-impl)
  2. 將 JAR 放入 Tomcat lib 目錄或專案 WEB-INF/lib
  3. 注意:Mac OS 環境下建議分別下載兩個 JAR,避免官方合併包找不到類別

3. 完整 JSP 範例程式碼

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="https://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="https://java.sun.com/jsp/jstl/sql" prefix="sql"%>

<!DOCTYPE html>
<html>
<head><title>JSP Load Demo</title></head>
<body>
  <!-- 設定資料來源 -->
  <sql:setDataSource var="ProjectDataBase" 
      driver="com.mysql.jdbc.Driver"
      url="jdbc:mysql://120.25.172.21:3306/ProjectDataBase?useUnicode=true&characterEncoding=utf8"
      user="root" password="123456"/>

  <!-- 執行查詢 -->
  <sql:query dataSource="${ProjectDataBase}" var="result">
    SELECT * FROM infoSheet LIMIT 0,15;
  </sql:query>

  <!-- 表格呈現 -->
  <table border="1" width="100%">
    <tr>
      <th>ID</th><th>標題</th><th>內容</th><th>發布時間</th>
    </tr>
    <c:forEach var="row" items="${result.rows}">
      <tr>
        <td><c:out value="${row.id}"/></td>
        <td><c:out value="${row.infoTitle}"/></td>
        <td><c:out value="${row.infoContent}"/></td>
        <td><c:out value="${row.publishTimes}"/></td>
      </tr>
    </c:forEach>
  </table>
</body>
</html>

4. 關鍵標籤說明

標籤用途
<sql:setDataSource>定義資料庫連線參數,產生 DataSource 變數
<sql:query>執行 SELECT 查詢,結果存入 var 指定的變數(型別為 javax.servlet.jsp.jstl.sql.Result)
${result.rows}取得查詢結果的 List<Map<String, Object>>,每筆資料為一個 Map
<c:forEach>迭代集合,var 代表當前行 Map
<c:out>輸出值並自動進行 HTML 轉義,防止 XSS

5. 實務建議

  • 生產環境不建議將資料庫帳密直寫在 JSP,應改用 JNDI DataSource 或 Spring 管理的 DataSource。
  • 大型專案請採用 MVC 架構(Controller + Service + DAO),JSP 僅負責視圖渲染。
  • JSTL 適合快速原型、後台管理等輕量級場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved