EL表達式中定義了11個隱式對象,使用這些隱式對象可以很方便地讀取到Cookie、HTTP請求消息頭字段、請求參數、
Web應用程序中的初始化參數的信息,EL表達式中的隱式對象具體如下:
隱式對象 | 作用 |
pageContext | 對應於JSP頁面中的pageContext對象 |
pageScope | 代表page域中用於保存屬性的Map對象 |
requestScope | 代表request域中用於保存屬性的Map對象 |
sessionScope | 代表session域中用於保存屬性的Map對象 |
applicationScope | 代表application域中用於保存屬性的Map對象 |
param | 表示一個保存了所有請求參數的Map對象 |
paramValues | 表示一個保存了所有請求參數的Map對象,它對於某個請求參數, 返回的是一個string類型數組 |
header | 表示一個保存了所有http請求頭字段的Map對象 |
headerValues | 表示一個保存了所有http請求頭字段的Map對象,返回string類型數組 |
cookie | 表示一個保存了所有cookie的Map對象 |
initParam | 表示一個保存了所有web應用初始化參數的map對象 |
1、pageContext對象
EL表達式中的pageContext隱式對象與JSP頁面中的pageContext對象相對應,EL表達式可以通過pageContext隱式
對象訪問其它JSP隱式對象,如訪問request、response對象屬性時,可以使用表達式${pageContext.request.requestURI}
表達式${pageContext.response.contentType}等。
2、代表特定域屬性的隱式對象(共4個)
在EL表達式中也可以不使用這些隱式對象來指定查找域,而是直接引用這些域中的屬性名稱。例如,表達式${userName}就會在page、request、session、application這四個作用域內按順序依次查找userName屬性,直到找到為止。
3、代表請求參數的隱式對象(2個)
Param隱式對象用於返回一個請求參數的某個值,如果同一個請求參數有多個值,則返回第一個參數的值。paramValues隱式對象用於返回一個請求參數的所有值,返回結果為該參數的所有值組成的字符串數組,例如表達式${paramValues.username[0]}用於返回數組中第一個元素的值。
4、代表HTTP請求消息的隱式對象(2個)
header隱式對象返回一個請求頭字段的某個值,如果同一個請求頭字段有多個值,則返回第一個值,例如,使用表達式${header.referer}可以非常方便的獲取referer請求頭字段的值。headerValues隱式對象用於返回一個請求頭字段所有值組成的字符串數組。
5、cookie隱式對象
EL表達式中的隱式對象cookie是一個代表所有Cookie信息的Map集合,Map集合中元素的關鍵字為各個Cookie的名稱,值則為對應的Cookie對象。使用cookie隱式對象可以訪問某個Cookie對象,這些Cookie對象則是通過調用HTTPServletRequest.getCookies()方法得到的,如果多個Cookie共用一個名稱,則返回Cookie對象數組中的第一個Cookie對象。例如,要訪問一個名為userName的Cookie對象,可以使用表達式${cookie.userName}。
6、initParam隱式對象