1. 程式人生 > >JavaWeb學習筆記 (八)JSP和JSTL

JavaWeb學習筆記 (八)JSP和JSTL

一.JSP

1.什麼是jsp

使用者角度:就是一個網頁()
程式設計師角度:就是一個java類,繼承了servlet
實質:html中內嵌了java程式碼

2.為什麼有jsp

html提供靜態的內容,不能滿足網頁動態的需求,
為了提升了使用者體驗,增加了客戶端和伺服器的互動性。

3.jsp三大編譯指令

在jsp編譯成servlet時起作用。
指令寫法<%@ 指令名字 %>

(1)page 指令
  • language

表明jsp頁面可以使用的語言

  • contentType

表明檔案是什麼型別以及用什麼編碼(是伺服器告訴瀏覽器


contentType=“text/html;charset=utf-8”
說明:MIME(Multipurpose Internet Mail Extensions) 多用途網際網路郵件擴充套件型別,用於設定某種副檔名檔案以特定的應用開啟==
如:text/html 表明這是一個文字檔案,用html開啟
video/mp4 表明這是一個視訊檔案,用mp4格式開啟

  • pageEncoding

JSP內容的編碼

  • extends

用於指定jsp轉換成java檔案後,繼承的父類,預設是httpJspBase,一般不修改

  • import

用來導包

  • session

用於表示在這個頁面能否直接使用session物件
只有兩個值,true或者false
ture代表可以直接在jsp中直接使用session,jsp轉換的java原始碼中有getSession()獲取的session物件的程式碼。
false則代表不能直接使用,jsp轉換的java程式碼中沒有獲取session物件的程式碼

  • errorPage isErrorPage

errorPage 其值為轉向出錯頁面的路徑
當頁面出錯時,轉向指定出錯頁面

isErrorPage 其值為true或者false
用來宣告這個頁面是否為出錯頁面

(2)include 指令

<%@ include file = “網頁路徑” %>
作用:包含另外一個jsp頁面

  • 背後的細節

將被包含的頁面的所有內容都放到包含頁面的轉換成的java程式碼中。

(3)taglib

<%@ taglib prefix=" " uri=" "%>

uri: 標籤庫路徑
prefix: 標籤庫別名

4.jsp動作指令

執行時的動作

  • <jsp: include page=" "></jsp:include>

包含指定的頁面, 這裡是動態包含,也就是不把包含頁面的所有元素拿過來,而是把它執行的結果拿過來。

  • <jsp: forward page=" "></jsp:forward>

直接跳轉到指定頁面,原來頁面的內容都不顯示。等同與以下程式碼
request.getRequestDispatcher(“跳轉頁面路徑”).forward(request,response);

  • <jsp:param value=" " name=" "></jsp:param>

在跳轉頁面的時候將引數攜帶過去,需要寫在跳轉頁面標籤的裡面。
在跳轉後頁面中,利用requset.getParameter()來過去傳遞過來的引數。

5. jsp的九大內建物件

所謂的內建物件就是不用建立就可以使用
pageContext
request
session
application

以上四個是作用域物件

out
exception
page
config
response

  1. 作用域

表示這些物件可以存值,他們的存值範圍有限定。
都是通過setAttribute()存值 使用getAttribute()取值

  1. 四個作用域的區別

pageContext 型別:PageContext 作用域限制與本頁面,通過這個物件可以拿到其他八個物件。
request 型別:HttpRequest 作用域限制與一次請求
session 型別:HttpSession 作用域限制域一次會話
application 型別 :servletContext 整個工程都可以訪問,伺服器關閉後就不能使用了

  1. out物件 和 response物件

out 型別:JspWriter
response 型別:HttpServletResponse
在這裡插入圖片描述
在這裡插入圖片描述
輸出結果並沒有按照程式碼的順序顯示。
這是因為out物件最終還是依靠response物件來進行輸出。因此,response先輸出自己的內容,然後再輸出out物件要輸出的內容。

  1. exception物件 page物件 與config物件

exception 型別:Throwable
page 型別:Object 其實就是這個jsp頁面翻譯成java類的例項
config 型別:ServletConfig

二. EL表示式

為了簡化jsp中java的程式碼

  • 寫法格式

${ 表示式 }
從指定域中取值
${ pageScope.name}
${ requestScope.name}
${sessionScope.name}
${applicationScope.name }
name為在域中儲存的key值
如果直接用${ name },按照作用域物件由作用域有小到大找name對應的值

  • 取值方式

(1)如果值有下標,直接用 名字[]取值
(2)如果沒有下標,直接使用 . 的 方式來取值

  • EL物件的11個內建物件

pageScope
requestScope
sessionScope
applicationScope

header 請求頭資訊
headerValues
param 請求攜帶的引數
params
cookie
initparam
pageContext

三. JSTL

  1. 定義

jsp standard tag library jsp標準標籤庫
作用:簡化jsp程式碼的編寫,替換<% %>寫法,一般於EL表示式配合

  1. 用法

(1) 匯入jar檔案到工程webContent/Web-inf/lib jstl.jar standard.jar
(2) jsp頁面使用taglib指令,引入標籤庫
(3) 如果想支援 EL 表示式,那麼引入的 標籤庫必須選擇1.1版本

在這裡插入圖片描述

  1. 常用標籤

    <c:set> </c:set>
    在這裡插入圖片描述

<c:if > </c:if>
當滿足if裡面的語句時,將會執行這個標籤中的語句
在這裡插入圖片描述

<c:foreach begin=" " end=" "></c:foreach>
在這裡插入圖片描述