3.3 JSP指令元素
JSP指令元素主要包括:page指令、include指令及taglib指令。它們都是JSP中的編譯指令。編譯指令就是告訴JSP的引擎,如何處理其他的JSP網頁。JSP編譯指令的語法格式如下:
<%@指令名屬性="屬性值"%>
下面分別介紹JSP中的三種編譯指令:page指令、include指令及taglib指令。
指令
3.3.1 page指令
功能:定義整個JSP頁面的屬性及其屬性值。
語法:<%@ page屬性1=值 屬性2=值…%>
該指令所包含屬性如下:
?language:定義JSP網頁所使用的腳本語言的種類,其默認值是Java。
?import:指定JSP網頁中需要導入的Java包列表。
?extends:說明JSP編譯時需要加入的Java類的名字。
?session:設置此網頁是否要加入到一個session中(其值為布爾類型)。如果為true,則session是有用的;否則,就不能使用session對象以及定義了scope=session的<jsp:use-Bean>元素,這樣的使用會導致錯誤。其默認值是true。
?buffer:設置此網頁輸出時所使用緩沖區的大小。buffer的值可以為none,也可以是一個數值。其默認值是8KB。
?autoFlush:指定當緩沖區滿時是否自動輸出緩沖區的數據(其值為布爾類型)。如果為true,輸出正常,否則當緩沖區滿時將拋出異常。其默認值是true。注意,如果把buffer的值設置為none,那么把autoFlush的值設置為false就是非法的。
?info:指明網頁的說明信息,可使用Servlet類的getServletInfo方法獲取此信息。
?isThreadSafe:設置JSP文件是否能多線程訪問,其默認值是true。如果為true,JSP能夠同時處理多個用戶的請求,否則JSP一次只能處理一個用戶請求。
?isErrorPage:設置此網頁是否是另一個JSP頁面的錯誤信息的提示頁面。如果為true,就能使用exception對象,否則exception對象不可用。
?errorPage:設置JSP網頁發生錯誤時的信息提示頁面的URL路徑。該屬性的值必須是一個用“URL路徑”來描述的JSP頁面。
?contentType:定義了JSP網頁所使用的字符集及JSP響應的MIME類型。默認MIME類型是text/html,默認字符集是ISO-8859-1。
注意:page指令作用于整個JSP頁面,以及由include指令和<jsp:include>包含進來的靜態文件中,但不能用于動態包含文件。可以在一個頁面上使用多個page指令,但是其中的屬性只能使用一次(import屬性例外)。page指令可以放在JSP文件的任何地方,它的作用范圍都是JSP頁面,但好的編程習慣一般把它放在文件的頂部。
如何使用page指令。下面代碼的運行結果如圖3-3所示,源碼如下:
圖3-3 page指令運行結果
3.3.2 include指令
功能:指定在JSP文件中包含的一個靜態的文件,即在JSP文件被編譯時需要插入的文本或代碼。
語法:<%@ include file="文件名稱"%>
當使用include指令時,包含文件是靜態包含,即這個被包含的文件將被插入到JSP文件中去。所包含的文件可以是JSP文件、HTML文件、文本文件甚至一段Java代碼。但是在所包含的文件中不能使用“<html></html>”,“<body></body>”標記,因為這將會影響到原有的JSP文件中所使用的相同標記。如果所包含的是一個JSP文件,則該文件將會執行。
注意:屬性file指出了被包含文件的路徑,這個路徑一般指相對路徑,不需要什么端口、協議和域名。
如何使用include指令。下面代碼運行結果如圖3-4所示,其源碼如下:
現在是北京時間:
其中nowtime.jsp的源碼如下:
圖3-4 include指令運行例子
3.3.3 taglib指令
功能:聲明JSP文件使用了自定義的標簽,同時引用標簽庫,也指定了它們的標簽的前綴。
語法:<%@ taglib uri="URIToTagLibrary"prefix="tagPrefix"%>
屬性說明如下:
?uri:解釋為統一資源標記符,根據標簽的前綴對自定義的標簽進行唯一的命名。URI可以是URL(Uniform Resource Locator)、URN(Uniform Resource Name)或一個路徑(相對或絕對)。
?prefix:在自定義標簽之前的前綴,如<public:moon>中的public,如果這里不寫public,則標簽moon的定義是非法的。
注意:jsp、jspx、java、javax、servlet、sun和sunw等保留字不允許作自定義標簽的前綴。用戶必須在使用自定義標簽之前使用taglib指令,而且可以在一個頁面中多次使用,但是前綴只能使用一次。
- jQuery開發基礎教程
- Spring Boot Cookbook
- Spring Boot進階:原理、實戰與面試題分析
- bbPress Complete
- 編程菜鳥學Python數據分析
- 學習OpenCV 4:基于Python的算法實戰
- “笨辦法”學C語言
- Julia for Data Science
- Go語言從入門到精通
- Python Machine Learning Cookbook
- 黑莓(BlackBerry)開發從入門到精通
- C++服務器開發精髓
- Spring Boot學習指南:構建云原生Java和Kotlin應用程序
- Implementing NetScaler VPX?(Second Edition)
- Programming MapReduce with Scalding