2020-03-29

第十四天????JSP & EL & JSTL


(一)JSP的回顧

一稠集、什么是JSP

? ? JSP:Java?Server?Pages(Java服務(wù)器端頁面)

? ? JSP就是HTML+Java代碼+JSP自身的東西組成

二薄翅、JSP由來

? ? Servlet技術(shù)生成動態(tài)網(wǎng)頁的時候很麻煩,需要通過Response獲得輸出流舷丹,調(diào)用print方法進行打印的抒钱。這種編程方式很麻煩,而且美工也不容易處理颜凯。SUN公司為了簡化動態(tài)網(wǎng)頁開發(fā)谋币,推出了JSP

三、JSP的運行原理

? ? JSP在執(zhí)行時症概,會被服務(wù)器翻譯為Servlet編譯執(zhí)行的蕾额,JSP就是一個Servlet

四、JSP腳本元素

<%! %>:JSP聲明彼城,翻譯成Servlet成員部分的內(nèi)容诅蝶,聲明變量、方法募壕、內(nèi)部類

<%= %>:翻譯成out.print()輸出的內(nèi)容调炬,在service方法內(nèi)部,用于生成HTML頁面源碼

<% %>:用于嵌入Java代碼司抱,會被翻譯成service方法內(nèi)部的代碼塊筐眷,聲明變量、內(nèi)部類

(二)JSP的注釋

一习柠、HTML的注釋

?? ?? ? <!--HTML的注釋-->

存在時機:存在JSP的源碼中匀谣,翻譯成Servlet后,注釋也存在资溃,在生成HTML響應(yīng)到頁面時武翎,注釋也存在

二、Java代碼的注釋

?? ?? ? <%?

?? ??? ??? ?//單行注釋?

?? ??? ??? ?/*多行注釋*/?

?? ??? ?? ? /**文檔注釋*/

?? ??? ?%>

存在時機:存在JSP的源碼中溶锭,翻譯成Servlet后宝恶,Java代碼的注釋也會存在,但是生成HTML響應(yīng)到頁面后,注釋就消失了

三垫毙、JSP注釋

?? ?? ? <%--JSP的注釋--%>

存在時機:存在JSP的源碼中霹疫,翻譯成Servlet后,注釋就沒有了

*注意:Java代碼注釋的話综芥,不要使用HTML的注釋

(三)JSP的指令元素的概述

一丽蝎、JSP指令元素的作用

? ? 用于指示JSP執(zhí)行的某些步驟

? ? 用于指示JSP表現(xiàn)的特定行為

二、JSP指令元素的語法

? ? <%@?指令名稱?屬性名稱=屬性的值 屬性名稱=屬性的值?%>

三膀藐、JSP指令元素的分類

? ? page指令:指示JSP的頁面設(shè)置屬性和行為

? ? include指令:指示JSP包含哪些其他頁面

? ? taglib指令:指示JSP頁面包含哪些標(biāo)簽庫

(四)JSP的指令

一屠阻、page指令

1、page指令簡介

? ? 寫法:<%@ page 屬性名=屬性值 %>

? ? Page指令用來定義JSP文件的全局屬性

? ? 這些屬性可以單獨使用额各,也可以幾個或多個同時使用

? ? 在JSP頁面中才写,只有import屬性可以出現(xiàn)多次绎速,其他屬性都只能出現(xiàn)一次

2袜炕、Page指令屬性

? ? language屬性:聲明使用腳本的語言锭吨,目前只能是Java

? ? extends屬性:標(biāo)明JSP編譯成Servlet的時候繼承的類,默認值是HttpJspBase

? ? session屬性:標(biāo)明JSP中是否可以直接使用session對象缸逃,默認值是true

? ? buffer屬性:標(biāo)明JSP對客戶端輸出緩沖區(qū)的大小针饥,默認值8KB

? ? autoFlush屬性:如果緩沖區(qū)大小溢出,是否自動刷出需频,默認值true

import屬性:用于導(dǎo)入Java包或類

?? ?contentType屬性:標(biāo)明JSP被瀏覽器解析和打開的時候采用的默認的字符集

?? ?pageEncoding屬性:JSP文件及JSP翻譯后的Servlet保存到硬盤上采用的字符集

? ? isErrorPage屬性:處理JSP頁面的異常

?? ?errorPage屬性:處理JSP頁面的異常

isELIgnored屬性:通知JSP是否忽略EL表達式

二丁眼、include和taglib指令

1、include指令

(1)include指令簡介

? ? 寫法:<%@ include?屬性名=屬性值%>

? ? 作用:在JSP頁面中靜態(tài)包含一個文件昭殉,同時由該JSP解析包含的文件內(nèi)容

(2)include指令屬性

? ? file屬性:指示JSP頁面包含的頁面的路徑

2苞七、include指令原理(靜態(tài)包含的原理)

