Java Web程序設(shè)計(jì)項(xiàng)目實(shí)戰(zhàn)(微課版)課件 廖麗 項(xiàng)目7、8 EL和JSTL技術(shù)、智慧金融信貸管理系統(tǒng)_第1頁
Java Web程序設(shè)計(jì)項(xiàng)目實(shí)戰(zhàn)(微課版)課件 廖麗 項(xiàng)目7、8 EL和JSTL技術(shù)、智慧金融信貸管理系統(tǒng)_第2頁
Java Web程序設(shè)計(jì)項(xiàng)目實(shí)戰(zhàn)(微課版)課件 廖麗 項(xiàng)目7、8 EL和JSTL技術(shù)、智慧金融信貸管理系統(tǒng)_第3頁
Java Web程序設(shè)計(jì)項(xiàng)目實(shí)戰(zhàn)(微課版)課件 廖麗 項(xiàng)目7、8 EL和JSTL技術(shù)、智慧金融信貸管理系統(tǒng)_第4頁
Java Web程序設(shè)計(jì)項(xiàng)目實(shí)戰(zhàn)(微課版)課件 廖麗 項(xiàng)目7、8 EL和JSTL技術(shù)、智慧金融信貸管理系統(tǒng)_第5頁
已閱讀5頁,還剩118頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目七EL和JSTL技術(shù)

項(xiàng)目要

求本項(xiàng)目是EL和JSTL技術(shù)的應(yīng)用,主要是完成表達(dá)式語言及JSTL標(biāo)準(zhǔn)標(biāo)簽庫的應(yīng)用,訪問數(shù)據(jù),訪問Web作用域?qū)ο笾袛?shù)據(jù),從而大大降低了開發(fā)難度。。

項(xiàng)目分

析要完成項(xiàng)目任務(wù),至少需要具備兩個(gè)基本條件:一是掌握常用的EL運(yùn)算符和常用函數(shù),二是掌JSTL標(biāo)簽庫的基本使用和核心標(biāo)簽使用方法,該項(xiàng)目分2個(gè)任務(wù),分別是應(yīng)用EL或JSTL獲取數(shù)據(jù)、應(yīng)用JSTL遍歷List集合中的元素。

項(xiàng)目目

標(biāo)【知識(shí)目標(biāo)】熟悉EL和JSTL的含義,掌握EL運(yùn)算符和EL表達(dá)式常用函數(shù),掌握J(rèn)STL標(biāo)準(zhǔn)標(biāo)簽庫的基本應(yīng)用,掌握自定義標(biāo)簽庫的開發(fā)技術(shù)。【能力目標(biāo)】能夠用EL表達(dá)式的語法訪問隱含對(duì)象,能使用EL表達(dá)式常用函數(shù),能應(yīng)用自定義標(biāo)簽庫的開發(fā)技術(shù)?!舅刭|(zhì)目標(biāo)】提高學(xué)生的發(fā)現(xiàn)問題、分析問題、解決問題的能力。

知識(shí)導(dǎo)

