【Java中级学习】EL表达式

<%-- 
	传统方式获取作用域数据:
		缺点一:导入包
		缺点二:需要强转
		缺点三:获取数据的代码过于麻烦
	使用EL表达式获取作用域数据:
		作用:获取作用域对象中的数据。
		           注意:获取的是pageContext、request、session、application四个对象中的数据。其他数据一概不理会。
		                      找到了则获取返回,找不到则什么都不走,也不报错。
		语法:
			${表达式}
			表达式:
				获取请求数据:
					request对象存储了请求数据--->param.键名  返回值
					request对象存储了请求数据--->paramvalues.键名,返回数组
				通过setAttribute方法存储到作用域对象中的数据
					${键名} 返回键名所对应的值。
					注意:
						如果存储的是普通字符串则直接返回。
						如果存储的是对象,则返回对象。
							获取对象中的数据:
								普通对象
									${键名.属性名.属性名.....}
								集合对象
									list集合--->${键名[角标]}
									map集合---->${键名.map集合存储的键名}
		作用域查找顺序:
			默认查找顺序:
			pageContext-->request-->session-->application
			注意:
				每次查找都是从小到大进行查找,找到则获取,不再继续找了。
			指定作用域查找:
				${pageScope.键名}指定page
				${requestScope.}指定request
				${sessionScope.}指定session
				${applicationScope.}指定application
		EL表达式的逻辑运算
			${逻辑表达式}&& || !
			${算数表达式}+-*/%
			${关系表达式}>,<,>=,!=
			特殊:
				三目运算
			注意:
				+:表示加法运算,不表示字符连接。使用EL表达式进行字符连接会报错。
		EL的空值判断:
			${empty 键名}
			作用:
				判断键名对应的值是否存有数据。
		EL获取请求头数据和Cookie数据
			请求头数据:
				${header}-->返回所有的请求头数据
				${header["键名"]}-->返回指定的键名的请求头数据
				${headerValues["键名"]}-->返回指定键名(同键不同值)的数组
			获取Cookies数据:
				${cookie}-->返回存储了所有cookie对象的map集合
				${cookie.键名}-->返回指定的cookie对象
				${cookie.键名.name}-->返回指定cookie对象存储的数据的键名
				${cookie.键名.value}-->返回指定cookie对象存储的数据的值
			
				
--%>
<!-- 使用EL表达式获取数据 -->
<h3>EL表达式学习:使用EL表达式获取作用域对象数据</h3>
<b>${param.uname}</b>
<br />
<b>${str}</b>
<br />
<b>${user.addr.town}</b>
<br />
<b>${list[0]}</b>
<br />
<b>${list2[0].addr.pre}</b>
<br />
<b>${map.a}</b>
<br />
<b>${map.a1.addr.pre}</b>
<hr >
<h3>EL的作用域查找顺序</h3>
<%
	pageContext.setAttribute("hello", "hello pageContext");
	request.setAttribute("hello", "hello request");
	session.setAttribute("hello", "hello session");
	application.setAttribute("hello", "hello application");
	request.setAttribute("a", 1);
	request.setAttribute("b", 2);
 %>
${pageScope.hello}---->${requestScope.hello}---->${sessionScope.hello}---->${applicationScope.hello}
<h3>EL表达式的逻辑运算</h3>
${a+b}--${a*b}--${a/b}--${b-a}--${a%b}--${a==b}--${a<b}--${a>b?'男':'女'}--${a+""+b}
<h3>EL表达式的控制判断</h3>
${empty s}--${empty s1}--${empty s2}--${empty s3}
<hr >
<h3>EL获取请求头数据和Cookie数据</h3>
${header}
<hr >
${header["user-agent"]}--${headerValues["accept-language"][0]}
<hr >
${cookie}--${cookie.JSESSIONID}--${cookie.JSESSIONID.name}--${cookie.JSESSIONID.value}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值