? ? 注意:

?? ??? ?應(yīng)該將被包含的頁面結(jié)構(gòu)去掉

?? ?? ? 在被包含的頁面中定義變量,在包含的頁面中也可以使用

2挪丢、taglib指令

(1)taglib指令簡介

? ? 寫法:<%@ taglib?屬性名=屬性值%>

? ? 作用:用于在JSP頁面中引入標(biāo)簽庫

(2)taglib指令屬性

? ? uri屬性:引入的標(biāo)簽庫的路徑

? ? prefix屬性:引入的標(biāo)簽庫的別名(前綴)

(五)JSP的內(nèi)置對象

一蹂风、JSP的內(nèi)置對象概述

1、什么是JSP的內(nèi)置對象

?? ?JSP的內(nèi)置對象:指的是可以直接在JSP頁面中使用的對象

2乾蓬、JSP的內(nèi)置對象有哪些(9大內(nèi)置對象)

? ? request:從客戶端向服務(wù)器發(fā)送的請求對象

? ? response:從服務(wù)器端向客戶端作出的響應(yīng)對象

? ? session:服務(wù)器為客戶端創(chuàng)建會話對象

? ? application:代表應(yīng)用惠啄,就是獲得的ServletContext對象

? ? out:向輸出流寫入內(nèi)容的對象

? ? page:當(dāng)前的JSP翻譯成Servlet后的對象的引用

? ? pageContext:本JSP頁面的上下文對象

? ? config:本JSP的ServletConfig對象

? ? exception:表示JSP頁面運行時產(chǎn)生的異常對象

3、JSP的內(nèi)置對象具體類型

? ??request HttpServletRequest

?? ?response HttpServletResponse

?? ?session HttpSession

?? ?application ServletContext

?? ?out JspWriter

?? ?page Object

?? ?pageContext PageContext

?? ?config ServletConfig

?? ?exception Throwable

(六)pageContext對象的概述

一pageContext對象簡介

?? ?pageContext對象直接翻譯為“頁面的上下文”對象任内,代表的是當(dāng)前頁面運行的一些屬性撵渡,它是javax.servlet.jsp.PageContext類的實例對象

二、pageContext對象作用

1死嗦、提供了page范圍的數(shù)據(jù)存取的方法

?? ?? ? 向page范圍中存入數(shù)據(jù)

?? ??? ?? ??setAttribute(String name, Object value)

?? ?? ? 從page范圍獲取數(shù)據(jù)

?? ??? ?? ??getAttribute(String name)

?? ??? ?從page范圍移除數(shù)據(jù)

?? ??? ?? ??removeAttribute(String name)

?? ?? ? 查詢屬性的方法

?? ??? ?? ??findAttribute(String name)

2趋距、通過這個對象獲得其它的8個內(nèi)置對象

?? ??? ?getException()

?? ??? ?getPage()

?? ??? ?getRequest()

?? ??? ?getResponse()

?? ??? ?getServletConfig()

?? ??? ?getServletContext()

?? ??? ?getSession()

?? ?? ??getOut()

(七)JSP的四個作用范圍

一、JSP的四個作用范圍概述

1越除、PageScope:頁面范圍

?? ?? ? 頁面范圍指的是在當(dāng)前的頁面內(nèi)有效节腐,出了這個頁面外盯,用pageContext保存的數(shù)據(jù)就無效了

2、RequestScope:請求范圍

?? ?? ? 從客戶端向服務(wù)器發(fā)送一次請求翼雀,服務(wù)器對這次請求作出了響應(yīng)之后饱苟,用request保存的數(shù)據(jù)就無效了

3、SessionScope:會話范圍

?? ?? ? 每個瀏覽器向服務(wù)器發(fā)送請求(可以是多次請求)锅纺,到該會話結(jié)束(瀏覽器關(guān)閉或?qū)⒅氨4嬖赟ession中的數(shù)據(jù)銷毀了)

4掷空、ApplicationScope:應(yīng)用范圍

?? ?? ? 在整個應(yīng)用(項目)中任意的地方都可以獲取

二肋殴、JSP的四個作用范圍演示

三囤锉、pageContext對象向四個域范圍存取數(shù)據(jù)

關(guān)閉瀏覽器再訪問

findAttribute方法

查找屬性方法:先根據(jù)小范圍的名稱進行查找,如果找到了就返回护锤,如果沒有找到就會去比其大一個域的范圍進行查找

(八)JSP的動作標(biāo)簽

一官地、JSP的動作標(biāo)簽的概述

1、什么是JSP的動作標(biāo)簽

?? ?JSP的動作標(biāo)簽用于在JSP頁面中提供業(yè)務(wù)邏輯功能烙懦,避免在JSP頁面中直接編寫Java代碼驱入,會造成JSP頁面難以維護

2、常用的動作標(biāo)簽

