EL表達式中的隱含對象

若是你對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語言概念到此結束。有興趣的能夠看一下子的實戰~

相關文章
相關標籤/搜索