圖任務(wù)一應(yīng)用JSTL實(shí)現(xiàn)用戶個(gè)人信息獲取--任務(wù)演示在客戶端有一份信息表,需要客戶填寫信息后并提交,應(yīng)用EL表達(dá)式實(shí)現(xiàn)將用戶信息顯示在頁面上任務(wù)一應(yīng)用JSTL實(shí)現(xiàn)個(gè)人信息獲取–知識(shí)準(zhǔn)備EL的語法和標(biāo)識(shí)符EL訪問數(shù)據(jù)EL運(yùn)算符和隱式對(duì)象EL表達(dá)式的基本概念EL表達(dá)式關(guān)鍵字EL變量與常量EL運(yùn)算符的優(yōu)先級(jí)EL從作用域獲取數(shù)據(jù)1.EL表達(dá)式的基本概念EL(ExpressLanuage)表達(dá)式是JSP2.0引入的新內(nèi)容,EL可以簡化JSP開發(fā)中的對(duì)象引用,從而規(guī)范頁面代碼,增強(qiáng)程序的可讀性和可維護(hù)性,EL表達(dá)式具有以下特點(diǎn):(1)EL可以與JavaScript語句結(jié)合使用。(2)EL可以自動(dòng)進(jìn)行類型轉(zhuǎn)換。(3)EL不僅可以訪問一般變量,還可以訪問JavaBean中的屬性、嵌套屬性和集合對(duì)象。(4)在EL中,可以執(zhí)行算術(shù)運(yùn)算、邏輯運(yùn)算、關(guān)系運(yùn)算和條件運(yùn)算等。(5)在EL中,可以獲取pageContext對(duì)象,進(jìn)而獲取其他內(nèi)置對(duì)象。(6)在EL中,可以訪問JSP的作用域(request、session、application和page)2.EL表達(dá)式的語法和標(biāo)識(shí)符EL表達(dá)式以“$”開頭,表達(dá)式的內(nèi)容包含在“{}”中,具體格式如下:${表達(dá)式}“${表達(dá)式}”中的表達(dá)式必須符合EL的語法要求?!径鄬W(xué)一招】如果要在JSP網(wǎng)頁中顯示“${”字符串,有兩種方法,第一種是在前面加上“\”,即“\${}”,第二種則是在雙引號(hào)中嵌套單引號(hào)的寫法,即“${‘${’}”。(1)EL表達(dá)式的語法2.EL表達(dá)式的語法和標(biāo)識(shí)符在EL中,大部分變量、函數(shù)等名稱是由程序員自定義的,我們把這些名稱或符號(hào)稱之為標(biāo)識(shí)符。這些標(biāo)識(shí)符除了要遵循最基本的命名規(guī)范以外,還有一些必須遵守的命名規(guī)范:(1) 不能以數(shù)字開頭(2) 不能是EL中的隱式對(duì)象(3) 不能是EL中的關(guān)鍵字(4) 不能包含單引號(hào)(’),雙引號(hào)(“),斜線(/)等特殊符號(hào)比如:username、userpassword、_name等都是合法的用戶,而12name、user-name、user’pass是不合法的用戶。(2)EL表達(dá)式的標(biāo)識(shí)符3.EL訪問數(shù)據(jù)正常情況下,EL中直接寫servlet傳來的變量名稱就可直接訪問到數(shù)據(jù),但如果從servlet傳入的是一個(gè)復(fù)雜類型的數(shù)據(jù),例如JavaBean對(duì)象,或者是集合對(duì)象,就需要用到“.”或“[]”來訪問。(1)點(diǎn)運(yùn)算符(.)使用點(diǎn)運(yùn)算符可直接訪問到對(duì)象中的屬性或數(shù)組中的某個(gè)元素,假如servlet中傳入一個(gè)名為student的對(duì)象,而這個(gè)對(duì)象中有一個(gè)屬性為name,則訪問這個(gè)name屬性方法如下:${}(2)中括號(hào)運(yùn)算符([])與點(diǎn)運(yùn)算符一樣,中括號(hào)運(yùn)算符也是可以訪問對(duì)象中的屬性或數(shù)組中的某個(gè)元素。不同點(diǎn)在于,若是表達(dá)式中包含了一些特殊符號(hào),則必須要用中括號(hào)運(yùn)算符去訪問。方法如下:${student["user-name"]}3.EL訪問數(shù)據(jù)【腳下留心】中括號(hào)運(yùn)算符還可以訪問List集合或數(shù)組中的某個(gè)元素,例如${students[1]},其中的數(shù)字1是集合或數(shù)組中的索引值,表示訪問的是students集合中第二個(gè)元素。同時(shí),中括號(hào)運(yùn)算符和點(diǎn)運(yùn)算符可以混合使用,例如${students[1].username}4.EL運(yùn)算符和隱式對(duì)象(1)算數(shù)運(yùn)算符運(yùn)算符表達(dá)式+(加)${1+2}-(減)${1-2}*(乘)${1*2}/或div(除)${1/2}或${1div2}%或mod(取模)${1%2}或${1mod2}【腳下留心】在做加法運(yùn)算時(shí),一定要注意和Java中不同之處。在Java中,字符串與數(shù)字相加,最終結(jié)果為字符串拼接,如"1"+2結(jié)果為“12”,"1a"+2結(jié)果為“1a2”。而在el中,當(dāng)遇到兩種數(shù)據(jù)類型不一樣的數(shù)據(jù)進(jìn)行運(yùn)算時(shí),會(huì)嘗試著對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,若能夠轉(zhuǎn)換,則正常進(jìn)行運(yùn)算,若不能夠轉(zhuǎn)換,則會(huì)報(bào)錯(cuò)。例如,${"1"+2}結(jié)果為3,${"1a"+2}就會(huì)報(bào)錯(cuò)。4.EL運(yùn)算符和隱式對(duì)象(2)比較運(yùn)算符運(yùn)算符表達(dá)式>或gt(大于)${1>1}或${1gt1}<或lt(小于)${1<1}或${1lt1}==或eq(等于)${1==1}或${1eq1}!=或ne(不等于)${1!=1}或${1ne1}>=或ge(大于等于)${1>=1}或${1ge1}<=或le(小于等于)${1<=1}或${1le1}說明:因?yàn)閖sp頁面上不可避免的會(huì)用到前端頁面標(biāo)簽,而標(biāo)簽是需要用“<>”括起來使用,所以經(jīng)常出現(xiàn)頁面標(biāo)簽的“<>”括號(hào)和el中的大于小于符號(hào)產(chǎn)生沖突。所以建議使用“gt”、“l(fā)t”等英文縮寫來表示大于或小于。4.EL運(yùn)算符和隱式對(duì)象(3)邏輯運(yùn)算符運(yùn)算符表達(dá)式&&(and,邏輯與)${true&&false}或${trueandfalse}||(or,邏輯或)${true||false}或${trueorfalse}!(not,邏輯非)${!true}或${nottrue}4.EL運(yùn)算符和隱式對(duì)象(4)empty運(yùn)算符empty運(yùn)算符用于判斷對(duì)象或變量是否為null或?yàn)榭?。格式如下?{emptystudent}其中,student為要判斷的變量或?qū)ο?。【腳下留心】個(gè)對(duì)象或變量為空或?yàn)镹ull表達(dá)的意義是不一樣的,不過用empty運(yùn)算符來判斷的話,結(jié)果都是為true。4.EL運(yùn)算符和隱式對(duì)象(5)條件運(yùn)算符el的條件運(yùn)算符與Java中的三元運(yùn)算符幾乎一樣。格式如下:${(1<2)?a:b}很明顯,上述表達(dá)式的值為a。因?yàn)楸磉_(dá)式在判斷“1<2”的時(shí)候,判斷出結(jié)果為true,所以就執(zhí)行了“a”,并且最終返回也是“a”。如果將前面的表達(dá)式改為“1>2”,則結(jié)果為“b”。4.EL運(yùn)算符和隱式對(duì)象(6)隱式對(duì)象EL的隱式對(duì)象比JSP要多,有11個(gè),所以EL獲取數(shù)據(jù)比較JSP要方便很多。常見的隱式對(duì)象如session、cookie、header、headerValues、param和paramValues等。如果要獲取某個(gè)隱式對(duì)象內(nèi)部的某個(gè)值,使用${隱式對(duì)象名稱["元素"]}這種格式就可以。比如要獲取HTTP頭部中host的值,就可這樣寫:${header["host"]}注意:不要把JSP里的隱式對(duì)象和EL的隱式對(duì)象混淆,其中,pageContext對(duì)象是EL和JSP所共有的4.EL運(yùn)算符和隱式對(duì)象(6)隱式對(duì)象EL隱式對(duì)象作用pageContext與JSP的pageContext隱式對(duì)象功能相同,可以訪問JSP的隱式對(duì)象。pageScope訪問pageScope范圍的變量。requestScope訪問requestScope范圍的變量。sessionScope訪問sessionScope范圍的變量。applicationScope訪問applicationScope范圍的變量。Param獲取request對(duì)象參數(shù)的單個(gè)值。paramValues獲取request對(duì)象參數(shù)的一個(gè)數(shù)值數(shù)組。header將請(qǐng)求頭名稱映射到單個(gè)cookie對(duì)象。headerValues將請(qǐng)求頭名稱映射到一個(gè)數(shù)值數(shù)組。Cookie將cookie名稱映射到單個(gè)cookie對(duì)象。initParam將上下文初始化參數(shù)名稱映射到單個(gè)值。4.EL運(yùn)算符和隱式對(duì)象(6)隱式對(duì)象隱式對(duì)象又分為三種類型:訪問作用域范圍的隱式對(duì)象EL中訪問作用域范圍的隱式對(duì)象有4個(gè),applicationScope、sessionScope、requestScope、pageScope。這4個(gè)對(duì)象分別可以獲取到不同的域的范圍中的信息,而不會(huì)獲取到其他域中的信息。(2)訪問環(huán)境信息的隱式對(duì)象EL中訪問環(huán)境信息的隱式對(duì)象有6個(gè),cookie、initParam、header、param、headerValues、paramValues。其中用的較多的主要是param和paramValues,這兩個(gè)隱式對(duì)象專用于獲取客戶端訪問jsp是傳遞的請(qǐng)求參數(shù)。(3)PageContext隱式對(duì)象可用應(yīng)用EL獲取pageContext對(duì)象5.EL表達(dá)式的關(guān)鍵字關(guān)鍵字是編程語言里事先定義好并賦予了特殊含義的單詞,EL中定義了許多關(guān)鍵字,EL中常用關(guān)鍵字如下:andeqgttrueinstanceofdivornelefalseltnullmodnotge6.EL變量與常量變量EL中的變量就是一個(gè)基本的存儲(chǔ)單元,不用事先定義就可以直接使用。EL可以將變量映射到對(duì)象上。(2)常量常量不能被改變,EL包含多種常量,以下一一介紹:整型常量整型常量與Java語言中十進(jìn)制整型相同,取值范圍是即(-2)^63~2^63之間。浮點(diǎn)數(shù)常量浮點(diǎn)數(shù)常量用整數(shù)部分加小數(shù)部分表示,也可以用指數(shù)形式表示,取值范圍是與Java語言中Double相同,即4.9E-324~1.8E308之間布爾常量與Java語言中Boolean相同,分別為true和false字符串常量字符串常量是用單引號(hào)和雙引號(hào)引起來的一串字符。需要注意的是,如果需要表示字符的本身就是單引號(hào)或雙引號(hào),則需要使用轉(zhuǎn)義符轉(zhuǎn)義。這里的轉(zhuǎn)義符就是斜杠(\),如“\'”或“\"”。Null常量Null表示對(duì)象引用時(shí)是空的,它只有一個(gè)null值。7.EL運(yùn)算符的優(yōu)先級(jí)EL中的“()”與java中的括號(hào)一樣,作用都是用于改變其他運(yùn)算符的優(yōu)先級(jí)。比如表達(dá)式${1*2+3},這里本應(yīng)該先算1*2,再將得到的結(jié)果做+3的運(yùn)算,但是如果給2+3加上括號(hào)比如${1*(2+3)},則會(huì)先計(jì)算2+3的和,在于1相乘。常見的運(yùn)算符優(yōu)先級(jí)從最高到最低的順序依次是:“[]”和“.”運(yùn)算符“()”括號(hào)“!”、“not”邏輯非運(yùn)算符與“empty”運(yùn)算符“*”、“/”、“div”、“%”、“mod”“+”、“-”運(yùn)算符“<”、“>”、“<=”、“>=”、“l(fā)t”、“gt”、“l(fā)e”、“ge”比較運(yùn)算符“==”、“!=”、“eq”、“ne”比較運(yùn)算符“&&”或“and”邏輯運(yùn)算符“||”或“or”邏輯運(yùn)算符“?:”條件運(yùn)算符8.EL從作用域獲取數(shù)據(jù)在JSP2.0之前,我們只能使用如下代碼訪問系統(tǒng)作用域的值:<%=session.getAttribute("name")%>使用EL以后,就可以用如下代碼訪問到同樣的信息:${name}下面則列出幾種EL從不同作用域中獲取數(shù)據(jù)的方法:(1)使用EL表達(dá)式從request作用域中獲取數(shù)據(jù)jsp腳本:<%=request.getAttribute("name")%>使用EL表達(dá)式替換上面的腳本:${requestS}(2)使用EL表達(dá)式從session作用域中獲取數(shù)據(jù)jsp腳本:<%=session.getAttribute("name")%>使用EL表達(dá)式替換上面的腳本:${sessionS}(3)使用EL表達(dá)式從application作用域中獲取數(shù)據(jù)jsp腳本:<%=application.getAttribute("name")%>使用EL表達(dá)式替換上面的腳本:${applicationS}任務(wù)一應(yīng)用JSTL實(shí)現(xiàn)用戶個(gè)人信息獲取–任務(wù)實(shí)施第一步,創(chuàng)建forminfo.jsp頁面任務(wù)一應(yīng)用JSTL實(shí)現(xiàn)用戶個(gè)人信息獲取–任務(wù)實(shí)施第二步,創(chuàng)建一個(gè)JavaBean,類名為UserInfo.javapublic

