EL&JSTL&文件的上传与下载

EL 表达式

EL 表达式的全称是:Expression Language 是表达式语言
EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多。
格式:${表达式}
EL 表达式在输出 null 值的时候,输出的是空串。jsp 表达式脚本输出 null 值的时候,输出的是 null 字符串。

<body>
    <%
        request.setAttribute("key", "value");
    %>
    使用表达式脚本获取 key 的值:<%=request.getAttribute("key")%> <br>
    使用 EL 表达式获取 key 的值:${key} <br>
    使用表达式脚本获取 key1 的值:<%=request.getAttribute("key1")%> <br>
    使用 EL 表达式获取 key1 的值:${key1} <br>
</body>

网页输出效果:

使用表达式脚本获取 key 的值:value
使用 EL 表达式获取 key 的值:value
使用表达式脚本获取 key1 的值:null
使用 EL 表达式获取 key1 的值:

EL 表达式搜索域数据的顺序

EL 表达式主要是在 jsp 页面中输出数据
主要是输出域对象中的数据
当四个域中都有相同的 key 的数据的时候,EL 表达式会按照四个域的从小到大的顺序去进行搜索,找到就输出

EL 表达式输出复杂对象

首先创建一个JavaBean类,增加一些属性、构造器、get 和 set 方法、toString 方法:

JsB7od.png

在 jsp 页面的代码脚本中创建对象及其赋一些值:

JsBvy8.png

使用 EL 表达式获取此对象的属性:

${域对象的key.属性[下标]|.map的key

JsDElV.png

目前以上输出的都是类对象中存在的属性并且有 get 方法的,若访问不存在的属性或者存在属性但是没有对应的 get 方法的属性:

JsrZ9I.png

修改 JavaBean 类,不添加新的属性但是添加一个 getAge 方法:

JsrBE4.png

在 EL 表达式中输出 age 属性:

JsrRKK.png

就会发现 EL 表达式可以获取 JavaBean 中没有对应的属性但是存在对应的 get 方法的属性(一般没人会闲的蛋疼平白无故的增加这种 get 方法)

EL 表达式运算

关系运算

JsyN0U.png

逻辑运算

Js6dDf.png

算术运算

Js6gvq.png

empty 运算

empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false

  1. 值为 null
  2. 字符串为空串 “”
  3. 数组长度为 0
  4. List 集合长度为 0
  5. Map 集合长度为 0

JsgDpj.png

三元运算

表达式1?表达式2:表达式3

. 点运算和 [] 中括号运算

. 点运算,可以输出 Bean 对象中某个属性的值
[] 中括号运算,可以输出有序集合中某个元素的值
并且 [] 中括号运算,还可以输出 map 集合中 key 里含有特殊字符的 key 的值

在 jsp 页面中:

JsRPz9.png

浏览器输出效果:

JsRhl9.png

EL 表达式的 11 个隐含对象

EL 表达式中 11 个隐含对象,是 EL 表达式中自己定义的,可以直接使用

  1. PageContextImpl pageContext
    它可以获取 jsp 中的九大内置对象
  2. Map<String, Object> pageScope
    它可以获取 pageContext 域中的数据
  3. Map<String, Objcet> requestScope
    它可以获取 Request 域中的数据
  4. Map<String, Object> sessionScope
    它可以获取 Session 域中的数据
  5. Map<String, Object> applicationScope
    它可以获取 ServletContext 域中的数据
  6. Map<String, String> param
    它可以获取请求参数的值
  7. Map<String, String[]> paramValues
    它也是用来获取请求参数,常用来获取多个值
  8. Map<String, String> header
    它可以获取请求头的信息
  9. Map<String, String[]> headerValues
    它也是用来获取请求头参数信息的,也是常用来获取多个值
  10. Map<String, Cookie> cookie
    它可以获取当前请求的 Cookie 信息
  11. Map<String, String> initParam
    它可以获取在 web.xml 中配置的 标签中的上下文参数

四个域对象

JsbpvT.png

浏览器显示效果:

JsbPrF.png

pageContext 对象

Jsjtu6.png

浏览器显示:

JsjDCd.png

param对象

param 对象主要用来获取地址栏中的请求参数的值

JyC2Se.png

在浏览器地址栏后添加任意请求参数,浏览器显示:

JyCNz4.png

header对象

header 对象主要用来获取请求头中的参数信息

Jyigrd.png

浏览器显示:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值