- JSP 基礎教程
- JSP - 首頁
- JSP - 概述
- JSP - 環境搭建
- JSP - 架構
- JSP - 生命週期
- JSP - 語法
- JSP - 指令
- JSP - 動作
- JSP - 隱式物件
- JSP - 客戶端請求
- JSP - 伺服器響應
- JSP - HTTP 狀態碼
- JSP - 表單處理
- JSP - 編寫過濾器
- JSP - Cookie 處理
- JSP - 會話跟蹤
- JSP - 檔案上傳
- JSP - 日期處理
- JSP - 頁面重定向
- JSP - 點選計數器
- JSP - 自動重新整理
- JSP - 傳送郵件
- JSP 高階教程
- JSP - 標準標籤庫
- JSP - 資料庫訪問
- JSP - XML 資料
- JSP - JavaBean
- JSP - 自定義標籤
- JSP - 表示式語言
- JSP - 異常處理
- JSP - 除錯
- JSP - 安全性
- JSP - 國際化
- JSP 有用資源
- JSP - 問答
- JSP - 快速指南
- JSP - 有用資源
- JSP - 討論
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" %>