classUserInfo{privateStringusername;privateStringpwd;privateStringsex;privateString[]hobby=null;}任務(wù)一應(yīng)用JSTL實(shí)現(xiàn)用戶個(gè)人信息獲取–任務(wù)實(shí)施第三步,創(chuàng)建一個(gè)el.jsp頁,獲取表單的信息任務(wù)一應(yīng)用JSTL實(shí)現(xiàn)用戶個(gè)人信息獲取–任務(wù)拓展1應(yīng)用EL獲取Cookie對(duì)象的信息在JSP開發(fā)中經(jīng)常需要獲取客戶端的Cookie信息,為此,在EL中提供了Cookie隱式對(duì)象。該對(duì)象是一個(gè)集合了所有Cookie信息的Map集合,Map集合中元素的鍵為各個(gè)Cookie的名稱,值則為對(duì)應(yīng)的Cookie對(duì)象。${cookie.名稱}根據(jù)名稱獲取對(duì)應(yīng)的cookie對(duì)象。如,${cookie.JSESSIONID}${cookie.名稱.value}根據(jù)名稱獲取對(duì)應(yīng)cookie對(duì)象的值。如,${cookie.JSESSIONID.value}任務(wù)一應(yīng)用JSTL實(shí)現(xiàn)用戶個(gè)人信息獲取–任務(wù)拓展2.應(yīng)用EL獲取initParam對(duì)象的信息initParam對(duì)象用于獲取Web應(yīng)用初始化參數(shù)的值,下面通過一個(gè)案例具體講解initParam對(duì)象的使用。應(yīng)用EL獲取initParam對(duì)象,如圖所示。任務(wù)二-應(yīng)用JSTL實(shí)現(xiàn)商品展示--任務(wù)演示創(chuàng)建map集合,實(shí)現(xiàn)商品列表展示。任務(wù)二-應(yīng)用JSTL實(shí)現(xiàn)商品展示–知識(shí)準(zhǔn)備下載和安裝JSTLJSTL的概念JSTL中Core標(biāo)簽庫1JSTL的概念JSTL全稱是Javaserverpagesstandardedtaglibrary,譯作JSP標(biāo)準(zhǔn)標(biāo)簽庫,是由JCP(JavacommunityProces)所制定的標(biāo)準(zhǔn)規(guī)范,它主要提供給JavaWeb開發(fā)人員一個(gè)標(biāo)準(zhǔn)通用的標(biāo)簽庫,并由Apache的Jakarta小組來維護(hù)。開發(fā)人員可以利用這些標(biāo)簽取代JSP頁面上的Java代碼,從而提高程序的可讀性,降低程序的維護(hù)難度。JSTL標(biāo)簽是基于JSP頁面的,這些標(biāo)簽可以插入在JSP代碼中,本質(zhì)上JSTL也是提前定義好的一組標(biāo)簽,這些標(biāo)簽封裝了不同的功能,在頁面上調(diào)用標(biāo)簽時(shí),就等于調(diào)用了封裝起來的功能。JSTL標(biāo)簽庫的使用是為類彌補(bǔ)html表的不足,規(guī)范自定義標(biāo)簽的使用而誕生的。在告別modle1模式開發(fā)應(yīng)用程序后,人們開始注重軟件的分層設(shè)計(jì),不希望在jsp頁面中出現(xiàn)java邏輯代碼,同時(shí)也由于自定義標(biāo)簽的開發(fā)難度較大和不利于技術(shù)標(biāo)準(zhǔn)化產(chǎn)生了自定義標(biāo)簽庫。1JSTL的概念JSTL標(biāo)簽庫可分為以下5類:(1)核心標(biāo)簽庫:最常用的標(biāo)簽庫,為日常工作所提供通用支持。如判斷,循環(huán)等。(2)國際化(I18N)與格式化標(biāo)簽庫:支持多個(gè)語言(3)SQL標(biāo)簽庫:可用于操作數(shù)據(jù)庫(4)XML標(biāo)簽庫:可用于處理XML文件,包括XML節(jié)點(diǎn)解析,迭代等。(5)函數(shù)標(biāo)簽庫:通過在EL表達(dá)式中調(diào)用函數(shù)標(biāo)簽庫中的函數(shù)來實(shí)現(xiàn)特定的操作。1JSTL的概念以下是5個(gè)標(biāo)簽庫所對(duì)應(yīng)的taglib指令:標(biāo)簽庫URI前綴例核心標(biāo)簽庫/jstl/corec<c:tagname...>國際化(I18N)與格式化標(biāo)簽庫/jstl/fmtfmt<fmt:tagname...>SQL標(biāo)簽庫/jstl/sqlsql<sql:tagname...>XML標(biāo)簽庫/jstl/xx<x:tagname...>函數(shù)標(biāo)簽庫/jstl/fnfn<fn:tagname...>2下載和安裝JSTL(1)下載JSTL包從Apaceh的網(wǎng)站下載JSTL的jar包第一步進(jìn)入官網(wǎng),/taglibs/,點(diǎn)擊紅框中的“Standard”按鈕進(jìn)入jstl版本頁面2下載和安裝JSTL(1)下載JSTL包從Apaceh的網(wǎng)站下載JSTL的jar包第二步進(jìn)入jstl版本界面后,點(diǎn)擊“download”按鈕進(jìn)入下載界面2下載和安裝JSTL(1)下載JSTL包從Apaceh的網(wǎng)站下載JSTL的jar包第三步進(jìn)入下載界面后,會(huì)出現(xiàn)jstl各個(gè)jar包的下載連接,直接點(diǎn)擊需要下載的jar包即可下載,一般只需下載Impl和Spec即可2下載和安裝JSTL(2)導(dǎo)入JSTL包要在JSP頁面中使用JSTL,必須將JSTL標(biāo)簽庫添加到WEB應(yīng)用中,將下載的taglibs-standard-impl-1.2.5.jar和taglibs-standard-spec-1.2.5.jar復(fù)制到project7項(xiàng)目的web目錄下的WEB-INF文件夾下的lib文件夾里,在EclipseIDE中配置導(dǎo)入的兩個(gè)文件才可以正常使用,最后單擊apply。3JSTL中Core標(biāo)簽庫通過前面的講解可以知道JSTL包含5個(gè)標(biāo)簽庫,其中Core標(biāo)簽庫是JSTL中的核心標(biāo)簽庫,包含了Web應(yīng)用中通用操作的標(biāo)簽,下下對(duì)Core標(biāo)簽庫中常用的標(biāo)簽進(jìn)行詳細(xì)講解。(1)表達(dá)式標(biāo)簽表達(dá)式控制分類中包括<c:out>、<c:set>、<c:remove>、<c:chtch>4個(gè)標(biāo)簽,現(xiàn)在分別介紹它們的功能和語法。①<c:out>標(biāo)簽功能:用來顯示數(shù)據(jù)對(duì)象(字符串,表達(dá)式)的內(nèi)容和結(jié)果格式:<c:outvalue="thisisJSTL"escapeXml="true|false"default="defaultValue"/>【參數(shù)說明】:value:指定將要輸出的表達(dá)式。default:表示當(dāng)value的值為null時(shí),將輸出的默認(rèn)值。escapeXml:確定是否應(yīng)將結(jié)果中的字符(如<、>、&.、'、”等特殊的符號(hào))轉(zhuǎn)換為字符實(shí)體代碼,默認(rèn)值為true,即要轉(zhuǎn)換為實(shí)體代碼。如:字符“<”就可以轉(zhuǎn)換為“<”3JSTL中Core標(biāo)簽庫②<c:set>標(biāo)簽功能:主要用于將變量存取于JSP范圍中或JavaBean屬性中。格式:<c:setvar="varName"value="value"scope="page|request|session|application"/>【參數(shù)說明】:var:指定創(chuàng)建的變量的名稱,以存儲(chǔ)標(biāo)簽中指定的value值。value:指定表達(dá)式。scope:指定變量的生命周期,默認(rèn)值為page。③<c:remove>標(biāo)簽作用:主要用來從指定的JSP范圍內(nèi)移除指定的變量格式:<c:removevar="varName"[scope="page|request|session|application"]/>【參數(shù)說明】:scope:需要?jiǎng)h除的變量的所在范圍。var:需要?jiǎng)h除的變量或者對(duì)象屬性的名稱。如果沒有scope屬性,即采用默認(rèn)值,就相當(dāng)于調(diào)用PageContext.removeAttribute(varName)方法,如果指定了變量所在范圍,那么系統(tǒng)會(huì)調(diào)用PageContext.removeAttribute(varName,scope)方法。3JSTL中Core標(biāo)簽庫(2)流程控制標(biāo)簽流程控制標(biāo)簽包括<c:if>、<c:choose>、<c:when>、<c:otherwise>等。流程控制標(biāo)簽根據(jù)其test屬性值決定是否執(zhí)行其標(biāo)簽體中的內(nèi)容。①<c:if>標(biāo)簽作用:同程序中的if作用相同,用來實(shí)現(xiàn)條件控制。格式一:<c:iftest=”條件1”var=”name”[scope=”page|request|session|application”]>格式二:<c:iftest=”條件2”var=”name”[scope=”page|request|session|application”]>【參數(shù)說明】test:指定條件。var:用于保存test條件表達(dá)式判斷所返回的true或false值。scope指定var的范圍。3JSTL中Core標(biāo)簽庫3JSTL中Core標(biāo)簽庫3JSTL中Core標(biāo)簽庫任務(wù)二-應(yīng)用JSTL實(shí)現(xiàn)商品展示–任務(wù)實(shí)施第一步:創(chuàng)建User的bean類public

classUser{int

no;Stringname;double

score;}任務(wù)二-應(yīng)用JSTL實(shí)現(xiàn)商品展示–任務(wù)實(shí)施第二步:創(chuàng)建ListServlet任務(wù)二-應(yīng)用JSTL實(shí)現(xiàn)商品展示–任務(wù)實(shí)施第三步:創(chuàng)建phone_list.jsp<body><c:forEach

items="${list}"

var="phone">

<div

style="height:250px">

<img

src="${phone.image}"

width="170"

height="200"

style="display:inline-block;">

<p>

<a

href="product_info.html"

style='color:green'>${}</a>

</p>

<p>

<font

color="#FF0000">商城價(jià):¥${phone.price}</font>

</p>

</div></c:forEach></body>任務(wù)二-應(yīng)用JSTL實(shí)現(xiàn)商品展示–任務(wù)拓展URl相關(guān)標(biāo)簽通常會(huì)在JSP頁面巾中實(shí)現(xiàn)URL的重寫以及重定向等特殊功能。為了實(shí)現(xiàn)這些功能,Core標(biāo)簽庫也提供了相應(yīng)標(biāo)簽。這些標(biāo)簽包括<c:param>、<c:redirect>和<c:url>。下面將詳細(xì)介紹這3個(gè)標(biāo)簽的使用方法。任務(wù)二-應(yīng)用JSTL實(shí)現(xiàn)商品展示–任務(wù)拓展項(xiàng)目實(shí)訓(xùn)實(shí)訓(xùn)一應(yīng)用EL表達(dá)式顯示:好好學(xué)習(xí),天天向上!實(shí)訓(xùn)二應(yīng)用EL表達(dá)式設(shè)置頁面的背景色實(shí)訓(xùn)三遍歷集合中的元素是對(duì)象實(shí)訓(xùn)四應(yīng)用EL表達(dá)式實(shí)現(xiàn)一個(gè)計(jì)算器謝謝項(xiàng)目八智慧金融信貸管理系統(tǒng)

項(xiàng)目要

求針對(duì)目前蓬勃發(fā)展的貸款業(yè)務(wù),為了幫助政府等有關(guān)部門更好的了解我國各城市個(gè)人信貸的現(xiàn)狀,幫助銀行等金融機(jī)構(gòu)開發(fā)完整的借貸系統(tǒng),降低信用貸款風(fēng)險(xiǎn)率等,構(gòu)建了信貸管理系統(tǒng)。本項(xiàng)目主要將之前所有所學(xué)知識(shí)點(diǎn)結(jié)合起來,基于各種需求,分別使用對(duì)應(yīng)的技術(shù)將其實(shí)現(xiàn),最終將“智慧金融信貸管理系統(tǒng)”給完整的實(shí)現(xiàn)出來。

項(xiàng)目分

析本項(xiàng)目是基于大數(shù)據(jù)的MVC模式信貸數(shù)據(jù)分析平臺(tái)的開發(fā),整個(gè)信貸數(shù)據(jù)分析系統(tǒng)的架構(gòu)就是先將本項(xiàng)目準(zhǔn)備好的數(shù)據(jù)存入MySQL數(shù)據(jù)庫,使用MVC開發(fā)模式調(diào)取數(shù)據(jù)庫數(shù)據(jù),進(jìn)行前后段交互,最后通過Echarts實(shí)現(xiàn)數(shù)據(jù)可視化要完成項(xiàng)目任務(wù)。將該項(xiàng)目分4個(gè)任務(wù),用戶注冊(cè)功能實(shí)現(xiàn)、登錄功實(shí)現(xiàn)、申請(qǐng)貸款功能實(shí)現(xiàn)、申請(qǐng)還款功能實(shí)現(xiàn)。

項(xiàng)目目

標(biāo)【知識(shí)目標(biāo)】融會(huì)貫通JDBC數(shù)據(jù)庫、Servlet、內(nèi)置對(duì)象、EL表達(dá)式等知識(shí)?!灸芰δ繕?biāo)】提升學(xué)生的網(wǎng)站綜合開發(fā)能力?!舅刭|(zhì)目標(biāo)】提高學(xué)生的發(fā)現(xiàn)問題、分析問題、解決問題的能力。

