JSP 指令用於在 JSP 頁面轉譯為 Servlet 類時,向容器發出全局性指示。語法格式為:
<%@ directive attribute="value" %>
可在同一指令中設定多個屬性,屬性間以空格分隔。主要分為 page 與 include 兩大類。
定義頁面屬性,如導入類、Session 啟用、緩衝區大小、錯誤頁面等。完整語法:
<%@ page
[ language="java" ]
[ extends="package.class" ]
[ import="{package.class | package.*}, ..." ]
[ session="true|false" ]
[ buffer="none|8kb|sizekb" ]
[ autoFlush="true|false" ]
[ isThreadSafe="true|false" ]
[ info="text" ]
[ errorPage="relativeURL" ]
[ contentType="mimeType [;charset=characterSet]" ]
[ isErrorPage="true|false" ]
%>
| 屬性 | 說明 | 預設值 |
|---|---|---|
| import | 導入 Java 類或套件,唯一可重複出現的屬性 | 無 |
| contentType | 設定回應 MIME 類型與字元集 | text/html; charset=ISO-8859-1 |
| isThreadSafe | true:多執行緒共用實例;false:實作 SingleThreadModel | true |
| session | true:自動建立/綁定 HttpSession;false:禁用 session 隱含物件 | true |
| buffer | JspWriter 緩衝區大小,none 表示無緩衝 | 伺服器決定(≥8kb) |
| autoFlush | true:緩衝滿自動刷新;false:拋出異常(buffer=none 時不可為 false) | true |
| extends | 指定 Servlet 超類,謹慎使用 | 容器預設 |
| info | 透過 getServletInfo() 取得的描述字串 | 無 |
| errorPage | 未捕獲異常時轉向的錯誤處理頁面 | 無 |
| isErrorPage | 宣告本頁為錯誤處理頁,可使用 exception 隱含物件 | false |
| language | 腳本語言,目前僅支援 java | java |
<%@ page import="java.util.*, java.sql.*" contentType="text/html;charset=UTF-8" errorPage="/error.jsp" %>
在 編譯階段 將指定檔案內容合併進當前 JSP,適用於靜態頁首/頁尾、導航列等不常變動的片段。
<%@ include file="/navbar.html" %>
file:相對路徑,以 / 開頭表示相對 Web 應用根目錄。<jsp:include> 動作(請求時動態包含),避免主頁面重新編譯。<jsp:param>)。掌握 page 指令的屬性配置,能精準控制 Servlet 生成行為;善用 include 指令實現頁面模組化,提升維護效率。下一章將介紹 JSP 動作標籤與隱含物件。