JSP page指令
page指令用於提供指示,涉及到當前JSP頁麵的容器。你可以在你的JSP頁麵的任何地方代碼頁指令。按照慣例,page指令進行編碼的JSP頁麵的頂部。
以下是page指令的基本語法:
<%@ page attribute="value" %>
您可以編寫XML相當於上麵的語法如下:
<jsp:directive.page attribute="value" />
屬性:
以下是page指令相關聯的屬性的列表:
屬性 | 目的 |
---|---|
buffer | Specifies a buffering model for the output stream. |
autoFlush | Controls the behavior of the servlet output buffer. |
contentType | Defines the character encoding scheme. |
errorPage | Defines the URL of another JSP that reports on Java unchecked runtime exceptions. |
isErrorPage | Indicates if this JSP page is a URL specified by another JSP page's errorPage attribute. |
extends | Specifies a superclass that the generated servlet must extend |
import | Specifies a list of packages or classes for use in the JSP as the Java import statement does for Java classes. |
info | Defines a string that can be accessed with the servlet's getServletInfo() method. |
isThreadSafe | Defines the threading model for the generated servlet. |
language | Defines the programming language used in the JSP page. |
session | Specifies whether or not the JSP page participates in HTTP sessions |
isELIgnored | Specifies whether or not EL expression within the JSP page will be ignored. |
isScriptingEnabled | Determines if scripting elements are allowed for use. |
buffer 屬性:
buffer 屬性指定服務器輸出的響應對象緩衝特性。
你可以編寫“none”值來指定冇有緩衝,使所有servlet的輸出立即定向到響應對象,或者您可以編寫一個最大緩衝區大小以KB為單位寫入到響應之前,它指示的servlet寫入緩衝區對象。
可直接進行servlet來寫直接輸出到響應輸出對象,使用以下命令:
<%@ page buffer="none" %>
使用以下方法來指導servlet將輸出寫入大小不超過8千字節以下的緩衝區:
<%@ page buffer="8kb" %>
autoFlush 屬性:
AutoFlush屬性指定是否緩衝輸出,當緩衝區填滿,或異常是否應該提高,表明緩衝區溢出應該會自動刷新。
true(默認)值表示自動緩衝刷新和false值拋出一個異常。
下麵的指令使當servlet的輸出緩衝區已滿拋出一個異常的servlet:
<%@ page autoFlush="false" %>
該指令使該servlet來刷新輸出緩衝區滿時:
<%@ page autoFlush="true" %>
通常情況下,緩衝區和自動衝洗屬性在一個單一的頁麵指令編碼如下:
<%@ 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語句。對於導入選項的值是你要導入的包的名稱。
若要導入java.sql.*,使用下麵的page指令:
<%@ page import="java.sql.*" %>
要導入您可以指定它們用逗號如下分隔的多個程序包:
<%@ page import="java.sql.*,java.util.*" %>
默認情況下,容器會自動導入 java.lang.*, javax.servlet.*, javax.servlet.jsp.*, and javax.servlet.http.*.
info 屬性:
該信息屬性可以讓你提供了JSP的描述。下麵是一個編碼的例子:
<%@ page info="This JSP Page Written By ZARA" %>
isThreadSafe 屬性:
isThreadSafe選項標誌著一個頁麵作為是線程安全的。默認情況下,所有的JSP被認為是線程安全的。如果您將isThreadSafe選項設置為false,JSP引擎使得隻有一個線程在同一時間正在執行您的JSP確定。
下頁指令設置isThreadSafe選項設置為false:
<%@ page isThreadSafe="false" %>
language 屬性:
language 屬性指示在腳本的JSP頁麵使用的編程語言。
例如,因為您通常使用Java作為腳本語言,你的語言選項看起來像這樣:
<%@ page language="java" %>
session 屬性:
會話屬性指示JSP頁麵是否使用HTTP會話。值為true意味著JSP頁麵可以訪問一個內建的會話對象和false表示的值的JSP頁麵不能訪問內置的session對象。
下列指令允許JSP頁麵使用任何內置的會話對象的方法,如session.getCreationTime()或session.getLastAccessTime():
<%@ page session="true" %>
isELIgnored 屬性:
isELIgnored選項使您可以禁用表達式語言(EL)表達式的計算能力已在JSP 2.0中被引入
該屬性的默認值為true,這意味著表達式,${...},評估所決定的JSP規範。如果該屬性設置為false,則表達式不計算,而是視為靜態文本。
下麵的指令設置一個表達式不進行計算:
<%@ page isELIgnored="false" %>
isScriptingEnabled 屬性:
isScriptingEnabled屬性決定是否允許使用腳本元素。
默認值(true),使scriptlet,表達式和聲明。如果該屬性的值設置為false,翻譯時錯誤會在JSP中使用任何scriptlet以便得到拋出,表達式(非EL),或聲明。
如果你想限製使用的小腳本,表達式(非EL),或聲明該值設置為false:
<%@ page isScriptingEnabled="false" %>