知識(shí)導(dǎo)

圖任務(wù)一智慧金融信貸管理系統(tǒng)搭建-任務(wù)演示智慧金融信貸管理系統(tǒng)包括用戶注冊(cè)功能實(shí)現(xiàn)、登錄功實(shí)現(xiàn)、管理員登錄功能實(shí)現(xiàn)、申請(qǐng)貸款功能實(shí)現(xiàn)、后臺(tái)申請(qǐng)貸款用戶增刪改查功能,任務(wù)一智慧金融信貸管理系統(tǒng)搭建–知識(shí)準(zhǔn)備智慧金融信貸管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)系統(tǒng)整體系統(tǒng)架構(gòu)1.系統(tǒng)整體系統(tǒng)架構(gòu)2.智慧金融信貸管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)是各類用戶和各種應(yīng)用系統(tǒng)提供一個(gè)信息基礎(chǔ)設(shè)施和高效率的運(yùn)行環(huán)境。數(shù)據(jù)庫是數(shù)據(jù)共享系統(tǒng)的核心和基礎(chǔ),本系統(tǒng)主要采用的是關(guān)系數(shù)據(jù)庫管理系統(tǒng)MySQL。創(chuàng)建一個(gè)名為finance_manage的數(shù)據(jù)庫。該數(shù)據(jù)庫中包含36張表,但本書只節(jié)選了部分功能進(jìn)行講述,所以只需創(chuàng)建用戶信息表(user),貸款信息表(apply),管理員信息表(guser),即可。2.智慧金融信貸管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)2.智慧金融信貸管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)2.智慧金融信貸管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)任務(wù)一智慧金融信貸管理系統(tǒng)搭建–任務(wù)實(shí)施第一步,

