1、EL 隐式对象
类别 | 标识符 | 描述 |
JSP | pageContext | PageContext 实例对应于当前页面的处理 |
作用域 | pageScope | 与页面作用域属性的名称和值相关联的 Map 类 |
requestScope | 与请求作用域属性的名称和值相关联的 Map 类 | |
sessionScope | 与会话作用域属性的名称和值相关联的 Map 类 | |
applicationScope | 与应用程序作用域属性的名称和值相关联的 Map 类 | |
请求参数 | param | 按名称存储请求参数的主要值的 Map 类 |
paramValues | 将请求参数的所有值作为 String 数组存储的 Map 类 | |
请求头 | header | 按名称存储请求头主要值的 Map 类 |
headerValues | 将请求头的所有值作为 String 数组存储的 Map 类 | |
Cookie | cookie | 按名称存储请求附带的 cookie 的 Map 类 |
初始化参数 | initParam | 按名称存储 Web 应用程序上下文初始化参数的 Map 类 |
尽管 JSP 和 EL 隐式对象中只有一个公共对象(pageContext
),但通过 EL 也可以访问其它 JSP 隐式对象。原因是 pageContext
拥有访问所有其它八个 JSP 隐式对象的特性。实际上,这是将它包括在 EL 隐式对象中的主要理由。
其余所有 EL 隐式对象都是映射,可以用来查找对应于名称的对象。前四个映射表示先前讨论的各种属性作用域。可以用它们来查找特定作用域中的标识符,而不用依赖于 EL 在缺省情况下使用的顺序查找过程。
接 下来的四个映射用来获取请求参数和请求头的值。因为 HTTP 协议允许请求参数和请求头具有多个值,所以它们各有一对映射。每对中的第一个映射返回请求参数或头的主要值,通常是恰巧在实际请求中首先指定的那个值。每 对中第二个映射允许检索参数或头的所有值。这些映射中的键是参数或头的名称,但这些值是 String
对象的数组,其中的每个元素都是单一参数值或头值。
cookie 隐式对象提供了对由请求设置的 cookie 名称的访问。这个对象将所有与请求相关联的 cookie 名称映射到表示那些 cookie 特性的 Cookie
对象。
最后一个 EL 隐式对象 initParam
是一个映射,它储存与 Web 应用程序相关联的所有上下文的初始化参数的名称和值。初始化参数是通过 web.xml
部署描述符文件指定的,该文件位于应用程序的 WEB-INF
目录中。
2、EL 运算符
类别 | 运算符 |
算术运算符 | + 、- 、* 、/ (或 div )和 % (或 mod ) |
关系运算符 | == (或 eq )、!= (或 ne )、< (或 lt )、> (或 gt )、<= (或 le )和 >= (或 ge ) |
逻辑运算符 | && (或 and )、|| (或 or )和 ! (或 not ) |
验证运算符 | empty |
算 术运算符支持数值的加法、减法、乘法和除法。还提供了一个求余运算符。注:除法和求余运算符都有替代的、非符号的名称(为的是与 XPath 保持一致)。清单 5 中显示了一个演示算术运算符用法的示例表达式。对几个 EL 表达式应用算术运算符的结果是将该算术运算符应用于这些表达式返回的数值所得的结果。
3、EL 运算符优先级(自顶到底,从左到右)
[] , . |
() |
unary - 、not 、! 、empty |
* 、/ 、div 、% 、mod |
+ 、binary - |
() <</code> 、> 、<= 、>= 、lt 、gt 、le 、ge |
== 、!= 、eq 、ne |
&& 、and |
|| 、or |