一、为什么使用EL表达式
代码量小,并且不需要使用尖括号;
支持从pageContext,request,session,application中取值,它会自动检查四个作用域,不需要特别指定;
如果变量不存在,会输出空字符串"",而不是null,省去了手工判断的工作。
不需要导入jar包。
不需要强制转换类型
二、EL表达式的语法格式三、El表达式的使用:1. El表达式获取请求数据(1) 获取用户请求数据(请求实体) 。 ${param.键名} 获取请求实体中一个键一个值的数据。 ${paramValues.键名} 获取请求实体中同键不同值的数据,返回的是String数组,可以使用角标直接获。(2)获取请求头数据 ${header} 返回所有的请求头数据,键值对形式。 ${header["键名"]} 返回指定的键的请求头数据。 ${headerValues["键名"]} 获取请求头中同键不同值的数据。(3)获取Cookie数据 ${cookie} 获取所有的Cookie对象 键值对 ${cookie.Cookie对象的键名} 获取存储了指定Cookie数据的Cookie对象 ${cookie.Cookie对象的键名.name} 获取存储了指定Cookie数据的Cookie对象的存储的键 ${cookie.Cookie对象的键名.value} 获取存储了指定Cookie数据的Cookie对象的存储的值2. EL表达式获取作用域数据(1)作用域对象共有四个,从小到大排列:pageContext request session application 。分别对应当前页面、当前请求、当前会话、当前应用程序。(2)获取作用域内的数据: 1)普通字符串数据 ${键名} 2)对象数据 ${键名.属性名} 3)集合数据 list集合 ${键名[角标]} Map集合 ${map集合作用域存储的键名.map集合存储的数据的键名}(3)作用域数据查找顺序:如果找到了则不再查找,如果找不到,则继续查找下一个作用域,如果四个作用域中都没有则什么都不显示 pageContext-->request-->session-->application 指定作用域获取数据: ${pageScope.键名} 指明获取pageContext作用域中的数据 ${requestScope.键名} 指明获取request作用域中的数据 ${sessionScope.键名} 指明获取session作用域中的数据 ${applicationScope.键名} 指明获取application作用域中的数据3. EL表达式逻辑运算 算术运算:+,-,*,/ 在EL表达式中可以直接进行算术运算 格式:${算术表达式} 例如 :${1+2} 注意:+表示算术运算,不能进行字符串连接 逻辑运算:&& || ! 格式:${逻辑表达式} 注意:没有单& 和单| 比较运算:== != >,>=,<,<= 格式:${比较表达式} 三目运算: 格式:${条件?值:值}4. EL表达式的empty判断 格式:${empty 键名} 作用:判断该键是否有存储有效数据,是否为空,返回boolean类型。