在IDEA中創(chuàng)建Maven項(xiàng)目在IDEA中繼承創(chuàng)建Maven項(xiàng)目,打開IDEA,點(diǎn)擊“createNewProject”任務(wù)一智慧金融信貸管理系統(tǒng)搭建–任務(wù)實(shí)施在彈出的頁面中,選擇“maven”,在選擇JDK版本,建議1.8版本。最后點(diǎn)擊“Next”任務(wù)一智慧金融信貸管理系統(tǒng)搭建–任務(wù)實(shí)施輸入項(xiàng)目名稱finance_manage,點(diǎn)擊“finish”,如圖8-9所示,至此,項(xiàng)目創(chuàng)建完畢。任務(wù)一智慧金融信貸管理系統(tǒng)搭建–任務(wù)實(shí)施點(diǎn)擊“src->main->java”,右鍵“java”目錄,選擇“New->Package”,創(chuàng)建包,輸入域名倒寫的包路徑“.cqcvc”任務(wù)一智慧金融信貸管理系統(tǒng)搭建–任務(wù)實(shí)施第二步:pom.xml文件中添加依賴項(xiàng)目結(jié)構(gòu)已搭好,接下來在pom.xml文件中添加依賴。文件內(nèi)容如下:任務(wù)一智慧金融信貸管理系統(tǒng)搭建–任務(wù)實(shí)施第三步:創(chuàng)建配置文件“perties”在resources目錄下創(chuàng)建配置文件“perties”,用于做數(shù)據(jù)庫連接四要素的配置,任務(wù)二-智慧金融信貸管理系統(tǒng)注冊(cè)功能實(shí)現(xiàn)-任務(wù)演示本任務(wù)的功能是在一個(gè)新客戶沒有賬號(hào)時(shí),此時(shí)需要注冊(cè)賬號(hào),新用戶注冊(cè)成功后就會(huì)跳轉(zhuǎn)到登錄界面,若已有賬號(hào),可直接單擊登錄,任務(wù)二-智慧金融信貸管理系統(tǒng)注冊(cè)功能實(shí)現(xiàn)–知識(shí)準(zhǔn)備功能類圖功能描述注冊(cè)頁面功能時(shí)序圖1功能描述2功能類圖3注冊(cè)頁面功能時(shí)序圖任務(wù)二-智慧金融信貸管理系統(tǒng)注冊(cè)功能實(shí)現(xiàn)–任務(wù)實(shí)施第一步:創(chuàng)建register.jsp頁面在該模塊視圖部分是由一個(gè)JSP頁面構(gòu)成的,這個(gè)JSP頁面register.jsp,負(fù)責(zé)提交用戶的注冊(cè)信息到servlet控制器registerServlet,并負(fù)責(zé)顯示注冊(cè)是否成功的信息

