1.EL表达式(Excression Language)
目的:为了使JSP写起来更加简单
基本语法:${...}
EL提供“.”和“[]”两种运算符来存取数据。
例子:
常规写法: <%=session.getAttribute("test")%>
EL表达式写法: ${sessionScope.test}或者${sessionScope["test"]}
[]和. 大多数情况下可以通用, 除了两种情况中
(1)表达式中含有特殊字符
错误: ${sessionScope.test_name}
正确: ${sessionScope["test_name"]}
(2)需要动态获取属性
sessionScope["test"]
[] 中可以放一个变量名, 但是点的后面不行。
在EL表达式中[]也可以用来表示数组或者集合中的索引值。
EL存取变量数据的方法:
${username}
当前面不指定哪个作用域下面的值的时候, 会默认按照下面的顺序去找, 如果都找不到, 就输出一个空字符串
pageScope --> requestScope --> sessionScope --> applicationScope
EL自动类型转换
<%String num = request.getParameter("num");
int a = 20;
int b = Integer.parseInt(num != null ? num : "0");
out.print(a + b);%>
${param.num + a}
EL隐式对象
上面说到的各种Scope和param都是EL表达式中的隐式对象
paramValues--->所有请求参数作为String类型的数组的Map类
Header--->按照名称存储请求头主要值的Map类
HeaderValues--->将请求头的所有值作为String数组存储的Map类
cookie将名称存储请求附带的cookies的Map类
获取cookie:
${cookie.username.name}
${cookie.username.value}
initParam按名称存储web应用程序上下文初始化参数的Map类
EL运算符
算术运算符: + - * /或者div %或者mod
关系运算符: ==或者eq !=或者ne <或者lt >或者gt <=或者le >=或者ge
逻辑运算符: &&或者and ||或者or !或者not
验证运算符: empty( empty 对于 null和"" 的判断都是返回true)
判断某个变量是否为空