用来替代jsp表达式脚本,进行数据的输出,大幅节省篇幅<%=request.getAttritube(key)%> 不存在就会输出null,很危险的一点${key} EL表达式 不存在就会不显示
搜索数据域数据顺序
主要输出域对象中的数据
但我们有四个域对象,这时候应该怎么输出?
四大域对象pageContext 当前jsp页面范围内有效request 一次请求内有效session 一次会话内有效,打开到关闭游览器application 整个web工程内有效
虽然四个域对象可以保存数据,但四个域的使用顺序为从小到大的范围的顺序pageContext,request,session,application
减轻内存的压力
EL表达式输出顺序由范围从小到大
输出javaBean时如何输出?
有map,list等等在bean里面
放入数据域内${persion} 输出整个persion对象
输出具体属性${p.name} 输出单独的属性${p.list[i]}${p.map.key}
它是通过getSetter方法进行查找的,是通过java反射进行的
EL表达式运算
关系运算${5==5} true${5!=5} false${3<5} true${2>10} false${5<=12}true${3>=5} false${12==12&&12<11} false${12==12||12<11} true${!true} false${!false} true${12/11} 1.01${12+12} 24${12-12} 0${12/12} 1.0${18%12} 6
empty运算盘算数据是否为空,为空输出true,不为空输出false值为null值为空串""值为Object但元素个数为0list集合元素个数为0map集合元素个数为0
记住从数据域里拿出${empty key}
如果key中有违禁字符如+-*/之类的怎么办?(我们不推荐这样使用)${map['a.a.a'--->(key)]} a.a.a就是key
EL表达式中11个隐含对象
EL表达式自己定义的 除了第一个都是map
pageContext 获取jsp中九大内置对象,获取对象本身而不是域数据 输出:ip,协议,端口,工程路径,请求方法,等等基本数据,存储域request内容下
pageScope 获取pageContext域中数据 pageScope.key确定具体的域requestScope 获取request域中数据sessionScopeapplicationScope 获取响应域中的数据param 获取请求参数的值paramValues 获取请求参数的值,获取多个值时候使用header 获取请求头的信息headerValues 多个值进行使用cookie 获取cookie信息initParam 获取web.xml中的上下文参数