<form

id="subform"

action="${pageContext.request.contextPath}/user/save"

method="post"

class="templatemo-login-form"

onsubmit="returncheckForm(this);"><input

type="text"

class="form-control"

name="username"

placeholder="用戶名"><input

id="pwd"

type="password"

class="form-control"

name="password"

placeholder="密碼"><input

id="rpwd"

type="password"

class="form-control"

name="password1"

placeholder="確認(rèn)密碼"><button

id="btn"

type="submit"

class="templatemo-blue-buttonwidth-100">注冊(cè)</button>

</div>

<p

style="text-align:center">

已有賬戶?<a

href="login.jsp">去登錄</a></form>任務(wù)二-智慧金融信貸管理系統(tǒng)注冊(cè)功能實(shí)現(xiàn)–任務(wù)實(shí)施第二步:注冊(cè)后臺(tái)功能實(shí)現(xiàn)(1)創(chuàng)建RegisterServlet類RegisterServlet類,用來接收注冊(cè)頁面發(fā)來的“/user/save”請(qǐng)求,核心代碼如下。任務(wù)二-智慧金融信貸管理系統(tǒng)注冊(cè)功能實(shí)現(xiàn)–任務(wù)實(shí)施(2)在UserDao接口中添加save()方法在創(chuàng)建好的UserDao接口中添加save()方法,代碼如下。package.cqcvc.dao;import.cqcvc.domain.User;publicinterfaceUserDao{intsave(Useruser);Userlogin(Useruser);}任務(wù)二-智慧金融信貸管理系統(tǒng)注冊(cè)功能實(shí)現(xiàn)–任務(wù)實(shí)施(3)UserDaoImpl類中實(shí)現(xiàn)save()方法在創(chuàng)建好的UserDaoImpl類中實(shí)現(xiàn)save()方法,實(shí)現(xiàn)注冊(cè)功能,核心代碼如下。任務(wù)三-智慧金融信貸管理系統(tǒng)登錄功能實(shí)現(xiàn)-任務(wù)演示用戶進(jìn)入登錄界面輸入賬號(hào)密碼后,點(diǎn)擊登錄,系統(tǒng)驗(yàn)證賬戶密碼正確后跳轉(zhuǎn)至首頁模塊。本任需要開發(fā)前端頁面提供用戶登錄操作。當(dāng)tomcat成功啟動(dòng)后,在瀏覽器輸入http://localhost:8080,就可以訪問到登錄界面任務(wù)三-智慧金融信貸管理系統(tǒng)登錄功能實(shí)現(xiàn)–知識(shí)準(zhǔn)備功能類圖功能描述注冊(cè)頁面功能時(shí)序圖1功能描述用戶進(jìn)入登錄界面輸入賬號(hào)密碼后,點(diǎn)擊登錄,系統(tǒng)驗(yàn)證賬戶密碼正確后跳轉(zhuǎn)至首頁模塊2功能類圖3注冊(cè)頁面功能時(shí)序圖任務(wù)三-智慧金融信貸管理系統(tǒng)注冊(cè)功能實(shí)現(xiàn)–任務(wù)實(shí)施第一步:創(chuàng)建login.jsp頁面依舊是在“webapp”下創(chuàng)建一個(gè)文件login.jsp。

