欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

EL表达式的 11个隐含对象 介绍

程序员文章站 2024-01-20 16:52:10
...

一.获取数据的格式如下:

${EL隐含对象.关键字对象.属性}

${EL隐含对象.关键字对象}

二.EL隐含对象

1.pageContex:

相当于JSP页面中的pageContext对象(取的是pageContext对象)

2. pageScope(表示page域中用于保存属性的Map对象)

作用是从指定的page域中查找数据
 <% 
      pageContext.setAttribute("name","aaa");  //Map
    %>
 ${pageScope.name }

3.requestScope(表示request域中用于保存属性的Map对象)

作用是从request域中获取数据
		<% 
          request.setAttribute("name","dhl");  //Map
        %>
               ${requestScope.name }

4.sessionScope(表示session域中用于保存属性的Map对象)

作用是从session域中获取数据
		<% 
         session.setAttribute("name","dhl");  //Map
       %>
       ${sessionScope.name }

5.applicationScope(表示application域中用于保存属性的Map对象)

		<% 
         application.setAttribute("name","dhl");  //Map
       %>
       ${applicationScope.name }

6. param(表示一个保存了所有请求参数的Map对象)

 <!-- http://localhost:8080/dhl.jsp?name=aaa  -->
       	 ${param.name }  
         
此表达式会经常用在数据回显上
模拟的应用场景是表单提交到后台校验没有通过,回到注册页面时的数据回显,即如下所示
       <form action="${pageContext.request.contextPath }/servlet/RegisterServlet" 				method="post">
          <input type="text" name="username" value="${param.username }">
          <input type="submit" value="注册">
       </form>

7.paramValues(表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[] )

<!-- http://localhost:8080/dhl.jsp?like=aaa&like=bbb -->
        ${paramValues.like[0] }  
        ${paramValues.like[1] } 

8.initParam(表示一个保存了所有web应用初始化参数的map对象 )

目标是获取web应用初始化参数
		${initParam.xxx }  
        ${initParam.root }
xxx和root是指servletContext中用于保存初始化参数的map的属性

9.cookie(表示一个保存了所有cookie的Map对象)

从cookie隐式对象中根据名称获取到的是cookie对象,获取值需要.value ,即如下所示:
  ${cookie.JSESSIONID.value }  

10.header(表示一个保存了所有http请求头字段的Map对象)

目标是获得请求头, 含有"-"符合的,应使用[ ]获取,即如下所示:
		${header.Accept } 
       	${header["Accept-Encoding"] } 

11.headerValues

测试headerValues时,如果头里含有“-”符号 ,例Accept-Encoding,则要写为headerValues[“Accept-Encoding”],headerValues 对象与 header 对象类似,都用于获取 HTTP 请求的一个具体header值。但是在某些情况下,可能存在同一个 header 拥有多个不同的值,这时就必须使用 headerValues 对象来解决问题.
如下所示: headerValues 对象获取 HTTP 请求的 header 的 user-agent 属性,EL 表达式写法如下:
${headerValues["user-agent"]}
运行结果如下:

[Ljava.lang.String;@16e347