JSP 頁面由模板資料與 JSP 元素構成。本文系統整理六大核心語法類別,並附上可直接執行的範例,涵蓋註解、指令、腳本、動作標籤、JavaBean 操作與錯誤處理,適合入門速查與資深複習。
<!-- 文字 [<%= expr %>] --> —— 送達瀏覽器,檢視原始碼可見。<%-- 純伺服器端註解 --%> —— 編譯期移除,客戶端完全不可見。| 類型 | 語法 | 用途 | 範例 |
|---|---|---|---|
| 宣告 | <%! 宣告; ... %> | 類別成員變數/方法 | <%! int i=0; %> |
| 片段 | <% 程式碼 %> | 任意 Java 陳述式,進 _jspService | <% if(x>0){ %>...<% } %> |
| 表達式 | <%= 運算式 %> | 結果轉字串輸出至 out,**不可加分號** | <%= new Date() %> |
<%@ page
language="java"
extends="pkg.Class"
import="java.util.*,java.sql.*"
session="true|false"
buffer="8kb|none|sizekb"
autoFlush="true|false"
isThreadSafe="true|false"
info="text"
errorPage="error.jsp"
isErrorPage="true|false"
contentType="text/html;charset=UTF-8"
%>
import 可重複出現;其餘屬性全頁僅生效一次。
<jsp:useBean id="user" class="com.demo.User" scope="session" />
<jsp:setProperty name="user" property="*" /> <!-- 自動對應請求參數 -->
<jsp:getProperty name="user" property="name" />
scope:page | request | session | application
<jsp:include page="header.jsp" flush="true" /> —— 內嵌執行結果,可帶 jsp:param。<jsp:forward page="next.jsp"><jsp:param name="k" value="v"/></jsp:forward> —— 轉交請求,**之後的程式碼不再執行**。自動依瀏覽器產出 <object> 或 <embed>,支援 JRE 版本檢查與自動下載。
<%@ page errorPage="err.jsp" %><%@ page isErrorPage="true" %>,可直接使用 exception 內建物件。<%@ taglib uri="https://example/tags" prefix="ex" %>
<ex:customTag attr="value">body</ex:customTag>
uri 對應 TLD 檔案;prefix 避免衝突,勿用 jsp/java/javax/servlet/sun 等保留字首。
out.print 輸出。%> → %\>,' → \'," → \"。