若是你對EL表達式基礎不熟悉的話請看我前面的兩篇博客: java
EL表達式語言(一)以及EL表達式語言(二) web
爲了可以得到web應用程序中的相關數據,EL表達式中定義了一些隱含的對象。這些對象共有11個: 數組
隱含對象 |
對象類型 |
說明 |
pageContext |
javax.servlet.jsp.PageContext |
用於訪問jsp內置對象 |
param |
java.util.Map |
包含頁面全部參數的名稱和對應值的集合 |
paramValues |
java.util.Map |
包含頁面全部參數的名稱和對應多個值的集合 |
header |
java.util.Map |
包含每一個header名和值的集合 |
headerValues |
java.util.Map |
包含每一個header名和可能的多個值的集合 |
cookie |
java.util.Map |
包含每一個cookie名和值的集合 |
initParam |
java.util.Map |
包含Servlet上下文初始請求參數名和對應值的集合 |
pageScope |
java.util.Map |
包含page頁面範圍內的屬性值的集合 |
requestScope |
java.util.Map |
包含request請求範圍內屬性值的集合 |
sessionScope |
java.util.Map |
包含session繪畫範圍內的屬性值的集合 |
applicationScope |
java.util.Map |
包含application應用範圍內的屬性值的集合 |
一、PageContext對象的應用 cookie
PageContext隱含對象用於訪問JSP內置對象,如request、response、out、session、config和servletContext等,例如要訪問當前session中的變量username可使用以下的表達式 session
${PageContext.session.username} app
二、param和paramValues對象的應用 jsp
param對象用於獲取請求參數的值。而若是一個參數名對應多個值時,則須要使用paramValues對象獲取請求參數的值,在應用param對象時,返回的結果是字符串zai yingyong paramValues對象時,返回的結果是數組。 spa
例如:在JSP頁面中放置一個名爲user的文本框,關鍵代碼以下:
.net
<input type = "text" name = "user" id = "user">當表單提交以後,要獲取user文本框的值,能夠用一下表達式
${param.user} code
若是在JSP頁面放置一個複選框,則:
<input type = "checkbox" name = "hobby" value = "1" id = "hobby">1 <input type = "checkbox" name = "hobby" value = "1" id = "hobby">2 <input type = "checkbox" name = "hobby" value = "1" id = "hobby">3當表單提交以後,要獲取hobby的值,可使用一下表達式
${paramValues.hobby[0]}${paramValues.hobby[1]}${paramValues.hobby[2]}
三、header和headerValues對象
header對象用於獲取HTTP請求的一個具體header值,可是在某些狀況下,可能存在同一個header擁有多個不一樣值,這時必須使用headervalue對象。
例如:要獲取HTTP請求的header的Host屬性,能夠用:
${header.host}或者${header[host]}
可是若是要獲取HTTP請求的header的Accept-Agent屬性,則必須使用一下EL表達式
${header["user-agent"]}
四、cookie對象的應用
cookie對象用於訪問由請求設置的cookie名稱,若是在cookie中已經設定了一個名爲username的值,那麼可使用${cookie.username}來獲取cookie對象;可是若是要獲取cookie中的值,則須要使用cookie對象的value屬性。
例如:使用response對象設置一個請求有效的cookie對象,而後使用EL表達式獲取該cookie對象的值
<% Cookie cookie = new Cookie("user","mr")
response.addCookie(cookie);
%>
${cookie.user.value}
EL語言概念到此結束。有興趣的能夠看一下子的實戰~