expression language,即表达语言,它是为了便于存取数据而定义的一种语言,JSP2.0之后才成为一种标准。
形式:以“${”开头,以“}”结尾,通过PAGE指令来说明是否支持EL表达式
使用EL内置对象,从指定域中获取数据,提高了查找效率
在JSP页面的任何静态部分均可通过:${expression}来获取到指定表达式的值
如果没有使用EL的内置对象,则查找数据顺序是依次按照由小到大范围从四大域中查找指定名称的属性值
四大域
page:代表与一个页面相关的对象和属性。
request:代表与客户端发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件;需要在页面显示的临时数据可以置于此作用域。
session:代表与某个用户与服务器建立的一次会话相关的对象和属性。跟某个用户相关的数据应该放在用户自己的 session 中。
application:代表与整个 Web 应用程序相关的对象和属性,它实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域。
三大指令:
Page :指令是针对当前页面的指令,Include :用于指定如何包含另一个页面,Taglib :用于定义和指定自定义标签。
常用el表达式
1. 算术表达式
算术运算符 说明 范例 结果
+ 加 ${1+1} 2
- 减 ${2-1} 1
* 乘 ${1*1} 1
/ 或 div 除 ${5 div 2} 或 ${5 / 2} 2.5
% 或 mod 取余 ${5 mod 2} 或 ${5 % 2} 1
输出哪里的值 输出的是脚本变量
<% int m=5; %> 输出的是作用域中的值
<% request.setAttribute(“m”, 5); %>
2. 比较表达式
关系运算符 说明 范例 结果
== 或 eq 等于(equal) ${1 eq 1} true
!= 或 ne 不等于(not equal) ${1 != 1} false
< 或 lt 小于(Less than) ${1 lt 2} true
<= 或 le 小于等于(Less than or equal) ${1 <= 1} true
> 或 gt 大于(Greater than) ${1 > 2} false
>= 或 ge 大于等于(Greater than or equal) ${1 >= 1} true
3. 逻辑表达式
逻辑运算符 说明 范例 结果
&& 或 and 交集(与) ${true and false} false
|| 或 or 并集(或) ${true || false} true
! 或 not 非 ${not true} false
4. 三元表达式
${ 逻辑判断 ? 真的值 : 假的值 }
5. 判空表达式
${ empty 变量名 } 变量一定要放在作用域中
1)如果变量名在作用域中为空,不存在,返回 true
2)如果变量名为空串,返回 true
3)变量名是一个集合,如果集合中没有元素,返回 true
2. pageContext 对象
JSP本质是 Servlet,但比 Servlet 多了一个作用域:页面域,在 JSP 中有四大作用域;
什么是页面域:只在一个 JSP 页面中起作用,不同的 JSP 之间不能实现数据的共享,比请求域范围还要小;
页面域对象名:pageContext,是 JSP 其中一个内置对象名。
pageContext 操作有关的方法 说明
void setAttribute(String key, Object value) 向页面域中添加键和值
Object getAttribute(String key) 从页面域中得到值
void removeAttribute(String key) 删除四个作用域中同名的键
Object findAttribute(String key) 自动从四个作用域中去查某个键,从小到大的范围来查找,如果找到就停止;如果没有找到,返回 null;