8、JSP進階

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>

靜態包含和動態包含的區別

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章