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

JSP 三大指令深度解析:page、include、taglib 完全指南

     編輯:Java 綜合教學

JSP 指令概覽

JSP 指令用於向容器傳遞頁面處理信息,不產生任何輸出內容。三大核心指令分別為 page(頁面屬性)、include(靜態包含)、taglib(標簽庫引入)。掌握它們是編寫高質量 JSP 的基礎。

一、page 指令:頁面屬性控制中心

語法:<%@ page attribute="value" ... %>

同一屬性在頁面中只能出現一次(import 除外),屬性名區分大小寫。

常用屬性速查表

屬性取值範圍說明默認值
languagejava指定腳本語言java
extends全限定類名指定生成 Servlet 繼承的父類無
import包名/類名導入類/包,可多次使用,逗號分隔無
sessiontrue/false是否內置 session 隱式對象true
autoFlushtrue/false緩衝區滿時是否自動刷新true
buffernone / 數字kb緩衝區大小,autoFlush=true 時生效8kb
isThreadSafetrue/false是否線程安全(多實例模式)true
isErrorPagetrue/false是否為錯誤處理頁面(可用 exception 對象)false
errorPage相對路徑發生未捕獲異常時轉向的錯誤頁無
contentTypeMIME 類型響應內容類型,如 text/html;charset=UTF-8text/html
pageEncoding字符集頁面編碼,等同 contentType 中 charsetISO-8859-1
trimDirectiveWhitespacestrue/false是否移除指令前後空白字符(輸出 XML 時建議 true)false

trimDirectiveWhitespaces 實戰對比

false(默認):生成的 HTML 保留指令換行,源碼可讀性好但體積稍大。
true:移除指令周圍空白,輸出更緊湊,適合 XML/JSON 輸出場景。

二、include 指令:靜態包含實現頁面模塊化

語法

<%@ include file="relativeURL" %>

relativeURL 為當前 Web 應用內的相對路徑(.jsp/.html/.jspx)。

工作原理:先包含後編譯

容器將被包含文件的源碼合併到主頁面,再編譯為單一 Servlet 類。適用於頁頭、頁尾、導航欄等靜態片段。

實戰示例

<!-- Head.jsp:導航欄 -->
<table><tr><td>首頁</td><td>文檔</td><td>下載</td></tr></table>

<!-- Foot.jsp:版權信息 -->
<table><tr><td>Copyright © 2024</td></tr></table>

<!-- Include.jsp:主頁面 -->
<%@ page trimDirectiveWhitespaces="true" %>
<body>
  <%@ include file="Head.jsp" %>
  <p>主體內容...</p>
  <%@ include file="Foot.jsp" %>
</body>

include 指令 vs include 動作 vs web.xml 預包含

三、taglib 指令:引入標簽庫實現視圖復用

語法

<%@ taglib uri="taglibURI" prefix="prefix" %>
  • uri:標簽庫的唯一標識(TLD 文件中定義或 JAR 中 META-INF/tld)
  • prefix:自定義前綴,如 c、fmt、fn

JSTL 核心標簽庫示例

<%@ taglib uri="https://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:forEach var="item" items="${list}">
  <c:out value="${item.name}" />
</c:forEach>

最佳實踐建議

  1. 頁面頂部統一聲明 pageEncoding="UTF-8" 與 trimDirectiveWhitespaces="true"
  2. 盡量使用 include 指令 包含靜態片段,減少編譯開銷
  3. 動態內容或需傳參時使用 <jsp:include>
  4. 全站公共頁頭頁腳可配置 web.xml jsp-config 實現零侵入
  5. 優先使用 JSTL/EL 表達式替代 Scriptlet(<% %>),提升可維護性

掌握三大指令,讓 JSP 從「腳本堆砌」進化為「結構清晰、復用性強」的視圖層代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
方式語法執行階段適用場景
include 指令<%@ include file="..." %>編譯期(合併源碼)靜態片段,性能最優
include 動作<jsp:include page="..." />運行期(分別執行再合併輸出)動態內容,需傳參
web.xml 預包含<include-prelude>/<include-coda>容器初始化/每次請求前後全站統一頁頭頁腳