jsp基礎語言-jsp指令


jsp編譯指令用於設置jsp程序的屬性以及由jsp生成的servlet中的屬性。

jsp常用的編譯指令有3個:include指令、page指令、taglib指令。

一、page指令

1、概念:用來設置整個JSP頁面的相關屬性和功能,其作用范圍是整個JSP頁面,包括使用include指令引用的其他文件。但是page指令不能作用於動態的包含文件,例如對使用<jsp:include>包含的文件,page指令的設置是無效的。一般情況下,page編譯指令位於頁面最上方,一個頁面可以有多個編譯配置指令。

2、語法格式:<%@page attribute1="value1" attribute2="value2"... %>

3、指令的屬性:

(1)language屬性:定義當前JSP頁面使用的腳本語言,默認為java。少數服務器支持JavaBean。

(2)import屬性:導入使用的包。jsp中用import指明多個包,用逗號隔開。

(3)contentType屬性:指定當前頁面的MIME類型和字符編碼。MIME類型有:text/plain、text/html(默認)、image/gif、image/jpeg等。默認字符編碼方式:ISO-8859-1,若需要中文,可修改為GB2312或UTF-8。

(4)pageEncoding屬性:設定jsp源文件保存時所使用的編碼。由於jsp文件要響應客戶端的請求,因此它會被編譯成一個servlet。而servlet是一個java類,java類在內存中是以Unicode進行編碼的,若jsp引擎不知道jsp的編碼格式,就無法進行解碼,並將其轉換成內存中的Unicode編碼。

(5)session屬性:指定這個jsp頁面是否支持session機制,默認為true。

(6)extends屬性:指定jsp編譯生成的servlet所繼承的父類或所實現的接口。

(7)errorPage屬性:指定錯誤處理頁面的地址。若本頁面產生了異常或者錯誤,而該jsp頁面沒有對應的處理代碼,此時就會自動調用該屬性所指向的jsp頁面。

(8)isErrorPage屬性:與errorPage屬性配合使用,指定當前頁面是否可以作為另一個jsp頁面的錯誤處理頁面。

(9)info屬性:定義jsp頁面的描述信息。在jsp頁面中,可以直接調用getServletInfo()方法獲取該值。這是由於jsp是servlet,而任何一個servlet都實現了servlet接口,servlet接口中含有getServletInfo()方法。

(10)buffer屬性:指定out對象使用緩沖區的大小。jsp的隱式對象out用於緩存jsp對客戶端瀏覽器的輸出,默認為8KB.

(11)autoFlush屬性:當輸出緩沖區即將溢出時,是否需要強制輸出緩沖區的內容,默認為true。設置為true時可正常輸出;則會在buffer溢出時產生一個異常。

(12)isThreadSafe屬性:指定對jsp頁面的訪問是否為線程安全,默認為true。若設置為true,則表示該jsp文件支持多線程;若為false則表示不支持。

(13)trimDirectiveWhitespaces屬性:是否去掉指令前后的空白字符,默認為flase。該屬性是jsp2.1規范中新增的;當屬性值是true時,取消空白字符串。

項目ch04案例:

1、創建page.jsp頁面,使0作為被除數:

     

2、創建錯誤頁面error.jsp:

 

3、結果:http://localhost:8080/ch04/error.jsp

 

 使用page指令中的errorPage屬性,當page.jsp頁面出現異常時,內容跳轉到error.jsp頁面的內容,而地址欄中的地址沒有改變,仍然為~~~page.jsp。

 二、include指令

1、概念:include是jsp的靜態包含指令,使用該指令可將一個外部文件包含到此jsp程序中。一般在jsp頁面被編譯成servlet時引入其中包含的HTML文件、jsp文件或文本文件。在include指令中,包含頁面和被包含頁面同一類型的參數不能被定義兩次。include指令通常用來包含網址中經常出現的重復性頁面,被包含文件中的任何一部分改變了,所有包含該文件的主jsp文件都需要重新進行編譯。

2、語法格式:<%@include file="文件路徑" %>

file必須是相對路徑,不需要指定端口、協議、域名等。若路徑以“/”開頭,則該路徑等同於參照jsp應用的上下文關系路徑;若路徑是以文件名或目錄名開頭,則路徑就是當前jsp文件所在的路徑。

項目ch04案例:

1、創建top.jsp頁面

2、創建footer.jsp頁面

3、使用include包含兩個頁面

4、結果:http://localhost:8080/ch04/include.jsp

三、taglib指令

1、概念:允許頁面使用用戶自定義的標簽。

2、語法格式:<%@taglib (uri="tagLibraryURI" | tagdir="tagDir") prefix="tagPrefix" %>

uri屬性:用來指明自定義標記庫的存放位置。該屬性的唯一的標識和前綴相關的標簽庫描述符,可以是絕對或相對的URL。

tagdir屬性:指示前綴將被用於標識安裝在/WEB-INF/tags/目錄或子目錄下的標簽文件,一個隱含的標簽庫描述符被使用。

prefix屬性:定義一個prefix:tagname形式的字符串前綴,用於區分多個自定義標簽。以jsp:、jspx:、java:、javax:、servlet:、sun:和sunw:開始的前綴被保留,前綴的命名必須遵循XML名稱空間的命名約定。

ch04項目案例:

結果:http://localhost:8080/ch04/taglib.jsp

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM