EL表达式内置对象
同JSP类似,在EL表达式中也有一些内置对象,共11个:
- pageContext
- pageScope
- requestScope
- sessionScope
- applicationScope
- cookie
- param
- paramValues
- header
- headerValues
- initParam
上面除了pageContext是javax.servlet.jsp.PageContext类型,其他的都是java.util.Map类型。四个域属性相关的对象之前用过了,下面主要介绍一些其他常用的。
pageContext
EL表达式中的pageContext与JSP内置对象中的 pageContext 是同一个对象。通过该对象,可以获取
到 request、response、session、servletContext、servletConfig 等对象。注意,这些对象在 EL中不是内置对象,只能通过EL中的pageContext 获取。
在 EL 中直接
${pageContext.request}
即可获取 request 对象。其底层实际调用的是
pageContext.getRequest()方法。同理,也可以通过类似方式获取到其它对象。
在这些获取的对象中,有一个是实际工程中最常用的:
${pageContext.request.contextPath}
用于获取当前项目的发布到服务器的名称。一般会用在路径中,如果你熟悉web中的路径关系的话,就不建议使用这个了。
<form action="${pageContext.request.contextPath }/login.do"></form>
param
在 EL 中通过${param.参数名}可获取到请求中指定参数名的值。例如,提交的请求为:
localhost:8080/07-04-jsp/index.jsp?name=monkey1024
在 JSP 页面中通过如下方式,可获取到 name 参数的值:
${param.name}
paramValues
若提交的请求中同一参数具有多个值,则可通过 ${paramValues.参数名[索引]} 获取到指定索引号的该参数值。例如,提交的请求为:
localhost:8080/07-04-jsp/index.jsp?hobby=basketball&hobby=football
在JSP中获取方式如下:
${paramValues.hobby[0]}
${paramValues.hobby[1]}
initParam
在 EL 中通过使用 ${initParam.初始化参数名} 可以获取到初始化参数的值。 例如在 web.xml 中定义了初始化参数如下:
<context-param>
<param-name>admin</param-name>
<param-value>1024</param-value>
</context-param>
在JSP中的获取方式如下:
${initParam.admin}
其他对象在开发中基本不常使用,这里就不介绍了