你大娘已經(jīng)不是你從前的大娘,你大爺依舊是你大爺 |
一、EL和JSTL的地位
在JSP中使用腳本元素的主要需求:
1.
2. 設(shè)置JSP頁(yè)面的局部變量,并在以后訪問(wèn);
3.
4. 訪問(wèn)對(duì)象的性質(zhì);
5. 調(diào)用JavaBean或其他Java對(duì)象的方法;
但是如今已經(jīng)不提倡在JSP中使用腳本元素:
1. 如果使用Java代碼,開(kāi)發(fā)人員就可能用到整個(gè)API,這樣就會(huì)很容易創(chuàng)建出不可移植的代碼,而對(duì)某種機(jī)器或系統(tǒng)存在依賴性;
2. 由于能通過(guò)Java語(yǔ)言訪問(wèn)系統(tǒng)元素,可能會(huì)在Jsp中混入應(yīng)用業(yè)務(wù)邏輯,這就會(huì)“污染”應(yīng)用的表示層;
3. 嵌入到Jsp中的Java代碼很難閱讀和調(diào)試,因此很難維護(hù);
引入EL和JSTL可以寫(xiě)出完全不含腳本的程序,前兩項(xiàng)要求由JSTL處理,后三項(xiàng)由EL處理
二、EL簡(jiǎn)介
1. EL命名變量:附屬到JSP作用域?qū)ο笊系膶傩浴?/span>${屬性名}
2. EL表達(dá)式的使用
a) 內(nèi)聯(lián)放置在模板數(shù)據(jù)中;
b) 放在JSP動(dòng)作的屬性中;
3. “ . ” 和 “ [ ] “ 操作符訪問(wèn)對(duì)象的性質(zhì)
4. EL表達(dá)式中可用的操作符
a) 算術(shù)操作符 :+、-、*或$、/或div、%或mod
b) 邏輯操作符 :&&或and、||或or、!或not
c) 比較操作符 :==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge
i. EL進(jìn)行比較時(shí),總是會(huì)“合理地”轉(zhuǎn)換所比較的數(shù)據(jù)類型。
d) 其他 :Empty運(yùn)算符、條件運(yùn)算符、()運(yùn)算符
i. Empty測(cè)試條件
5. EL隱式對(duì)象
a) JSP隱式對(duì)象
i. pageContext
${pageContext.request.queryString} 取得請(qǐng)求的參數(shù)字符串
${pageContext.request.requestURL} 取得請(qǐng)求的URL,但不包括請(qǐng)求之 參數(shù)字符串
${pageContext.request.contextPath} 服務(wù)的web application 的名稱
${pageContext.request.method} 取得HTTP 的方法(GET、POST)
${pageContext.request.protocol} 取得使用的協(xié)議(HTTP/1.1、HTTP/1.0)
${pageContext.request.remoteUser} 取得用戶名稱
${pageContext.request.remoteAddr } 取得用戶的IP 地址
${pageContext.session.new} 判斷session 是否為新的
${pageContext.session.id} 取得session 的ID
${pageContext.servletContext.serverInfo} 取得主機(jī)端的服務(wù)信息
b) 作用域訪問(wèn)隱式對(duì)象
i. pageScope
ii. requestScope
iii. sessionScope
iv. applicationScope
c) 參數(shù)訪問(wèn)隱式對(duì)象
i. param
ii. paramValues
d) 首部訪問(wèn)隱式對(duì)象
i. header
${header["User-Agent"]} 獲得瀏覽器版本
ii. headerValues
iii. cookie
e) 初始化參數(shù)訪問(wèn)隱式對(duì)象
i. InitParam
6. EL函數(shù)
只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
|
||
相關(guān)文章:
|
||