Page 指令
定義JSP檔案中的全局屬性.
JSP 語法
<%@ page
[ language="java" ]
[ extends="package.class" ]
[ import="{package.class | package.*}, ..." ]
[ session="true | false" ]
[ buffer="none | 8kb | sizekb" ]
[ autoFlush="true | false" ]
[ isThreadSafe="true | false" ]
[ info="text" ]
[ errorPage="relativeURL" ]
[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ]
[ isErrorPage="true | false" ]
%>
例子
<%@ page import="java.util.*, java.lang.*" %>
<%@ page buffer="5kb" autoFlush="false" %>
<%@ page errorPage="error.jsp" %>
描述
<%@ page %>指令作用於整個JSP頁面,同樣包括靜態的包含檔案。但是<% @ page %>指令不能作用於動態的包含檔案,比如 <jsp:include>
你可以在一個頁面中用上多個<% @ page %>指令,但是其中的屬性只能用一次,不過也有個例外,那就是import屬性。因為import屬性和Java中的import語句差不多(參照Java Language),所以你就能多用此屬性幾次了.
無論你把<% @ page %>指令放在JSP的檔案的哪個地方,它的作用範圍都是整個JSP頁面。不過,為了JSP程式的可讀性,以及好的編程習慣,最好還是把它放在JSP檔案的頂部.
屬性
language="java"
聲明腳本語言的種類,暫時只能用"java"
extends="package.class"
標明JSP編譯時需要加入的Java Class的全名,但是得慎重的使用它,它會限制JSP的編譯能力.
import="{package.class | package.* }, ..."
需要導入的Java包的列表,這些包就作用於程式段,表達式,以及聲明。
下面的包在JSP編譯時已經導入了,所以你就不需要再指明了:
java.lang.*
javax.servlet.*
javax.servlet.jsp.*
javax.servlet.http.*
session="true | false"
設定客戶是否需要HTTP Session.(學過ASP的人,應該對它不陌生)如果它為true,那么Session是有用的。
如果它有false,那么你就不能使用session對象,以及定義了scope=session的<jsp:useBean>元素。這樣的使用會導致錯誤.
預設值是true.
buffer="none | 8kb | sizekb"
buffer的大小被out對象用於處理執行後的JSP對客戶瀏覽器的輸出。預設值是8kb
autoFlush="true | false"
設定如果buffer溢出,是否需要強制輸出,如果其值被定義為true(預設值),輸出正常,如果它被設定為false,如果這個buffer溢出,就會導致一個意外錯誤的發生.如果你把buffer設定為none,那么你就不能把autoFlush設定為false.
isThreadSafe="true | false"
設定Jsp檔案是否能多執行緒使用。預設值是true,也就是說,JSP能夠同時處理多個用戶的請求,如果設定為false,一個jsp只能一次處理一個請求
info="text"
一個文本在執行JSP將會被逐字加入JSP中,你能夠使用Servlet.getServletInfo方法取回。
errorPage="relativeURL"
設定處理異常事件的JSP檔案。
isErrorPage="true | false"
設定此頁是否為出錯頁,如果被設定為true,你就能使用exception對象.
contentType="mimeType [ ;charset=characterSet ]" | "text/html;charset=ISO-8859-1"
設定MIME類型 。預設MIME 類型是: text/html, 預設字元集為 ISO-8859-1.