<form

action="${pageContext.request.contextPath}/user/login"

method="POST"

class="templatemo-login-form"><input

type="text"

class="form-control"

name="username"

placeholder="用戶名"><input

type="password"

class="form-control"

name="password"

placeholder="密碼"><button

type="submit"

class="templatemo-blue-buttonwidth-100"

>登錄</button>

</div></form>任務(wù)三-智慧金融信貸管理系統(tǒng)注冊(cè)功能實(shí)現(xiàn)–任務(wù)實(shí)施第二步:登錄功能實(shí)現(xiàn)(1)創(chuàng)建“LoginServlet”類前端代碼暫時(shí)告一段落,接下來開發(fā)后臺(tái)核心控制器,在包“cqcvc”下,創(chuàng)建包“servlet”,并且新建“LoginServlet”類,任務(wù)三-智慧金融信貸管理系統(tǒng)注冊(cè)功能實(shí)現(xiàn)–任務(wù)實(shí)施任務(wù)三-智慧金融信貸管理系統(tǒng)注冊(cè)功能實(shí)現(xiàn)–任務(wù)實(shí)施任務(wù)三-智慧金融信貸管理系統(tǒng)注冊(cè)功能實(shí)現(xiàn)–任務(wù)實(shí)施任務(wù)三-智慧金融信貸管理系統(tǒng)注冊(cè)功能實(shí)現(xiàn)–任務(wù)實(shí)施任務(wù)三-智慧金融信貸管理系統(tǒng)注冊(cè)功能實(shí)現(xiàn)–任務(wù)實(shí)施任務(wù)四-智慧金融信貸管理系統(tǒng)貸款申請(qǐng)功能實(shí)現(xiàn)-任務(wù)演示本任務(wù)的功能是提供用戶貸款申請(qǐng)操作,這個(gè)頁面分為三個(gè)模塊,一是信息填寫,用戶在這個(gè)模塊可以填寫好申請(qǐng)數(shù)據(jù),點(diǎn)擊“提交”按鈕即可申請(qǐng),二是貸款流程,這個(gè)模塊提供了貸款申請(qǐng)的注意事項(xiàng)及問題答疑,三是聯(lián)系我們。任務(wù)四-智慧金融信貸管理系統(tǒng)貸款申請(qǐng)功能實(shí)現(xiàn)–知識(shí)準(zhǔn)備功能類圖功能描述注冊(cè)頁面功能時(shí)序圖1功能描述在信貸申請(qǐng)界面,用戶輸入姓名、年齡、性別、手機(jī)號(hào)、身份證號(hào)、工作年限、住房類型、年收入數(shù)、貸款金額點(diǎn)擊提交既可以進(jìn)行貸款申請(qǐng)2功能類圖3注冊(cè)頁面功能時(shí)序圖任務(wù)四-智慧金融信貸管理系統(tǒng)貸款申請(qǐng)功能實(shí)現(xiàn)–任務(wù)實(shí)施第一步:創(chuàng)建apply.jsp頁面在“webapp”下創(chuàng)建apply.jsp文件。此頁面主要功能就是貸款申請(qǐng)的信息填寫,頁面展示的核心代碼如下<formaction="${pageContext.request.contextPath}/applyUser"method="post"id="form1"onsubmit="returncheckForm(this);"><inputtype="text"class="form-control"name="name"id="loan_1"/><inputtype="text"name="year"id="loan_2“/><selectclass="form-control"type="text"name="sex"id="loan_3"</select><inputtype="text"name="phone"id="loan_4"/><inputtype="text"name="bodyphone"id="loan_5"/><inputtype="text"name="emp_length"id="loan_6"/><selecttype="text"name="home_ownership"id="loan_7“></select><inputtype="text"name="annual_inc"id="loan_8“/><inputtype="text"name="want_money"id="loan_9“/><inputtype="submit"value="提交"style="position:absolute;color:white;left:210px;background-color:#1c69e5;"/></form>任務(wù)四-智慧金融信貸管理系統(tǒng)貸款申請(qǐng)功能實(shí)現(xiàn)–任務(wù)實(shí)施第二步:參數(shù)校驗(yàn)代碼因?yàn)橛脩粼谇芭_(tái)頁面輸入?yún)?shù)時(shí),可能會(huì)因?yàn)榉N種原因出現(xiàn)一些不合規(guī)的參數(shù),比如參數(shù)為空或一些容易引起異常的特殊字符等。所以,開發(fā)者應(yīng)該考慮到這個(gè)問題,在參數(shù)提交時(shí)對(duì)于這些相關(guān)參數(shù)進(jìn)行校驗(yàn)。核心代碼如下:<scripttype="text/javascript">//驗(yàn)證輸入不為空的腳本代碼functioncheckForm(form1){…}任務(wù)四-智慧金融信貸管理系統(tǒng)貸款申請(qǐng)功能實(shí)現(xiàn)–任務(wù)實(shí)施第三步:申請(qǐng)功能實(shí)現(xiàn)在項(xiàng)目“servlet”包下創(chuàng)建ApplyServlet類,任務(wù)四-智慧金融信貸管理系統(tǒng)貸款申請(qǐng)功能實(shí)現(xiàn)–任務(wù)實(shí)施@WebServlet("/applyUser")publicclassApplyServletextendsHttpServlet{finalprivateApplyDaoapplyDaoImpl=newApplyDaoImpl();@Overrideprotectedvoidservice(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{…}}任務(wù)四-智慧金融信貸管理系統(tǒng)貸款申請(qǐng)功能實(shí)現(xiàn)–任務(wù)實(shí)施第四步:在“dao”下創(chuàng)建ApplyDao接口任務(wù)四-智慧金融信貸管理系統(tǒng)貸款申請(qǐng)功能實(shí)現(xiàn)–任務(wù)實(shí)施package.cqcvc.dao;import.cqcvc.domain.ApplyUser;importjava.util.List;publicinterfaceApplyDao{intsave(ApplyUserapplyUser);}任務(wù)四-智慧金融信貸管理系統(tǒng)貸款申請(qǐng)功能實(shí)現(xiàn)–任務(wù)實(shí)施第五步:在包“impl”下創(chuàng)建ApplyDaoImpl實(shí)現(xiàn)類任務(wù)四-智慧金融信貸管理系統(tǒng)貸款申請(qǐng)功能實(shí)現(xiàn)–任務(wù)實(shí)施publicclassApplyDaoImplimplementsApplyDao{@Overridepublicintsave(ApplyUserapplyUser){Connectionconnection=null;PreparedStatementpreparedStatement=null;intret=0;try{connection=JDBCUtils.getConnection();ret=preparedStatement.executeUpdate();}catch(Exceptione){e.printStackTrace();}finally{JDBCUtils.release(preparedStatement,connection);}returnret;}}任務(wù)五-后臺(tái)管理員登錄功能實(shí)現(xiàn)-任務(wù)演示本系統(tǒng)分為前臺(tái)系統(tǒng)與后臺(tái)系統(tǒng),前臺(tái)系統(tǒng)主要為貸款申請(qǐng)功能,用戶申請(qǐng)完成后,管理員可以登錄后臺(tái)系統(tǒng),在后臺(tái)系統(tǒng)中找到與之對(duì)應(yīng)的申請(qǐng)記錄。管理員登錄界面有單獨(dú)的地址,在瀏覽器中輸入管理員登錄頁面地址后,可以進(jìn)入信貸后臺(tái)監(jiān)控平臺(tái)管理員登錄界面,輸入管理員賬號(hào)密碼后,即可正常登錄。任務(wù)五-后臺(tái)管理員登錄功能實(shí)現(xiàn)–知識(shí)準(zhǔn)備功能類圖功能描述注冊(cè)頁面功能時(shí)序圖1功能描述管理員點(diǎn)擊管理員登入,輸入賬號(hào)和密碼,點(diǎn)擊登入,管理員即可進(jìn)入后臺(tái)首頁2功能類圖3注冊(cè)頁面功能時(shí)序圖任務(wù)五-后臺(tái)管理員登錄功能實(shí)現(xiàn)–任務(wù)實(shí)施第一步:創(chuàng)建后臺(tái)管理登錄頁面alogin.jsp<formaction="${pageContext.request.contextPath}/admin/login"method="post"class="templatemo-login-form"><inputtype="text"class="form-control"name="username"placeholder="管理員名"><inputtype="password"class="form-control"name="password"placeholder="密碼"><buttontype="subm

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論