1.JSP九大隱式對象(內置對象)
Request
Response
Session
Application
Config
Page
exception
Out
pageContext
2.簡述page指令的各個屬性的值。
import屬性:page指令中唯一容許在同一文檔出現多次的屬性。屬性的值可以以逗號隔開。
指定jsp頁面轉換成servlet應該輸入的包。對於沒有明確指定包的類,將根據jsp頁面所在的包(生成的servlet的目錄)決定類的包的位置。www.2cto.com
這意味著,將在jsp頁面所在的包來尋找該類。
一定要將實用工具類和bean包放在指定的包中。不要依賴於自動導入。
language屬性:
用於指定在腳本元素中使用的腳本語言,默認java。在jsp2.0規范中,只能是java。
contentType和pageEncodeing屬性:
contentType屬性設置發送到客戶端文檔的響應報頭的MIME類型和字符編碼。多個使用;號分開。
pageEncodeing屬性只用於更改字符編碼。
servlet默認MIME是text/plain,jsp默認MIME是text/html。
session屬性:控制頁面是否參與會話
默認true。如果存在已有會話,則預定義session變量,綁定到已有會話中。否則創建新會話將其綁定到session。
對於高流量網站,設置false可以節省大量服務器內存。
設置false表示不自動創建新會話,在jsp頁面轉換為servlet時,這時對變量session的訪問導致錯誤。
設置為false並不是禁用會話跟蹤,它只是阻止jsp頁面為不擁有會話的用戶創建新會話。
* 對於不需要會話跟蹤的頁面那就設置為false;當設置為false時session對象是不可訪問的。
isELlgnored屬性:
定義在jsp頁面中是否執行或忽略EL表達式。true表示忽略,false表示執行。
默認值依賴於web.xml的版本。servlet2.3之前默認true,servlet2.4默認false。
用於JSP版本不一致造成使用EL表達式出現的問題。使用:isELlgnored="true";
buffer和autoFlush屬性:
buffer屬性指定out對象(JspWriter)使用的緩沖區大小,以kb為單位,默認8kb。
none表示不使用緩沖區。這樣要求設置報頭或狀態代碼的jsp元素要出現在文件的頂部,任何HTML內容之前。
autoFlush屬性控制當緩沖區滿了後,是自動清空輸出緩沖區(默認true),還是在緩沖區溢出後拋出異常(false)。
在buffer=none的時候,autoFlush=false是錯誤的。
info屬性:
定義一個可以在servlet中通過getServletInfo方法獲取的字符串。
jsp容器做的是在servlet中生成getServletInfo方法返回info屬性指定的String。
errorPage和isErrorPage屬性:指定頁面專用的錯誤頁面。
errorPage屬性用來指定一個jsp頁面,由該頁面來處理當前頁面中拋出但沒有捕獲的任何異常。指定的頁面可以通過exception變量訪問異常信息。
isErrorPage屬性表示當前頁是否可以作為其他jsp頁面的錯誤頁面。true或false。
錯誤頁面應該放在WEB-INF目錄下面,只讓服務器訪問,也不會生成轉發的調用,客戶端只能看到最初的請求頁面URL,看不到錯誤頁面的URL。
如果為整個web應用程序指定錯誤頁面,或為應用中不同類型的錯誤指定錯誤處理頁面,使用web.xml中的error-page元素。
如果一個頁面通過該屬性定義了專有的錯誤頁面,那麼在web.XML文件中定義的任何錯誤頁面不會被使用。
只能夠在錯誤處理頁面中使用錯誤對象exception。
isThreadSafe屬性:采用顯式的同步來代替該方法。
控制由jsp頁面生成的servlet是否允許並發訪問(默認true允許)。
這種阻止並發訪問的實現是基於SingleThreadModel接口。所以,避免使用isThreadSafe屬性。
extends屬性:避免使用。這是服務器提供商該做的事情。父類必須是對HttJspPage接口的實現類。而HttJspPage是應用於HTTP協議的請求和響應的JspPage擴展接口。
指定JSP頁面生成的servlet的超類。