Expression表达式搜索域数据的顺序和要注意的session与application

Expression表达式搜索域数据的顺序和要注意的session与application

EL 表达式的全称是:Expression Language。是表达式语言。
EL 表达式的作用:EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。
创建jsp页面写了,pageContext、request、session、application四个域,往 四 个 域 中 都 保 存 了 相 同 的 key的 数 据 。

 <%
    // 往 四 个 域 中 都 保 存 了 相 同 的 key的 数 据 。
    pageContext.setAttribute("key","pageContext");
    request.setAttribute("key","request");
    session.setAttribute("key","Session");
    application.setAttribute("key","Session");
  %>

用EL表达式进行获取输出: ${key}
在这里插入图片描述

输出的是pageContext域中的"key":pageContext。
在这里插入图片描述

可能有人就会觉得因为pageContext.setAttribute(“key”,“pageContext”);在最上面所以EL最先搜索到pageContext.setAttribute(“key”,“pageContext”);然后进行输出。
但把pageContext.setAttribute(“key”,“pageContext”);放到最后一行EL输出的Key依然是输出,当把pageContext.setAttribute(“key”,“pageContext”)注释,EL表达式输出的Key为:request
依次注释、把request.setAttribute(“key”,“request”);注释EL表达式输出的Key为:session
但把session.setAttribute(“key”,“session”); 注释后EL输出的key还是:session
是因为session域中保存的数据是根据session机制的生命周期是当浏览器关闭而结束的。所以当要获取更新数据时要及时清理掉浏览器中的session
当我们关闭从新打开浏览器EL表达式输出的Key为application,但要注意的是application的生命周期是当服务器关闭或者重启才结束的。
由上面可知EL 表达式搜索域数据的顺序是:
pageContext >request>session>application
域中都有相同的 key 的数据的时候,EL 表达式会按照域的从小到大的顺序去进行搜索,找到就输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值