JSP - page 指令



page 指令用於向容器提供與當前 JSP 頁面相關的指令。可以在 JSP 頁面的任何位置編寫 page 指令。按照慣例,page 指令寫在 JSP 頁面的頂部。

以下是 page 指令的基本語法:

<%@ page attribute = "value" %>

您可以編寫上述語法的 XML 等效項,如下所示:

<jsp:directive.page attribute = "value" />

屬性

下表列出了與 page 指令相關的屬性:

序號 屬性 & 用途
1

buffer

指定輸出流的緩衝模型。

2

autoFlush

控制 servlet 輸出緩衝區的行為。

3

contentType

定義字元編碼方案。

4

errorPage

定義另一個 JSP 的 URL,該 JSP 報告 Java 未經檢查的執行時異常。

5

isErrorPage

指示此 JSP 頁面是否是另一個 JSP 頁面的 errorPage 屬性指定的 URL。

6

extends

指定生成的 servlet 必須擴充套件的超類。

7

import

指定要在 JSP 中使用的包或類的列表,就像 Java import 語句對 Java 類所做的那樣。

8

info

定義一個字串,可以使用 servlet 的 getServletInfo() 方法訪問。

9

isThreadSafe

定義生成的 servlet 的執行緒模型。

10

language

定義 JSP 頁面中使用的程式語言。

11

session

指定 JSP 頁面是否參與 HTTP 會話。

12

isELIgnored

指定是否忽略 JSP 頁面中的 EL 表示式。

13

isScriptingEnabled

確定是否允許使用指令碼元素。

buffer 屬性

buffer 屬性指定伺服器輸出響應物件的緩衝特性。

可以編碼值為“none”以指定不進行緩衝,以便 servlet 輸出立即定向到響應物件;也可以編碼以千位元組為單位的最大緩衝區大小,這會指示 servlet 在寫入響應物件之前寫入緩衝區。

要指示 servlet 將輸出直接寫入響應輸出物件,請使用以下內容:

<%@ page buffer = "none" %>

使用以下方法指示 servlet 將輸出寫入大小不少於 8 千位元組的緩衝區:

<%@ page buffer = "8kb" %>

autoFlush 屬性

autoFlush 屬性指定當緩衝區已滿時是否應自動重新整理緩衝輸出,或者是否應引發異常以指示緩衝區溢位。

值為 true (預設值) 表示自動緩衝重新整理,值為 false 會引發異常。

以下指令導致 servlet 在 servlet 的輸出緩衝區已滿時引發異常:

<%@ page autoFlush = "false" %>

此指令導致 servlet 在緩衝區已滿時重新整理輸出緩衝區:

<%@ page autoFlush = "true" %>

通常,buffer 和 autoFlush 屬性在一個 page 指令中編碼,如下所示:

<%@ page buffer = "16kb" autoflush = "true" %>

contentType 屬性

contentType 屬性設定 JSP 頁面的字元編碼和生成的響應頁面的字元編碼。預設內容型別為 text/html,這是 HTML 頁面的標準內容型別。

如果要從 JSP 輸出 XML,請使用以下 page 指令:

<%@ page contentType = "text/xml" %>

以下語句指示瀏覽器將生成的頁面呈現為 HTML:

<%@ page contentType = "text/html" %>

以下指令將內容型別設定為 Microsoft Word 文件:

<%@ page contentType = "application/msword" %>

您還可以指定響應的字元編碼。例如,如果要指定返回給瀏覽器的結果頁面使用 ISO Latin 1,可以使用以下 page 指令:

<%@ page contentType = "text/html:charset=ISO-8859-1" %>

errorPage 屬性

errorPage 屬性告訴 JSP 引擎在當前頁面執行時出現錯誤時顯示哪個頁面。errorPage 屬性的值是相對 URL。

以下指令在丟擲所有未捕獲的異常時顯示 MyErrorPage.jsp:

<%@ page errorPage = "MyErrorPage.jsp" %>

isErrorPage 屬性

isErrorPage 屬性指示當前 JSP 可以用作另一個 JSP 的錯誤頁面。

isErrorPage 的值可以是 true 或 false。isErrorPage 屬性的預設值為 false。

例如,handleError.jsp 將 isErrorPage 選項設定為 true,因為它應該處理錯誤:

<%@ page isErrorPage = "true" %>

extends 屬性

extends 屬性指定生成的 servlet 必須擴充套件的超類。

例如,以下指令指示 JSP 翻譯器生成 servlet,以便該 servlet 擴充套件 somePackage.SomeClass

<%@ page extends = "somePackage.SomeClass" %>

import 屬性

import 屬性的功能與 Java import 語句相同,行為也類似。import 選項的值是要匯入的包的名稱。

要匯入 java.sql.*,請使用以下 page 指令:

<%@ page import = "java.sql.*" %>

要匯入多個包,可以以逗號分隔的方式指定它們,如下所示:

<%@ page import = "java.sql.*,java.util.*"  %>

預設情況下,容器會自動匯入 java.lang.*, javax.servlet.*, javax.servlet.jsp.*,javax.servlet.http.*

info 屬性

info 屬性允許您提供 JSP 的描述。以下是一個編碼示例:

<%@ page info = "This JSP Page Written By ZARA"  %>

isThreadSafe 屬性

isThreadSafe 選項將頁面標記為執行緒安全的。預設情況下,所有 JSP 都被認為是執行緒安全的。如果將 isThreadSafe 選項設定為 false,則 JSP 引擎確保一次只有一個執行緒正在執行您的 JSP。

以下 page 指令將 isThreadSafe 選項設定為 false:

<%@ page isThreadSafe = "false"  %>

language 屬性

language 屬性指示在 JSP 頁面指令碼編寫中使用的程式語言。

例如,因為通常使用 Java 作為指令碼語言,所以您的 language 選項如下所示:

<%@ page language = "java" %>

session 屬性

session 屬性指示 JSP 頁面是否使用 HTTP 會話。值為 true 表示 JSP 頁面可以訪問內建的 session 物件,值為 false 表示 JSP 頁面無法訪問內建的 session 物件。

以下指令允許 JSP 頁面使用任何內建的 session 物件方法,例如 session.getCreationTime()session.getLastAccessTime()

<%@ page session = "true" %>

isELIgnored 屬性

isELIgnored 屬性使您可以停用對 JSP 2.0 中引入的表示式語言 (EL) 表示式的求值。

該屬性的預設值為 true,這意味著表示式 ${...} 將根據 JSP 規範進行求值。如果屬性設定為 false,則表示式不會被求值,而是被視為靜態文字。

以下指令設定表示式不被求值:

<%@ page isELIgnored = "false" %>

isScriptingEnabled 屬性

isScriptingEnabled 屬性確定是否允許使用指令碼元素。

預設值 (true) 啟用指令碼片段、表示式和宣告。如果屬性的值設定為 false,則如果 JSP 使用任何指令碼片段、表示式(非 EL)或宣告,則會引發翻譯時錯誤。

如果要限制指令碼片段、表示式(非 EL)或宣告的使用,可以將屬性的值設定為 false:

<%@ page isScriptingEnabled = "false" %>
jsp_directives.htm
廣告
© . All rights reserved.