网站建设重庆最加科技,厦门哪里有做网站,网站基础内容,温州网页网站制作在JSP开发中#xff0c;为了获取Servlet域对象中存储的数据#xff0c;需要书写很多的Java代码#xff0c;这样会使JSP页面看起来十分的混乱#xff0c;难以维护#xff0c;为此#xff0c;在JSP2.0规范中提供了EL表达式。EL是Expression Language的缩写#xff0c;它是…在JSP开发中为了获取Servlet域对象中存储的数据需要书写很多的Java代码这样会使JSP页面看起来十分的混乱难以维护为此在JSP2.0规范中提供了EL表达式。EL是Expression Language的缩写它是一种简单的数据访问语言。 文章目录一、初识EL二、EL中的运算符1.点运算符.2.方括号运算符[]3.算术运算符4.比较运算符5.逻辑运算符6.empty运算符7.条件表达式8.“()”运算符三、EL隐式对象一、初识EL EL表达式的语法都是用“${ }”表示的。 关于EL表达式和使用Java代码的区别
在Servlet中
request.setAttribute(username,zhangsan);
request.setAttribute(password,123);在JSP中使用Java脚本
用户名%request.getAttribute(username)%br /
密码 %request.getAttribute(password)%使用EL表达式
用户名${username}br /
密码 ${password}EL表达式不仅能获取Servlet中存储的数据也能简化JSP中的代码量使程序简单易维护另外当域对象里面的值不存在时使用EL表达式获取域对象里面的值返回空字符串而使用Java脚本方式获取返回值是null会报空指针异常。
二、EL中的运算符
1.点运算符.
EL表达式中的点运算符用于访问JSP页面中某些对象的属性如JavaBean对象、List集合、Array数组等。
!-- 访问user对象的username属性--
${user.username}2.方括号运算符[]
EL表达式中的方括号运算符与点运算符的功能相同都用于访问JSP页面中某些对象的属性。当获取的属性名中包含一些特殊符号如“_”或“-”“?”等并非数字或字母的符号就只能使用方括号运算符来访问该属性。
!--不能使用${user.user_name}--
${user[user_name]}点运算符和方括号运算符在某种情况下可以互换如${user.username}等价于${user[username]}方括号运算符还可以访问List集合或数组中指定索引的某个元素如表达式${users[0]}用于访问集合或数组中第一个元素。在这种情况下只能使用方括号运算符不能使用点运算符。方括号运算符和点运算符可以相互结合使用如${users[0].username}表示访问集合或者数组中的第一个元素的username属性。
3.算术运算符
算数运算符说明算术表达式结果加${11}2-减${1-1}0*乘${1*1}1/ (或div)除${1/1}或${1 div 1}1% (或mod)取余(取模)${1%1}或${1 mod 1}0
4.比较运算符
EL表达式中的比较运算符用于比较两个操作数的大小操作数可以是各种常量、EL表达式、EL变量所有的运算执行结果都是布尔类型。
比较运算符说明算术表达式结果(或eq)等于${102}或${10 eq 2}false!(或ne)不等于${10!2}或${10 ne 2}true(或lt)小于${102}或${10 lt 2}false(或gt)大于${102}或${10 gt 2}true(或le)小于等于${102}或${10 le 2}false(或ge)大于等于${102}或${10 ge 2}true
5.逻辑运算符
逻辑运算符说明算术表达式结果(and)逻辑与${truefalse}或${true and false}false|| (or)逻辑或${false||true}true!(not)逻辑非${!true} 或${not true}false
6.empty运算符
EL表达式中的empty运算符用于判断某个对象是否为null或结果为布尔类型其基本的语法格式如下
${empty var}var变量不存在(没有定义)结果返回truevar变量的值为null结果返回truevar变量引用集合(Set、Map、List)类型对象并且在集合对象中不包含任何元素时结果返回true
7.条件表达式
EL表达式中条件运算符用于执行某种条件判断类似于Java中的if-else语句其语法格式如下
${A?B:C}表达式A的计算结果为布尔类型
如果表达式A的计算结果为true就执行表达式B并返回B的值如果表达式A的计算结果为false就执行表达式C并返回C的值
8.“()”运算符
EL表达式中的圆括号用于改变其他运算符的优先级。 三、EL隐式对象
不需要new就能使用的对象自带的对象
作用域访问对象(EL隐式对象)pageScope、requestScope、sessionScope、applicationScope参数访问对象JSP隐式对象
隐含对象名称描述pageContext对应于JSP页面中的pageContext对象pageScope代表page域中用于保存属性的Map对象requestScope代表request域中用于保存属性的Map对象sessionScope代表session域中用于保存属性的Map对象applicationScope代表application域中用于保存属性的Map对象param表示一个保存了所有请求参数的Map对象paramValues表示一个保存了所有请求参数的Map对象它对于某个请求参数返回的是String类型数组header表示一个保存了所有HTTP请求头字段的Map对象headerValues表示一个保存了所有HTTP请求头字段的Map对象返回的是String类型数组cookie用来取得使用者的cookie值cookie的类型是MapinitParam表示一个保存了所有Web应用初始化参数的Map对象