动态网站开发学习笔记07:EL和JSTL

零、本节学习目标

掌握EL的基本语法
熟悉EL中常见的隐式对象
了解JSTL标签库
熟悉JSTL的下载与使用
掌握Core标签库中的常用标签
前面我们学习了JSP页面,在JSP开发中,为了获取Servlet域对象中存储的数据,经常需要书写很多Java代码,这样的话会使JSP页面混乱。为了降低JSP页面的复杂度,增强代码的重用性,Sun公司制定了一套标准标签库JSTL,同时为了获取Servlet域对象中存储的数据,JSP2.0规范还提供了EL(表达式语言),大大降低了开发的难度。本节将针对EL以及JSTL标签库进行详细讲解。

一、EL

(一)EL基本语法

目标:掌握EL的基本语法
1、EL的概念
EL全称为Expression Language,即表达式语言。它是JSP 2.0引入的一个新内容。EL可以简化JSP开发中的对象引用,从而规范页面代码,增加程序的可读性及可维护性。EL为不熟悉Java语言页面开发的人员提供了一个开发JavaWeb应用的新途径。
2、EL的语法
EL的语法非常简单,都是以“ ”符号开始,以“”符号结束的语法格式: {”符号开始,以“}”符号结束的 语法格式: 符号开始,以符号结束的语法格式:{表达式}
表达式”中的表达式必须符合 E L 语法要求。由于 E L 的语法以“ {表达式}”中的表达式必须符合EL语法要求。 由于EL的语法以“ 表达式中的表达式必须符合EL语法要求。由于EL的语法以{" 开头,如果在JSP网页中要显示“${“字符串,必须在前面加上“\”符号,即“${”,或者写成“KaTeX parse error: Expected '}', got 'EOF' at end of input: { {}“, 也就是用表达式输出“${” 符号。
3、案例演示
(1)用EL读取保存的信息
创建Java Enterprise项目 - ELJSTLDemo
在这里插入图片描述

单击【Finish】按钮
在这里插入图片描述

修改Artifact名称
在这里插入图片描述

重新部署项目
在这里插入图片描述

修改首页
在这里插入图片描述

启动服务器,查看结果
在这里插入图片描述

创建net.huawei.servlet包,在包里创建ServletDemo01类
在这里插入图片描述

在web目录里创建demo01.jsp页面
在这里插入图片描述

启动服务器,访问http://localhost:8080/ELJSTLDemo/demo01
在这里插入图片描述

(2)使用Java代码与EL获取信息的对比
由上图中可知,使用EL同样可以成功获取Servlet中存储的数据,但EL明显简化了JSP页面的书写,使程序简洁易维护。另外,当域对象里面的值不存在时,使用EL获取域对象里面的值时返回空字符串;而使用Java方式获取时,如果返回值是null,会报空指针异常,所以在实际开发中推荐使用EL的方式获取域对象中存储的数据。
4、EL基本语法的特点
(1)EL可以与JavaScript语句结合使用。
(2)EL可以自动进行类型转换。如果想通过EL获取两个字符串数值(如number1和number2)的和,可以直接通过“+”符号进行连接(如$ {number1 + number2})。
(3)EL不仅可以访问一般变量,还可以访问JavaBean中的属性、嵌套属性和集合对象。
(4)在EL中,可以执行算术运算、逻辑运算、关系运算和条件运算等。
(5)在EL中,可以获取pageContext对象,进而获取其他内置对象。
(6)在使用EL进行除法运算时,如果除数为0,则返回表示无穷大的Infinity,而不返回错误。
(7)在EL中,可以访问JSP的作用域(page、request、 session与 application)。

(二)EL中的标识符

目标:熟悉EL中的标识符
1、EL中标识符的规范
在EL中,经常需要使用一些符号标记一些名称,如变量名、自定义函数名等,这些符号被称为标识符。EL中的标识符可以由任意的大小写字母、数字和下划线组成,为了避免出现非法的标识符,在定义标识符时还需要遵循以下规范。
(1)不能以数字开头。
(2)不能是EL中的关键字,如and、or、gt等。
(3)不能是EL隐式对象,如pageContext。
(4)不能包含单引号(')、双引号(")、减号(-)和正斜线(/)等特殊字符。
2、EL中标识符的示例
(1)合法标识符

(2)非法标识符

(三)EL中的关键字

目标:熟悉EL中的关键字
关键字就是编程语言里事先定义好并赋予了特殊含义的单词,和其他语言一样,EL中也定义了许多关键字,如false、not等。
EL所有的关键字

目标:熟悉EL中的变量
1、基本概念
EL中的变量就是一个基本的存储单元,EL中的变量不用事先定义就可以直接使用。EL可以将变量映射到一个对象上。
2、简单示例

在上述示例中,message就是一个变量,通过表达式${message}就可以访问变量message的值。

(五)EL中的常量

目标:熟悉EL中的常量
1、布尔常量
布尔常量用于区分一个事物的正反两面,它的值只有两个,分别是true和false。
2、整型常量
整型常量与Java中的十进制的整型常量相同,它的取值范围是Java语言中定义的常量·Long.MIN_VALUE·到·Long.MAX_VALUE·之间,即[ − 2 63 , 2 63 − 1 ] [-2^{63}, 2^{63}-1][−2
63
,2
63
−1]之间的整数。
3、浮点型常量
浮点数常量用整数部分加小数部分表示,也可以用指数形式表示,例如,1.2E4和1.2都是合法的浮点数常量。浮点数常量的取值范围是Java语言中定义的常量Double.MIN_VALUE到Double.MAX_VALUE之间,即[ 4.9 E − 324 , 1.8 E 308 ] [4.9E-324,1.8E308][4.9E−324,1.8E308]之间的浮点数。
4、字符串常量
字符串常量是用单引号或双引号引起来的一连串字符。由于字符串常量需要用单引号或双引号引起来,所以字符串本身包含的单引号或双引号需要用反斜杠(\)进行转义,即用“'”表示字面意义上的单引号,用“"”表示字面意义上的双引号。如果字符串本身包含反斜杠(\),也要进行转义,即用“\”表示字面意义上的一个反斜杠。
需要注意的是,只有字符串常量用单引号引起来时,字符串本身包含的单引号才需要进行转义,而双引号不必进行转义,例如,'ab’4c"d5\e’表示的字符串是ab’4c"d5\e;只有字符串常量用双引号引起来时,字符串本身包含的双引号才需要进行转义,而单引号不必转义,例如"ab’4c"d5\e"表示的字符串是ab’4c"d5\e。
5、Null常量
Null常量用于表示变量引用的对象为空,它只有一个值,用null表示。

(六)EL访问数据

目标:掌握EL中的点运算符(.)和方括号运算符([ ])的使用
1、EL的点运算符
EL中的点运算符,用于访问JSP页面中某些对象的属性,如JavaBean对象中的属性、List集合中的属性、Array数组中的属性等。
用法示例: s t u d e n t . n a m e 在上述语法格式中,表达式 {student.name} 在上述语法格式中,表达式 student.name在上述语法格式中,表达式{student.name}中点运算符的作用就是访问student对象中的name属性。
2、方括号运算符
EL中的中括号运算符与点运算符的功能相同,都用于访问JSP页面中某些对象的属性,当获取的属性名中包含一些特殊符号,如“-”或“?”等非字母或数字的符号,就只能使用中括号运算符访问该属性。
方括号运算符示例: u s e r [ " u s e r − n a m e " ] 3 、 E L 运算法的应用( 1 )点运算符和方括号运算符在某种情况下可以互换,如 {user["user-name"]} 3、EL运算法的应用 (1)点运算符和方括号运算符在某种情况下可以互换,如 user["username"]3EL运算法的应用(1)点运算符和方括号运算符在某种情况下可以互换,如{student.name}等价于

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值