[04] JSP指令
阿新 • • 發佈:2018-01-30
轉發 Coding 格式 param ror cti 標簽 tld 當前
指令的基本語法為:
其中,directive表示指令名,attr則表示該指令對應的屬性名,一個指令可能有多個屬性。而JSP中常用的指令有三個:page、include、taglib
import屬性:用來引入JSP文件需要使用的類
pageEncoding屬性:用來設置JSP文件的頁面編碼格式
session屬性:用來設置JSP頁面是否生成session對象,默認值為true
errorPage屬性:設置JSP頁面的錯誤頁面
isErrorPage屬性:錯誤頁面是否生成內置對象exception,默認值為false
include指令用來靜態包含其他頁面。所謂靜態包含,即在翻譯期間,把包含的頁面也翻譯到當前頁面的Java文件中。
需要註意的是,file屬性表示的是文件的名稱,而不是請求地址,所以不能當成url進行傳參,如 <%@include file="head.jsp?param=xxx" %> 的方式是錯誤的。
taglib指令用來聲明用戶使用的自定義標簽,將標簽庫描述符文件導入到JSP頁面中。
簡單地說,在JSP中使用的都是HTML的標簽,瀏覽器可以解析運行,而我們也可以在JSP中自定義一套自己的標簽進行使用,達到JSP文件結構簡練,可讀性強,維護性強等目的。而如何將自定義標簽導入到JSP中聲明並使用,則需要使用到taglib指令。
形如 <%@taglib uri="xxx" prefix="xxx" $>,其中:
taglib指令涉及到自定義標簽的知識點,之後的內容會寫到,此處作為JSP指令的介紹,則不再詳細展開。
1、概述
JSP指令用於“轉換階段”提供整個JSP頁面的相關信息,影響由JSP頁面生成的Servlet的整體結構。指令不會產生任何的輸出到當前的輸出流中。指令的基本語法為:
<%@ directive {attr="value"}* %>
其中,directive表示指令名,attr則表示該指令對應的屬性名,一個指令可能有多個屬性。而JSP中常用的指令有三個:page、include、taglib
2、page指令
page指令作用於當前整個JSP頁面,可以放在頁面的任意位置。其屬性共有13個,下面展開常用屬性:import屬性:用來引入JSP文件需要使用的類
- e.g. <%@page import="java.util.*, java.io.*" %>
- 使用逗號可以同時引入多個包,也可以分別多次使用import
- import是page指令中唯一一個能在JSP文件多次出現的屬性
pageEncoding屬性:用來設置JSP文件的頁面編碼格式
- e.g. <%@page pageEncoding="utf-8" %>
- 上例表示設置當前JSP的頁面編碼格式為UTF-8
session屬性:用來設置JSP頁面是否生成session對象,默認值為true
- e.g. <%@page session="false" %>
- session屬性為false後,該JSP翻譯後的Java類中將沒有內置對象session
errorPage屬性:設置JSP頁面的錯誤頁面
- e.g. <%@page errorPage="error.page" %>
- 如標有上例指令的JSP頁面,若頁面中出現異常未處理,則請求會轉發到錯誤頁面
- 可以理解為JSP翻譯後的Java類執行過程發生異常,則請求跳轉到錯誤頁面去
isErrorPage屬性:錯誤頁面是否生成內置對象exception,默認值為false
- e.g. <%@page isErrorPage="true" %>
- 將需要跳轉達到的錯誤頁面,設置上述指令,則在翻譯後的Java類中會生成exception內置對象
- 即使一個頁面沒有設置isErrorPage也可以作為錯誤頁面使用,區別在於是否有exception內置對象
3、include指令
e.g. <%@include file="head.jsp" %>include指令用來靜態包含其他頁面。所謂靜態包含,即在翻譯期間,把包含的頁面也翻譯到當前頁面的Java文件中。
需要註意的是,file屬性表示的是文件的名稱,而不是請求地址,所以不能當成url進行傳參,如 <%@include file="head.jsp?param=xxx" %> 的方式是錯誤的。
4、taglib指令
簡單地說,在JSP中使用的都是HTML的標簽,瀏覽器可以解析運行,而我們也可以在JSP中自定義一套自己的標簽進行使用,達到JSP文件結構簡練,可讀性強,維護性強等目的。而如何將自定義標簽導入到JSP中聲明並使用,則需要使用到taglib指令。
形如 <%@taglib uri="xxx" prefix="xxx" $>,其中:
- uri屬性用來描述標簽資源的定位標記(自定義標簽tld文件中定義的唯一標記)
- prefix屬性則是前綴,可以在聲明時自定義,在一個JSP中可以引入多個標簽庫,但各前綴不能重復
taglib指令涉及到自定義標簽的知識點,之後的內容會寫到,此處作為JSP指令的介紹,則不再詳細展開。
[04] JSP指令