若是你对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语言概念到此结束。有兴趣的能够看一下子的实战~