EL和JSTL表達(dá)式的學(xué)習(xí)和使用信粮、MVC架構(gòu)和javaEE三層架構(gòu)的區(qū)別

1. EL和JSTL的表達(dá)式

1.1. 什么是EL表達(dá)式

  1. EL表達(dá)式存在的目的是為了更方便的獲取Servlet域?qū)ο笾写鎯Φ臄?shù)據(jù),在其出現(xiàn)之前要獲取Servlet域?qū)ο笾械臄?shù)據(jù)需要嵌入很多java代碼,這樣做的會讓jsp頁面混亂朗儒,難以維護(hù)拾稳,為此在jsp2.0規(guī)范中提供了EL表達(dá)式

1.2. EL通過內(nèi)置對象獲取數(shù)據(jù)

  • 通過pageScope吮炕、requestScope、sessionScope访得、applicationScope分別獲取四大域?qū)ο蟮臄?shù)據(jù)
${pageScope.name};
${requestScope.name}
${sessionScope.name}
${applicationScope.name}
032001.png
  • 通過param和paramValues內(nèi)置對象獲取請求參數(shù)
${param.username}
${paramValues.hobby}
  • 通過header和headerValues獲取請求頭
${header['accept-Encoding']}<!-- 注意這個-無法識別只能用這種方式 -->
${headerValues['accept-Encoding'][0]}<!-- 獲取數(shù)組里面的第一個-->
  • 通過pageContext獲取jsp上下文數(shù)據(jù)
${pageContext.request.contextPath}<!--獲取項目路徑龙亲,這個是動態(tài)的路徑開發(fā)的時候用于書寫form表單的action路徑,非常有用悍抑。-->
  • 通過initParam內(nèi)置對象獲取全局化參數(shù)
<!-- 加入在web.xml中配置了name為person的全局化參數(shù)
<context-param>
    <param-name>person</param-name>
    <param-value>白月</param-value>
</context-param>
-->
${initParam.person}
  • 通過cookie對象獲取cookie內(nèi)容
${cookie.company}

1.3. EL可以獲取不同類型的數(shù)據(jù)

  • EL獲取自定義數(shù)據(jù)鳄炉、字符串、數(shù)組搜骡、List類型拂盯、Map集合數(shù)據(jù)。

1.4. EL可以執(zhí)行表達(dá)式

  • 算術(shù)運(yùn)算符
  • 邏輯運(yùn)算符
  • 關(guān)系運(yùn)算符
  • 三元運(yùn)算符
  • empty運(yùn)算符--對象是否為null,字符串是否為"",集合是否為0

1.5. 什么是JSTL

  1. 由于jsp支持自定義標(biāo)簽记靡,因此各個廠商定制了自身應(yīng)用的標(biāo)簽庫谈竿,因此出現(xiàn)了同一功能的標(biāo)簽因不同廠商的制定而不同,這就造成了標(biāo)簽的混亂摸吠,不利于開發(fā)空凸,因此sun公司制定了同一的標(biāo)準(zhǔn)。sun公司制定的標(biāo)簽庫又有5個標(biāo)簽庫組成寸痢。
032002.png

1.6. 導(dǎo)入標(biāo)簽庫

  1. 使用taglib 指令導(dǎo)入標(biāo)簽庫,注意需要導(dǎo)入兩個包的:jstl.jar,standard.jar
<%@ taglib uri="" prefix=" " %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

1.7. 使用JSTL標(biāo)簽和EL表達(dá)式判斷是否登錄案例

  1. 例如:商城首頁里面有個登錄按鈕呀洲,當(dāng)商城首頁在沒有登錄時首頁顯示登錄,在登錄后首頁顯示登陸者的用戶名轿腺。這個就可以通過JSTL和EL表達(dá)式聯(lián)合實現(xiàn)两嘴。
<!-- 用戶沒有登錄 假設(shè)已經(jīng)導(dǎo)入了JSTL標(biāo)簽庫core-->
<c:if test="${empty user}">
    <li><a href="login.jsp">登錄</a></li>
    <li><a href="register.jsp">注冊</a></li>
</c:if>
</c:if test="${!empty user}">
    <li>${user.name}</li>
    <li><a href="register.jsp">注冊</a></li>
</c:if>
  • 這里面使用了<c:if>標(biāo)簽,這個標(biāo)簽有三個屬性族壳,test用于設(shè)置邏輯表達(dá)式憔辫,var設(shè)置變量,scope設(shè)置作用范圍仿荆,默認(rèn)值為page,如果test計算結(jié)果為true那么標(biāo)簽將會被執(zhí)行贰您,否則標(biāo)簽體不會被執(zhí)行坏平。
  1. jstL中的forEach標(biāo)簽
  • forEach標(biāo)簽有兩種組合方式:第一種是模擬java中的for循環(huán)很相似;
