1.EL的内置对象11个
pageScope,requestScope,sessionScope,applicationScope
---- 获取JSP中域中的数据
param,paramValues -- 接收参数.
相当于request.getParameter() rrquest.getParameterValues()
header,headerValues -- 获取请求头信息
相当于request.getHeader(name)
initParam -- 获取全局初始化参数
相当于this.getServletContext().getInitParameter(name)
cookie -- WEB开发中cookie
相当于request.getCookies()---cookie.getName()---cookie.getValue()
pageContext -WEB开发中的pageContext.
pageContext获得其他八大对象
${pageContext.request.contextPath} 获取WEB应用名称
原文链接:点击打开链接
在EL表达式中,无需创建就可以使用的对象称之为EL隐藏(隐含、内置)对象。在EL中一共有11个隐藏对象,它们都与Map相似。其中10是Map,一个是 PageContext。
参数隐藏对象
这些隐藏对象都是Map类型!
1、param:param是Map<String,String>类型!param对象可以用来获取参数,与request.getParameter()方法相同。
注意,在使用EL获取参数时,如果参数不存在,返回的是空字符串,而不是null。这一点与使用request.getParameter()方法是不同的。
2、paramValues:paramValues是Map<String, String[]>类型,当一个参数名,对应多个参数值时可以使用它。
3、header:header是Map<String,String>类型,用来获取请求头。
4、headerValues:headerValues是Map<String,String[]>类型。当一个请求头名称,对应多个值时,使用该对象,这里就不在赘述。
5、initParam:initParam是Map<String,String>类型。它对应web.xml文件中的<context-param>参数。
6、cookie:cookie是Map<String,Cookie>类型,其中key是Cookie的名字,而值是Cookie对象本身。
域隐藏对象
使用EL表达式最为常用的就是获取域对象中保存的数据。例如:${pageScope.xxx},表示获取在pageContext保存的数据。当然${pageScope[‘xxx’]}是相同的!
7、pageScope:pageScope是Map<String,Object>类型,${pageScope.xxx}的功能相等与pageContext.getAttribute(“xxx”)。两者的区别在于,前者在数据不存在时返回空字符串,而后者返回null。
8、requestScope:requestScope是Map<String, Object>类型,装载了request对象中的所有数据;
9、sessionScope:sessionScope是Map<String, Object>类型,装载了session对象中的所有数据;
10、applicationScope:applicationScope是Map<String, Object>类型,装载了application对象中的所有数据;
当EL中给出的不是隐藏对象时,表示在四个域中查找数据。例如:${a},表示
l 在${pageScope.a}中查找,如果找到就返回;
l 在${requestScope}中查找,如果找到就返回;
l 在${sessionScope}中查找,如果找到就返回;
在${applicationScope}中查找,如果找到就返回,找不到就返回空字符串。
页面上下文隐藏对象
11、pageContext:pageContext是PageContext类型!可以使用pageContext对象调用getXXX()方法,例如pageContext.getRequest,可以${pageContext.request}。
Expression | 说明 |
${pageContext.request.queryString} | pageContext.getRequest().getQueryString(); |
${pageContext.request.requestURL} | pageContext.getRequest().getRequestURL(); |
${pageContext.request.contextPath} | pageContext.getRequest().getContextPath(); |
${pageContext.request.method} | pageContext.getRequest().getMethod(); |
${pageContext.request.protocol} | pageContext.getRequest().getProtocol(); |
${pageContext.request.remoteUser} | pageContext.getRequest().getRemoteUser(); |
${pageContext.request.remoteAddr} | pageContext.getRequest().getRemoteAddr(); |
${pageContext.session.new} | pageContext.getSession().isNew(); |
${pageContext.session.id} | pageContext.getSession().getId(); |
${pageContext.servletContext.serverInfo} | pageContext.getServletContext().getServerInfo(); |
jsp的9大内置对象
EL的11个内置对象