其餘更多java基礎文章: java基礎學習(目錄)java
EL 全名爲Expression Language。JSP中可使用EL表達式,EL表達式是用"${}"括起來的腳本,用來更方便地讀取對象,EL表達式寫在JSP的HTML代碼中,而不能寫在"<%%>"引發的JSP腳本中web
EL表達式的功能:數組
使用EL表達式獲取數據語法:"${標識符}"cookie
語法:${運算表達式},EL表達式支持以下運算符:
1)關係運算發
session
2)邏輯運算符
app
3)empty運算符:檢查對象是否爲null(空),${!empty(list)}函數
4)二元表達式:${user!=null?user.name :""}post
5)[ ] 和 . 號運算符學習
EL表達式語言中定義了11個隱含對象,使用這些隱含對象能夠很方便地獲取web開發中的一些常見對象,並讀取這些對象的數據。測試
分析:
pageScope、requestScope、sessionScope、applicationScope表明四個做用域對象(用於保存屬性的Map對象)
pageContext:表示的是JSP中內置對象pageContext,能獲取request等其餘JSP八大內置對象
param:表示一個請求參數, ${param.username}等效 request.getParameter("username");(表示一個保存了全部請求參數的Map對象)
paramValues:表示一組請求參數,${paramValues.abc}等效request.getParameterValues("abc");這種多選框(表示一個保存了全部請求參數的Map對象,它對於某個請求參數,返回的是一個string[])
header:表示一個請求頭,${header.referer}等效request.getHeader("referer");
headerValues:表示一組請求頭,${header.cookie}等效 request.getHeaders("cookie");獲取的請求頭參數中的內容是一組內容,好比cookie就有能夠是多個cookie一塊兒傳過來
cookie:得到cookie對象(表示一個保存了全部cookie的Map對象)
initPatam:web項目初始化參數,servletContext.getInitParameter("xxx");(表示一個保存了全部web應用初始化參數的map對象)
注意1:還有一種特殊的用法,直接獲取對象變量${user.username},user爲User的一個實例對象,而且存放在page做用域中,上面這句代碼的意思是,依次從page、request、session、application做用域查找user對象,直到找到爲止,底層使用的是pageContext.findAttribute(); 是同樣的效果。
注意2:測試header和headerValues或者有些參數時,若是頭裏面有「-」 ,例Accept-Encoding,則要header["Accept-Encoding"]、headerValues["Accept-Encoding"] 測試cookie時,例${cookie.key}取的是cookie對象,如訪問cookie的名稱和值,須${cookie.key.name}或${cookie.key.value}
EL表達式比較簡單,使用它的目的是爲了減小JSP腳本,儘可能不要在HTML中嵌入Java代碼,顯的很混亂,而在HTML中使用EL表達式,就比較好來獲取JSP中各類對象,獲取四大做用域中的值,
最主要的是要記得EL中有哪11個內置對象,知道了他們就知道了EL能夠獲取哪些信息。