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的時候繼承的類,默認(rèn)值是HttpJspBase? ? session屬性:標(biāo)明JSP中是否可以直接使用session對象,默認(rèn)值是true? ? buffer屬性:標(biāo)明JSP對客戶端輸出緩沖區(qū)的大小,默認(rèn)值8KB? ? autoFlush屬性:如果緩沖區(qū)大小溢出,是否自動刷出,默認(rèn)值trueimport屬性:用于導(dǎo)入Java包或類? ? contentType屬性:標(biāo)明JSP被瀏覽器解析和打開的時候采用的默認(rèn)的字符集? ? 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)包含的原理)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ù)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)簽(九)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獲取web開發(fā)常用對象1、常用對象有哪些? ? EL表達式定義了11個web開發(fā)常用對象。使用這些對象可以很方便的獲取Web開發(fā)中的一些常見對象,并可以讀取這些對象中的數(shù)據(jù)pageContext 相當(dāng)于JSP內(nèi)置對象中的pageContextpageScope 獲取page域下的名稱的數(shù)據(jù)requestScope 獲取request域下的名稱的數(shù)據(jù)sessionScope 獲取session域下的名稱的數(shù)據(jù)applicationScope 獲取application域下的名稱的數(shù)據(jù)param在頁面中接收請求參數(shù)(接收一個名稱對應(yīng)一個值的參數(shù))paramValues 在頁面中接收請求參數(shù)(接收一個名稱對應(yīng)多個值的參數(shù)),返回一個數(shù)組header在頁面上獲取請求頭(獲取一個Key對應(yīng)一個Value頭)headerValues在頁面上獲取請求頭(獲取一個Key對應(yīng)多個Value頭)cookie 訪問Cookie的名稱和值(${cookie.key.name}${cookie.key.value})initParam 獲取全局初始化參數(shù)的值(十)JSTL一、JSTL的概述1、什么是JSTLJSTL:JSP的標(biāo)準(zhǔn)標(biāo)簽庫2、為什么學(xué)習(xí)JSTL? ? 主要和EL來取代傳統(tǒng)頁面上直接嵌入Java代碼的寫法,提升程序可讀性、維護性和方便性3、JSTL的版本? ? JSTL1.0、JSTL1.1和JSTL1.2? ? ? ? 1.0版本不支持EL表達式? ? ? ? 1.1和1.2支持了EL表達式4、JSTL的標(biāo)簽庫? ? c標(biāo)簽(Core標(biāo)簽庫)? ? fmt標(biāo)簽(國際化標(biāo)簽庫)? ? xml標(biāo)簽? ? sql標(biāo)簽? ? jstl函數(shù)庫(EL函數(shù))二、JSTL的入門1、引入JSTL的jar包2、新建JSP頁面3、引入標(biāo)簽庫4、使用JSTL三、JSTL的if標(biāo)簽1、if標(biāo)簽的使用2、if標(biāo)簽的屬性? ? test屬性:條件? ? var屬性:將test中的條件的值賦給一個變量,可以在var中定義這個變量? ? scope屬性:作用范圍四、JSTL的foreach標(biāo)簽foreach標(biāo)簽的使用
3月24日
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- JSP總結(jié)(經(jīng)典) day1 JSP 定義: 1)Java Server Page, Java EE 組件,本...
- 一、jsp介紹 jsp作用jsp全稱java server pages(java服務(wù)器頁面),本質(zhì)是一個servl...
- 1.學(xué)習(xí)內(nèi)容 JSP技術(shù)入門和常用指令 JSP的內(nèi)置對象&標(biāo)簽介紹 EL表達式&EL的內(nèi)置對象 2.JSP技術(shù)入門...