JSP指令元素的概述
- JSP指令元素的作用
- 用於指示JSP執行某些步驟
- 用於指示JSP表現特定行爲
- JSP指令元素的語法
- <%@ 指令名稱 屬性名稱=屬性的值 屬性名稱=屬性的值 %>
- JSP指令元素的分類
- page指令:指示JSP的頁面設置屬性和行爲
- include指令:指示JSP包含哪些其他頁面
- taglib指令:指示JSP頁面包含哪些標籤庫
JSP的指令——page指令
- page屬性用來定義JSP文件的全局屬性
- 這些屬性可以單獨使用,也可以幾個或多個同時使用
- 在JSP頁面中,只有import屬性可以出現多次,其他屬性都只能出現一次
- page指令屬性:
- import屬性:用於導入java包或類。
- contentType屬性:標名JSP被瀏覽器解析或者打開時採用的默認字符集。
- pageEncoding屬性:JSP文件 及JSP翻譯後的Servlet保存到硬盤上採用的字符集。
- language屬性:聲明使用腳本的語言,只能是java。
- extends屬性:標名JSP編譯成Servlet繼承的類,默認是HttpJspBase。
- session屬性:標名JSP中是否可以直接使用session對象,默認值true。
- buffer屬性:標名JSP對客戶端輸出緩衝區的大小,默認8kb。
- autofFlush屬性:如果緩衝區大小溢出,是否自動刷出,默認true。
- errorPage/isErrorPage屬性:處理JSP頁面異常。
- isElIgnored:通知JSP是否忽略EL表達式。
JSP的指令——include指令
- 在JSP頁面中靜態包含一個文件,同時由該JSP解析包含的文件內容。
- include指令屬性:
- file屬性:指示JSP頁面包含頁面路徑。(使用事項:應該將被包含的頁面結構去掉;在被包含的頁面中定義頁面,包含的頁面中還可以使用。)
- include指令原理(靜態包含原理)
JSP的指令——taglib指令
- 用於在JSP頁面中引入標籤庫。
- taglib指令屬性:
- uri屬性:引入的標籤庫的路徑。
- prefix屬性:引入的標籤庫的別名。
JSP的內置對象
- 指的是可以直接在JSP頁面中使用的對象。
- JSP的9大內置對象:
- request:從客戶端向服務器發送的請求對象。
- response:從服務器向客戶端的響應對象。
- session:服務器爲客戶端創建會話對象。
- application:代表應用,獲得的ServletContext對象。
- out:向輸出流寫入內容的對象。
- page:當前JSP頁面翻譯成Servlet後的對象的引用。
- pageContext:本JSP頁面的上下文對象。
- config:本JSP頁面的ServletConfig對象。
- exception:表示JSP頁面運行時產生的異常對象。
- JSP內置對象的具體類型(JSP編譯成servlet後的源碼可查):
- request:HttpServletRequest
- response:HttpServletResponse
- session:HttpSession
- application:ServletContext
- out:JspWriter
- page:Object
- pageContext:PageContext
- config:ServletConfig
- exception:Throwable
- pageContext對象介紹
- 代表當前頁面運行的一些屬性,是javax.servlet.jsp.PageContext類的實例對象。
- 作用:提供了page範圍的數據的存取方法(setAttribute等);通過這個對象可以獲取其他8個內置對象。
JSP的四個作用範圍
- PageScope:頁面範圍,在當前頁面內有效。
- RequestScope:請求範圍,在一次請求響應範圍內有效。
- SessionScope:會話範圍,在一次會話區間有效。
- ApplicationScope:應用範圍,在整個web項目中有效。
- pageContext對象向四個域範圍存取數據
- pageContext對象的findAttribute方法
查找屬性方法:先根據小範圍的名稱進行查找,如果找到了就返回,沒有找到就會去比其大一個的域的範圍進行查找。
JSP的動作標籤
JSP的動作標籤用於在JSP頁面提供業務邏輯的功能,避免在JSP頁面中直接編寫java代碼,造成JSP頁面難以維護。
JSP常用的動作標籤:
- jsp:forward/:請求轉發
- <jsp:forward page=“demo4/demo2,jsp” ></jsp:forward>
- jsp:include/:包含(動態包含)
- <jsp:include page=“demo4/demo2,jsp” ></jsp:include>