![d1ca9d6cd52a7419f46b8cc09c001a97.png](https://img-blog.csdnimg.cn/img_convert/d1ca9d6cd52a7419f46b8cc09c001a97.png)
【46】
一、EL表达式
传统方式在jsp中获取作用域中的数据
<%@ page language="java" import="java.util.*,com.bjsxt.pojo.*"
pageEncoding="utf-8"%>
<!--将流转数据显示到浏览器中:使用传统方式 -->
<%--
缺陷:
1、书写比较繁琐
2、需要导包
3、需要强转
--%>
<hr />
<%=request.getAttribute("str") %>
<%=((User)request.getAttribute("user")).getFav()%><br />
<%=((ArrayList)request.getAttribute("list")).get(2)%><br />
<%=((User)((ArrayList)request.getAttribute("list")).get(3)).getFav()%><br />
<%=((HashMap)request.getAttribute("hs")).get("b1") %><br />
<%= ((User)((HashMap)request.getAttribute("hs")).get("u")).getFav()%>
<h3>使用EL表达式方式获取作用域数据</h3>
<%--
El表达式的语法:${表达式} 注意:自带响应功能
EL 隐含对象
JSP有9个隐含对象,而EL也有自己的隐含对象。EL隐含对象总共有11 个
![24fb9f289bc4cdd79004a6e71301f219.png](https://img-blog.csdnimg.cn/img_convert/24fb9f289bc4cdd79004a6e71301f219.png)
El表达式的使用:
1、El表达式获取请求数据
获取用户请求数据(请求实体)
${param.键名} 获取请求实体中一个键一个值的数据
${paramValues.键名} 获取请求实体中同键不同值的数据,返回的是String数组,可以使用角标直接获取 例如:爱好
获取请求头数据
${header} 返回所有的请求头数据,键值对形式
${header["键名"]} 返回指定的键的请求头数据
${headerValues["键名"]}
![55f075bb0a66da9553e2d5995aae8c47.png](https://img-blog.csdnimg.cn/img_convert/55f075bb0a66da9553e2d5995aae8c47.png)
获取Cookie数据
${cookie} 获取所有的Cookie对象 键值对
${cookie.Cookie对象的键名} 获取存储了指定Cookie数据的Cookie对象
${cookie.Cookie对象的键名.name} 获取存储了指定Cookie数据的Cookie对象的存储的键
${cookie.Cookie对象的键名.value}获取存储了指定Cookie数据的Cookie对象的存储的值
![490b914898ecc63ad4c7d12d62604c0b.png](https://img-blog.csdnimg.cn/img_convert/490b914898ecc63ad4c7d12d62604c0b.png)
2、EL表达式获取作用域数据
作用域对象:pageContext request session application
作用域数据:我们使用setAttribute方法存储的数据
获取:
普通字符串数据 ${键名}
对象数据 ${键名.属性名}
集合数据
list集合 ${键名[角标]}
Map集合 ${map集合作用域存储的键名.map集合存储的数据的键名}
作用域数据查找顺序:如果找到了则不再查找,如果找不到&