<!--  for(int i=0;i<5;i++){}  -->
<c:forEach begin="0" end="5" var="i">
    ${i}<br/>
</c:forEach>
  • 第二種是模擬增強(qiáng)for循環(huán)
<!-- 模擬增強(qiáng)for循環(huán)   productList----List<Product>
for(Product product:productList){
    syso()
}-->
<!-- item代表一個集合或數(shù)組锦亦,var代表集合中的某一個元素-->
<c:forEach items="${productList}" var="pro">
    ${pro.name }
</c:forEach>

1.8. 第二個案例舶替,獲取request域中的數(shù)據(jù)

        <c:forEach items="${productList }" var="product">
            <div class="col-md-2" style="height:250px">
                <a href="product_info.htm"> 
                    <img src="${pageContext.request.contextPath }/${product.pimage }" width="170" height="170" style="display: inline-block;">
                </a>
                <p>
                    <a href="product_info.html" style='color: green'>${product.pname }</a>
                </p>
                <p>
                    <font color="#FF0000">商城價:&yen;${product.shop_price }</font>
                </p>
            </div>
        </c:forEach>
  • 注意: 引用css,js里的圖片,都要寫絕對的路徑杠园,本案例使用了
${pageContext.request.contextPath}/${product.pimage}
<!-- 注意pageContext對象可以調(diào)用其他內(nèi)置對象顾瞪,contextPath用來獲取web應(yīng)用路徑,用el表達(dá)式的目的是獲取動態(tài)的路徑抛蚁。注意這個pimage是product的屬性陈醒,這就是應(yīng)用了MVC架構(gòu)中的javaBean-->

2. MVC架構(gòu)和javaEE的三層架構(gòu)區(qū)別?

2.1. 什么是MVC架構(gòu)

  1. MVC架構(gòu)是web層的技術(shù)瞧甩,MVC架構(gòu)分為三層钉跷,分別是Model(將數(shù)據(jù)封裝到j(luò)avaBean)、View(顯示頁面)肚逸、Controller(控制層爷辙,用于邏輯處理,接收表單的數(shù)據(jù)朦促,將數(shù)據(jù)處理后封裝到model膝晾,或者將數(shù)據(jù)通過view層顯示出來。)
032003.png

2.2. javaEE的三層架構(gòu)

  1. javaEE也分為三層架構(gòu)思灰,可以說是模仿MVC架構(gòu)的玷犹,但是JAVAEE的三層架構(gòu)師javaEE特有的。javaEE三層架構(gòu)分為:

    web層:與客戶端交互洒疚,搜集頁面數(shù)據(jù),封裝數(shù)據(jù)坯屿,傳遞數(shù)據(jù)油湖,指定響應(yīng)的jsp頁面。

    service層:復(fù)雜業(yè)務(wù)處理

    dao層:與數(shù)據(jù)庫進(jìn)行交互领跛。

032004.png

從圖中可以看出乏德,web層里面包含了MVC架構(gòu),這與其他層沒有關(guān)系吠昭。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末喊括,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子矢棚,更是在濱河造成了極大的恐慌郑什,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蒲肋,死亡現(xiàn)場離奇詭異蘑拯,居然都是意外死亡钝满,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門申窘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弯蚜,“玉大人,你說我怎么就攤上這事剃法∷檗啵” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵贷洲,是天一觀的道長收厨。 經(jīng)常有香客問我,道長恩脂,這世上最難降的妖魔是什么帽氓? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮俩块,結(jié)果婚禮上黎休,老公的妹妹穿的比我還像新娘。我一直安慰自己玉凯,他們只是感情好势腮,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著漫仆,像睡著了一般捎拯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盲厌,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天署照,我揣著相機(jī)與錄音,去河邊找鬼吗浩。 笑死建芙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的懂扼。 我是一名探鬼主播禁荸,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼阀湿!你這毒婦竟也來了赶熟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤陷嘴,失蹤者是張志新(化名)和其女友劉穎映砖,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體罩旋,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡啊央,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年眶诈,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓜饥。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡逝撬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乓土,到底是詐尸還是另有隱情宪潮,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布趣苏,位于F島的核電站狡相,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏食磕。R本人自食惡果不足惜尽棕,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望彬伦。 院中可真熱鬧滔悉,春花似錦、人聲如沸单绑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搂橙。三九已至歉提,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間区转,已是汗流浹背苔巨。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留废离,地道東北人恋拷。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像厅缺,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子宴偿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

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