簡介
EL(expression Language)表達式讓jsp書寫起來更加方便,簡化在jsp獲取作用域或者請求數據的寫法,也會搭配jstl使用。
jsp頁面獲取數據的方式
傳統法式:在jsp頁面中使用java的腳本語段<%%>
缺點:jsp頁面需要導包,獲取到對象類型數據時需要進行強轉,獲取數據的代碼比較麻煩。
EL表達式:獲取 作用域(request,session,pageContext,application)中的數據若找到數據則獲取返回,否則無任何效果不報錯,不能獲取jsp頁面簡單的變量
使用方法
語法結構:${expression},提供.和[ ]兩種運算符來存儲數據
作用
a).使用EL表達式獲取請求數據
i. 獲取用戶請求數據
ii. 獲取請求頭數據
iii. 獲取cookie數據
b).使用EL表達式獲取作用域數據
i. 獲取作用域數據
ii. 作用域查找順序
iii. 指定作用域中的數據
c).使用EL表達式進行運算
i. 算數運算
ii. 關係運算
iii. 邏輯運算
d).使用EL表達式空值判斷empty
EL表達式
1.獲取請求數據 request.getParameter("uname") <=> ${param.uname}
2.獲取Str request.getAttribute("uname") <=> ${uname}
3.獲取對象 (User)request.getAttribute("u").getUname() <=> ${u.uname}
4.獲取list列表對象 (ArrayList)request.getAttribute("userList").get(1).getUname <=> ${userLIst[1].uname}
EL作用域查找順序
默認查找順序:pageContext–>request–>session–>application 適用於當多個作用域中有相同的鍵名
自定義查找順序表達方法:${作用域名Scope.鍵名} 例${requestScope.uname}
注意:pageContext簡寫爲page
EL的邏輯運算
- 邏輯運算:${邏輯表達式} && || !
- 算數運算:${算數運算} + - * /
- 關係運算表達式:${關係運算表達式} > < >= <= == != %
- 特殊:三目運算 ${sex==1?‘男’:‘女’}
- 注意不可以使用"+"連接字符串,實用的話會報錯
EL的空值判斷
${empty 鍵名} 判斷鍵名中是否存在數據
EL獲取請求頭數據和cookie數據
請求頭數據
- ${header} --> 獲取所有請求頭數據
- ${header[“鍵名”]} --> 獲取指定鍵名請求頭數據
- ${headerValues[“鍵名”]} --> 獲取同鍵不同值得數組
請求頭數據
- ${cookie} --> 返回所有cookie對象的map集合
- ${cookie.鍵名} --> 返回指定的cookie對象
- ${cookie.鍵名.name} --> 返回指定的cookie對象存儲數據的鍵名
- ${cookie.鍵名.value} --> 返回指定的cookie對象存儲數據的值
學習過程中的積累,有任何問題歡迎指教!