jsp

(一)JSP的回顧

一洞豁、什么是JSP

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

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

二幅聘、JSP由來

? ? Servlet技術生成動態(tài)網(wǎng)頁的時候很麻煩女揭,需要通過Response獲得輸出流肋杖,調用print方法進行打印的。這種編程方式很麻煩勘纯,而且美工也不容易處理局服。SUN公司為了簡化動態(tài)網(wǎng)頁開發(fā),推出了JSP

三屡律、JSP的運行原理

? ? JSP在執(zhí)行時腌逢,會被服務器翻譯為Servlet編譯執(zhí)行的降淮,JSP就是一個Servlet

四超埋、JSP腳本元素

<%! %>:JSP聲明搏讶,翻譯成Servlet成員部分的內容,聲明變量霍殴、方法媒惕、內部類

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

<% %>:用于嵌入Java代碼妒蔚,會被翻譯成service方法內部的代碼塊,聲明變量月弛、內部類

(二)JSP的注釋

一肴盏、HTML的注釋

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

存在時機:存在JSP的源碼中,翻譯成Servlet后帽衙,注釋也存在菜皂,在生成HTML響應到頁面時,注釋也存在

二厉萝、Java代碼的注釋

?? ?? ? <%?

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

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

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

?? ??? ?%>

存在時機:存在JSP的源碼中恍飘,翻譯成Servlet后,Java代碼的注釋也會存在谴垫,但是生成HTML響應到頁面后章母,注釋就消失了

三、JSP注釋

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

存在時機:存在JSP的源碼中翩剪,翻譯成Servlet后乳怎,注釋就沒有了

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

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

一前弯、JSP指令元素的作用

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

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

二舞肆、JSP指令元素的語法

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

三、JSP指令元素的分類

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

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

? ? taglib指令:指示JSP頁面包含哪些標簽庫

(四)JSP的指令

一博杖、page指令

1椿胯、page指令簡介

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

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

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

? ? 在JSP頁面中剃根,只有import屬性可以出現(xiàn)多次哩盲,其他屬性都只能出現(xiàn)一次

2、Page指令屬性

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

? ? extends屬性:標明JSP編譯成Servlet的時候繼承的類廉油,默認值是HttpJspBase

? ? session屬性:標明JSP中是否可以直接使用session對象,默認值是true

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

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

import屬性:用于導入Java包或類

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

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

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

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

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

二渣慕、include和taglib指令

1嘶炭、include指令

(1)include指令簡介

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

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

(2)include指令屬性

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

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


2眨猎、taglib指令

(1)taglib指令簡介

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

? ? 作用:用于在JSP頁面中引入標簽庫

(2)taglib指令屬性

? ? uri屬性:引入的標簽庫的路徑

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

(五)JSP的內置對象

一抑进、JSP的內置對象概述

1、什么是JSP的內置對象

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

2睡陪、JSP的內置對象有哪些(9大內置對象)

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

? ? response:從服務器端向客戶端作出的響應對象

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

? ? application:代表應用寺渗,就是獲得的ServletContext對象

? ? out:向輸出流寫入內容的對象

? ? page:當前的JSP翻譯成Servlet后的對象的引用

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

? ? config:本JSP的ServletConfig對象

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

3、JSP的內置對象具體類型

? ??request HttpServletRequest

?? ?response HttpServletResponse

?? ?session HttpSession

?? ?application ServletContext

?? ?out JspWriter

?? ?page Object

?? ?pageContext PageContext

?? ?config ServletConfig

?? ?exception Throwable

(六)pageContext對象的概述

一pageContext對象簡介

?? ?pageContext對象直接翻譯為“頁面的上下文”對象兰迫,代表的是當前頁面運行的一些屬性信殊,它是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個內置對象

?? ??? ?getException()

?? ??? ?getPage()

?? ??? ?getRequest()

?? ??? ?getResponse()

?? ??? ?getServletConfig()

?? ??? ?getServletContext()

?? ??? ?getSession()

?? ?? ??getOut()

(七)JSP的四個作用范圍

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

1须鼎、PageScope:頁面范圍

?? ?? ? 頁面范圍指的是在當前的頁面內有效鲸伴,出了這個頁面,用pageContext保存的數(shù)據(jù)就無效了

2晋控、RequestScope:請求范圍

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

3赡译、SessionScope:會話范圍

?? ?? ? 每個瀏覽器向服務器發(fā)送請求(可以是多次請求)仲吏,到該會話結束(瀏覽器關閉或將之前保存在Session中的數(shù)據(jù)銷毀了)

4、ApplicationScope:應用范圍

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

二蝌焚、JSP的四個作用范圍演示

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

findAttribute方法

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


(八)JSP的動作標簽

一许帐、JSP的動作標簽的概述

1、什么是JSP的動作標簽

?? ?JSP的動作標簽用于在JSP頁面中提供業(yè)務邏輯功能毕谴,避免在JSP頁面中直接編寫Java代碼成畦,會造成JSP頁面難以維護

2、常用的動作標簽

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

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

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

3涝开、演示JSP的動作標簽

(九)EL

一循帐、EL的概述

1、什么是EL

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

2舀武、EL作用

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

3、EL功能

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

? ? EL執(zhí)行運算

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

? ? EL調用Java方法

4银舱、EL語法

? ? ${ EL表達式 }

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

1跛梗、EL如何獲取數(shù)據(jù)

? ? EL表達式語句在執(zhí)行的時候,會調用pageContext.findAttribute()方法柿顶,分別從page、request操软、session嘁锯、application范圍查找相應對象,找到就會返回相應對象聂薪,找不到返回""(不是null家乘,是空的字符串),EL所獲取的數(shù)據(jù)需要在四個作用范圍中

