JAVA記錄-JSP指令
JSP中有三種類型的指令標簽 -
序號 | 指令 | 說明 |
---|---|---|
1 | <%@ page ... %> |
定義頁面相關屬性,如腳本語言,錯誤頁面和緩沖要求。 |
2 | <%@ include ... %> |
在編譯階段包括文件。 |
3 | <%@ taglib ... %> |
聲明頁面中使用的包含自定義操作的標簽庫 |
JSP中的page
指令用於向容器提供與當前JSP頁面相關的指令。可以在JSP頁面的任何位置使用page
指令進行編碼。 按照慣例,page
指令被編碼在JSP頁面的頂部。
以下是page
指令的基本語法 -
HTML<%@ page attribute = "value" %>
可以使用XML編寫上述語法,如下所示:
<jsp:directive.page attribute = "value" />
XML
屬性
下表列出了與page
指令相關聯的屬性 -
序號 | 屬性 | 說明 |
---|---|---|
1 | buffer |
指定輸出流的緩沖模型。 |
2 | autoFlush |
控制servlet輸出緩沖區的行為。 |
3 | contentType |
定義字符編碼方案。 |
4 | errorPage |
定義另一個報告Java未檢查運行時異常的JSP的URL。 |
5 | isErrorPage |
指示此JSP頁面是否是由另一個JSP頁面的errorPage 屬性指定的URL。 |
6 | extends |
指定生成的servlet必須擴展的超類。 |
7 | import |
指定JSP中使用的包或類的列表,就像Java的import 語句一樣。 |
8 | info |
定義可以使用servlet的getServletInfo() 方法訪問的字符串。 |
9 | isThreadSafe |
定義生成的servlet的線程模型。 |
10 | language |
定義JSP頁面中使用的編程語言。 |
11 | session |
指定JSP頁面是否參與HTTP會話 |
12 | isELIgnored |
指定JSP頁面中的EL表達式是否被忽略。 |
13 | isScriptingEnabled |
確定腳本元素是否被允許使用。 |
1. buffer屬性
buffer
屬性指定服務器輸出響應對象的緩沖特性。
可以編寫指一個none
值來指定不使用緩沖,以便servlet輸出立即被定向到響應對象,或者可以編寫一個以KB
為單位的最大緩沖區大小,這將指示servlet在寫入響應之前寫入緩沖區。
如要指示servlet將輸出直接寫入響應輸出對象,請使用以下命令 -
<%@ page buffer = "none" %>
HTML
使用以下命令來指示servlet將輸出寫入大小不小於64KB
字節的緩沖區 -
<%@ page buffer = "64kb" %>
HTML
2. autoFlush屬性
autoFlush
屬性指定緩沖區輸出是否在緩沖區填充時自動刷新,或者是否引發異常以指示緩沖區溢出。
true
(默認值)值表示自動緩沖區刷新,false
值表示引發異常。
當servlet的輸出緩沖區已滿時,以下指令會導致servlet拋出異常,則使用以下語句 -
<%@ page autoFlush = "false" %>
HTML
此指令使servlet在完全輸出時刷新輸出緩沖區,
<%@ page autoFlush = "true" %>
HTML
通常,buffer
和autoFlush
屬性在page
指令中進行編碼,如下所示:
<%@ page buffer = "16kb" autoflush = "true" %>
HTML
3. contentType屬性
contentType
屬性設置JSP頁面和生成的響應頁面的字符編碼。 默認內容類型為:text/html
,它是HTML頁面的標準內容類型。
如果要從JSP輸出為XML,請使用以下page
指令 -
<%@ page contentType = "text/xml" %>
HTML
以下語句指示向瀏覽器生成的頁面呈現為HTML -
<%@ page contentType = "text/html" %>
HTML
以下指令將內容類型設置為:Microsoft Word文檔 -
<%@ page contentType = "application/msword" %>
HTML
還可以指定響應的字符編碼。 例如,如果要指定返回瀏覽器的結果頁面使用:UTF-8,則可以使用以下page
指令 -
<%@ page contentType = "text/html:charset=UTF-8" %>
HTML
4. errorPage屬性
如果希望在當前頁面運行時出現錯誤時,指定一個錯誤提示頁面,那麽errorPage
屬性告訴JSP引擎顯示哪個頁面。errorPage
屬性的值是相對URL。
當拋出所有未捕獲的異常時,以下指令用於在頁面出錯時指定顯示MyErrorPage.jsp
的內容 -
<%@ page errorPage = "MyErrorPage.jsp" %>
HTML
5. isErrorPage屬性
isErrorPage
屬性表示當前的JSP頁面可以用作另一個JSP的錯誤頁面。
isErrorPage
的值可為true
或false
。 isErrorPage
屬性的默認值為false
。
例如,handleError.jsp
將isErrorPage
選項設置為true
,因為它應該處理錯誤 -
<%@ page isErrorPage = "true" %>
HTML
6. extends屬性
extends
屬性指定生成的servlet必須擴展的超類。
例如,以下指令指示JSP轉換器生成servlet,以使servlet擴展somePackage.SomeClass
-
<%@ page extends = "somePackage.SomeClass" %>
HTML
7. import屬性
import
屬性與Java import語句具有相同的功能,並且類似於Java import語句。import
選項的值是要導入的程序包的名稱。
例如,要導入java.sql.*
,請使用以下page
指令 -
<%@ page import = "java.sql.*" %>
HTML
要導入多個包,可以使用逗號分隔,如下所示:
<%@ page import = "java.sql.*,java.util.*" %>
HTML
默認情況下,容器會自動導入java.lang.*
,javax.servlet.*
,javax.servlet.jsp.*
和javax.servlet.http.*
。
8. info屬性
info
屬性允許提供JSP的描述。以下是一個代碼示例 -
<%@ page info = "This JSP Page Written By Maxsu" %>
HTML
9. isThreadSafe屬性
isThreadSafe
選項將頁面標記為線程安全。默認情況下,所有JSP都被認為是線程安全的。 如果將isThreadSafe
選項設置為false
,則JSP引擎確保一次只有一個線程正在執行JSP。
以下page
指令將isThreadSafe
選項的值設置為false
-
<%@ page isThreadSafe = "false" %>
HTML
10. language屬性
language
屬性指示在JSP頁面腳本編寫中使用的編程語言。
例如,由於通常我們使用Java作為腳本語言,因此language
選項可設置成如下:
<%@ page language = "java" %>
HTML
11. session屬性
session
屬性指示JSP頁面是否使用HTTP會話。如果設置值為true
,則表示JSP頁面可以訪問內置session
對象,設置值為false
表示JSP頁面無法訪問內置session
對象。
以下指令允許JSP頁面使用任何內置session
對象方法,如:session.getCreationTime()
或session.getLastAccessTime()
-
<%@ page session = "true" %>
HTML
12. isELIgnored屬性
isELIgnored
屬性能夠禁用JSP 2.0中引入的表達式語言(EL)表達式的求值計算。
isELIgnored
屬性的默認值為true,這意味著表達式${...}
按JSP規範進行評估計算。如果屬性設置為false
,則不會對表達式進行評估求值,而將其視為靜態文本內容。
以下指令設定表達式不會被評估計算 -
<%@ page isELIgnored = "false" %>
HTML
13. isScriptingEnabled屬性
isScriptingEnabled
屬性確定腳本元素是否被允許使用。
isScriptingEnabled
屬性默認值為true
,它表示啟用腳本,表達式和聲明。 如果屬性的值設置為false
,則如果JSP使用任何腳本,表達式(非EL)或聲明,則會引發轉換時錯誤。
如果要限制腳本,表達式(非EL)或聲明的使用,可將isScriptingEnabled
屬性的值可以設置為false
-
<%@ page isScriptingEnabled = "false" %>
include
指令用於在編譯階段包括一個文件。這個指令告訴容器在編譯階段將其他外部文件的內容合並到當前JSP文件中。可在JSP頁面的任何位置使用include
指令進行編碼。
本指令的一般用法形式如下:
<%@ include file = "relative url" >
include
指令中的文件名實際上是一個相對URL。如果只指定一個沒有關聯路徑的文件名,那麽JSP編譯器會假定該文件與JSP在同一個目錄中。
可以使用XML編寫上述代碼效果相同,如下所示:
<jsp:directive.include file = "relative url" />
JSP API允許自定義JSP標簽,如:HTML或XML標簽,標簽庫是一組實現自定義行為的用戶定義標簽。
taglib
指令聲明JSP頁面使用一組自定義標簽,標識庫的位置,並提供了在JSP頁面中標識自定義標簽的方法。
taglib
指令遵循下面給出的語法 -
<%@ taglib uri="uri" prefix = "prefixOfTag" >
HTML
這裏,uri
屬性值解析為容器理解的位置,並且prefix
屬性通知容器什麽位置的標記是自定義操作。
可以使用XML編寫上述語法,如下所示:
<jsp:directive.taglib uri = "uri" prefix = "prefixOfTag" />
XML
當您使用自定義標簽時,通常是<prefix:tagname>
的形式。 前綴與在taglib
指令中指定的前綴相同,標記名是標記庫中實現的標記的名稱。
JAVA記錄-JSP指令