JSP & EL & JSTL(一)JSP的回顧一、什么是JSP? ? JSP:Java Server Pages(Java服務器端頁面)? ? JSP就是HTML+Java代碼+JSP自身的東西組成二、JSP由來? ? Servlet技術生成動態(tài)網頁的時候很麻煩菜枷,需要通過Response獲得輸出流鹊杖,調用print方法進行打印的一也。這種編程方式很麻煩闸昨,而且美工也不容易處理殷勘。SUN公司為了簡化動態(tài)網頁開發(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ū)大小溢出加酵,是否自動刷出,默認值trueimport屬性:用于導入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頁面運行時產生的異常對象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內置對象中的pageContextpageScope 獲取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见咒、什么是JSTLJSTL: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標簽的使用
3月24日
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門族购,熙熙樓的掌柜王于貴愁眉苦臉地迎上來壳贪,“玉大人,你說我怎么就攤上這事寝杖∥ナ” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵瑟幕,是天一觀的道長磕蒲。 經常有香客問我留潦,道長,這世上最難降的妖魔是什么辣往? 我笑而不...
- 正文 為了忘掉前任兔院,我火速辦了婚禮,結果婚禮上站削,老公的妹妹穿的比我還像新娘坊萝。我一直安慰自己,他們只是感情好许起,可當我...
- 文/花漫 我一把揭開白布十偶。 她就那樣靜靜地躺著,像睡著了一般园细。 火紅的嫁衣襯著肌膚如雪惦积。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼爱只,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了招刹?” 一聲冷哼從身側響起恬试,我...
- 正文 年R本政府宣布丹弱,位于F島的核電站德撬,受9級特大地震影響铲咨,放射性物質發(fā)生泄漏。R本人自食惡果不足惜砰逻,卻給世界環(huán)境...
- 文/蒙蒙 一鸣驱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蝠咆,春花似錦、人聲如沸北滥。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽再芋。三九已至菊霜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間济赎,已是汗流浹背鉴逞。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 一咒钟、jsp介紹 jsp作用jsp全稱java server pages(java服務器頁面),本質是一個servl...