2藏澳、演示EL獲取數(shù)據(jù)

五仁锯、EL獲取web開發(fā)常用對象

1、常用對象有哪些

? ? EL表達式定義了11個web開發(fā)常用對象翔悠。使用這些對象可以很方便的獲取Web開發(fā)中的一些常見對象业崖,并可以讀取這些對象中的數(shù)據(jù)

pageContext

相當于JSP內置對象中的pageContext

pageScope

獲取page域下的名稱的數(shù)據(jù)

requestScope

獲取request域下的名稱的數(shù)據(jù)

sessionScope

獲取session域下的名稱的數(shù)據(jù)

applicationScope

獲取application域下的名稱的數(shù)據(jù)

param

在頁面中接收請求參數(shù)(接收一個名稱對應一個值的參數(shù))

paramValues

在頁面中接收請求參數(shù)(接收一個名稱對應多個值的參數(shù)),返回一個數(shù)組

header

在頁面上獲取請求頭(獲取一個Key對應一個Value頭)

headerValues

在頁面上獲取請求頭(獲取一個Key對應多個Value頭)

cookie

訪問Cookie的名稱和值(${cookie.key.name}${cookie.key.value})

initParam

獲取全局初始化參數(shù)的值

(十)JSTL

一蓄愁、JSTL的概述

1双炕、什么是JSTL

JSTL:JSP的標準標簽庫

2、為什么學習JSTL

? ? 主要和EL來取代傳統(tǒng)頁面上直接嵌入Java代碼的寫法撮抓,提升程序可讀性妇斤、維護性和方便性

3、JSTL的版本

?? ?JSTL1.0丹拯、JSTL1.1和JSTL1.2

?? ?? ? 1.0版本不支持EL表達式

?? ?? ? 1.1和1.2支持了EL表達式

4站超、JSTL的標簽庫

? ? c標簽(Core標簽庫)

? ? fmt標簽(國際化標簽庫)

? ? xml標簽

? ? sql標簽

? ? jstl函數(shù)庫(EL函數(shù))

二、JSTL的入門

1乖酬、引入JSTL的jar包

2死相、新建JSP頁面

3、引入標簽庫

4咬像、使用JSTL

三媳纬、JSTL的if標簽

1、if標簽的使用

2施掏、if標簽的屬性

? ? test屬性:條件

? ? var屬性:將test中的條件的值賦給一個變量钮惠,可以在var中定義這個變量

? ? scope屬性:作用范圍

四、JSTL的foreach標簽

foreach標簽的使用

作者:小湯源O

鏈接:http://www.reibang.com/p/d28df007f597

來源:簡書

著作權歸作者所有七芭。商業(yè)轉載請聯(lián)系作者獲得授權素挽,非商業(yè)轉載請注明出處。




最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末狸驳,一起剝皮案震驚了整個濱河市预明,隨后出現(xiàn)的幾起案子缩赛,更是在濱河造成了極大的恐慌,老刑警劉巖撰糠,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酥馍,死亡現(xiàn)場離奇詭異,居然都是意外死亡阅酪,警方通過查閱死者的電腦和手機旨袒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來术辐,“玉大人砚尽,你說我怎么就攤上這事』源剩” “怎么了必孤?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瑞躺。 經(jīng)常有香客問我敷搪,道長,這世上最難降的妖魔是什么幢哨? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任购啄,我火速辦了婚禮,結果婚禮上嘱么,老公的妹妹穿的比我還像新娘狮含。我一直安慰自己,他們只是感情好曼振,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布几迄。 她就那樣靜靜地躺著,像睡著了一般冰评。 火紅的嫁衣襯著肌膚如雪映胁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天甲雅,我揣著相機與錄音解孙,去河邊找鬼。 笑死抛人,一個胖子當著我的面吹牛弛姜,可吹牛的內容都是我干的。 我是一名探鬼主播妖枚,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼廷臼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起荠商,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤寂恬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后莱没,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體初肉,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年饰躲,在試婚紗的時候發(fā)現(xiàn)自己被綠了牙咏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡属铁,死狀恐怖眠寿,靈堂內的尸體忽然破棺而出躬翁,到底是詐尸還是另有隱情焦蘑,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布盒发,位于F島的核電站例嘱,受9級特大地震影響,放射性物質發(fā)生泄漏宁舰。R本人自食惡果不足惜拼卵,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛮艰。 院中可真熱鬧腋腮,春花似錦、人聲如沸壤蚜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽袜刷。三九已至聪富,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間著蟹,已是汗流浹背墩蔓。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留萧豆,地道東北人奸披。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像涮雷,于是被迫代替她去往敵國和親源内。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內容

  • 1.學習內容 JSP技術入門和常用指令 JSP的內置對象&標簽介紹 EL表達式&EL的內置對象 2.JSP技術入門...
    WendyVIV閱讀 2,144評論 1 18
  • JSP總結(經(jīng)典) day1 JSP 定義: 1)Java Server Page, Java EE 組件,本...
    java日記閱讀 3,462評論 0 13
  • Part 1 @Description:Report of Servlet Basic, Part 1 @Date...
    susu2016閱讀 646評論 0 3
  • Jsp技術總結 1. 什么是JSP JSP即Java Server Pages膜钓,它和servlet技術一樣...
    java日記閱讀 1,662評論 0 18
  • jsp jsp可以認為是在html中嵌入java代碼的html文件 沒有jsp,我們寫動態(tài)頁面需要手動一行一行的r...
    AndroidCat閱讀 254評論 0 1