EL表达式的11个内置对象

EL是JSP内置的表达式语言

JSP2.0开始,不让再使用Java脚本,而是使用EL表达式和动态标签来代替Java脚本

EL替代的是<%=... %>,也就是说EL只能做输出

EL可以输出的东西都在11个内置对象中,11个内置对象,其中10个是Map,只有pageContext不是Map,它就是PageContext类型,EL所有内置对象如下:


pageScope:获取pageContext域属性,相当于pageContext.getAttribute("xxx")

requestScope:获取request域属性,相当于request.getAttribute("xxx")

sessionScope:获取session域属性,相当于session.getAttribute("xxx")

applicationScope:获取application域属性,相当于application.getAttribute("xxx")

param:对应参数,它是一个Map,其中key是参数,value是参数值,适用于单值的参数,相当于request.getParameter("xxx")

paramValues:对应参数,她是一个Map,其中key是参数,value是多个参数值,适用于多值的参数,相当于request.getParameterValues("xxx")

header:对应请求头,它是一个Map,其中key表示头名称,value是单个头值,适用于单值的请求头,相当于request.getHeader("xxx")

headerValues:对应请求头,它是一个Map,其中key表示头名称,value是多个头值,适用于多值的请求头,相当于request.getHeaders("xxx")

initParam:获取web.xml中<context-param>内的参数,${ initParam.xxx},xxx就是<param-name>标签内的值,进而得到<param-value>中的值

cookie:用于获取cookie,Map<String,Cookie>,其中key是cookie的name,value是cookie对象,例如${cookie.JSESSIONID.value }就是获取sessionId

pageContext:可以获取JSP九大内置对象,相当于使用该对象调用getxxx()方法,例如pageContext.getRequest()可以写为${pageContext.request)


EL表达式在获取Map的值或Bean的属性值是,可以使用“点”的方法,也可以使用“下标”的方法。

${initParam.a}与${initParam['a']},它们是完成的东西相同的。但是,如果Map的键或Bean的属性名中包含下划线或横岗时,那么就必须使用“下标”方法,例如:${initParam['a_a']}


EL中的.与[]有什么区别?

解析 EL中的.和[]有类似的功能,特别容易混淆,开发员应该熟练掌握。

参考答案 EL中,使用.和[]都可以用来获得数据,然而某些情况下只能使用[],而不能使用圆点,有以下三种情况只能使用[]:

(1) 通过数组或集合的索引返回值,只能使用[];

(2) 属性值中包括-或者.等非字母或数字的字符,只能使用[];

(3)属性值不是常量,而是变量时,只能使用[]。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值