<jsp:forward/>:請求轉(zhuǎn)發(fā)

<jsp:include/>:包含(動態(tài)包含)

<jsp:param/>:傳遞參數(shù)

3氯析、演示JSP的動作標(biāo)簽

二亏较、靜態(tài)包含和動態(tài)包含的區(qū)別

? ? 動態(tài)包含的原理

(九)EL

一、EL的概述

1掩缓、什么是EL

? ? EL:Expression Language(表達式語言)

2雪情、EL作用

? ? EL和JSTL一起使用,取代JSP頁面中嵌入Java代碼的寫法

3你辣、EL功能

? ? EL獲取數(shù)據(jù)

? ? EL執(zhí)行運算

? ? EL獲取Web開發(fā)常用的對象

? ? EL調(diào)用Java方法

4巡通、EL語法

? ? ${ EL表達式 }

二、EL獲取數(shù)據(jù)

1舍哄、EL如何獲取數(shù)據(jù)

? ? EL表達式語句在執(zhí)行的時候宴凉,會調(diào)用pageContext.findAttribute()方法,分別從page表悬、request弥锄、session、application范圍查找相應(yīng)對象蟆沫,找到就會返回相應(yīng)對象籽暇,找不到返回""(不是null,是空的字符串)饥追,EL所獲取的數(shù)據(jù)需要在四個作用范圍中

2图仓、演示EL獲取數(shù)據(jù)

三、EL獲取數(shù)組和集合中的數(shù)據(jù)

1但绕、獲取數(shù)組的數(shù)據(jù)

2救崔、獲取List集合的數(shù)據(jù)

3惶看、獲取Map集合的數(shù)據(jù)

注意:

如果map的key中包含了特殊字符,就不能使用.必須使用[]

.是用來獲取對象的屬性的

[]是用來獲得下標(biāo)的

四六孵、EL執(zhí)行運算

1纬黎、執(zhí)行算數(shù)運算

2、執(zhí)行關(guān)系運算

3劫窒、執(zhí)行邏輯運算

4本今、執(zhí)行三元運算

5、empty運算符


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末主巍,一起剝皮案震驚了整個濱河市冠息,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌孕索,老刑警劉巖逛艰,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搞旭,居然都是意外死亡散怖,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門肄渗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來镇眷,“玉大人,你說我怎么就攤上這事翎嫡∏范” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵钝的,是天一觀的道長翁垂。 經(jīng)常有香客問我,道長硝桩,這世上最難降的妖魔是什么沿猜? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮碗脊,結(jié)果婚禮上啼肩,老公的妹妹穿的比我還像新娘。我一直安慰自己衙伶,他們只是感情好祈坠,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著矢劲,像睡著了一般赦拘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芬沉,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天躺同,我揣著相機與錄音阁猜,去河邊找鬼。 笑死蹋艺,一個胖子當(dāng)著我的面吹牛剃袍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捎谨,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼民效,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了涛救?” 一聲冷哼從身側(cè)響起畏邢,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎州叠,沒想到半個月后棵红,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡咧栗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了虱肄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片致板。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖咏窿,靈堂內(nèi)的尸體忽然破棺而出斟或,到底是詐尸還是另有隱情,我是刑警寧澤集嵌,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布萝挤,位于F島的核電站,受9級特大地震影響根欧,放射性物質(zhì)發(fā)生泄漏怜珍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一凤粗、第九天 我趴在偏房一處隱蔽的房頂上張望酥泛。 院中可真熱鬧,春花似錦嫌拣、人聲如沸柔袁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捶索。三九已至,卻和暖如春灰瞻,著一層夾襖步出監(jiān)牢的瞬間腥例,已是汗流浹背燥筷。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留院崇,地道東北人肆氓。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像底瓣,于是被迫代替她去往敵國和親谢揪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1.學(xué)習(xí)內(nèi)容 JSP技術(shù)入門和常用指令 JSP的內(nèi)置對象&標(biāo)簽介紹 EL表達式&EL的內(nèi)置對象 2.JSP技術(shù)入門...
    WendyVIV閱讀 2,136評論 1 18
  • JSP總結(jié)(經(jīng)典) day1 JSP 定義: 1)Java Server Page, Java EE 組件捐凭,本...
    java日記閱讀 3,444評論 0 13
  • JSP & EL & JSTL (一)JSP的回顧 一拨扶、什么是JSP JSP:JavaServerPages(...
    李玉賢_8e75閱讀 219評論 0 0
  • JSP & EL & JSTL (一)JSP的回顧 一、什么是JSP JSP:Java Server Page...
    你養(yǎng)豬嗎閱讀 219評論 0 0
  • JSP & EL & JSTL (一)JSP的回顧 一茁肠、什么是JSP JSP:JavaServerPages(...
    王月坤閱讀 133評論 0 0