文章目录
EL表达式和JSTL
一、什么是JavaBean
访问 JavaBean的属性
BeanUtils 工具
二、初识EL
EL隐式对象
Web域相关对象
param和paramValues对象
Cookie 对象
一、什么是JavaBean
JavaBean是Java开发语言中一个可以重复使用的软件组件,它本质上就是一个为了规范JavaBean的开发,Sun 公司发布了JavaBean的规范,它要求一一个标准的JavaBean组件需要遵循一定的编码规范,具体如下。
(1) 它必须具有一 个公共的、无参的构造方法,这个方法可以是编译器自动产生的默认构造方法。
(2) 它提供公共的setter方法,让外部程序设置和获取JavaBean的属性。为了让读者对JavaBean有一个直观上的认识,接下来简单的JavaBean。首先在Eclipse为chapter09 的Web项目,然后在项目的src目录下创建名为cn.itcast.chapter09 javabean的包,再在该包下创建Book类,代码如图所示。
book.java
定义了一个Book类,该类就是一个JavaBean,它没有定义构造方法,Ja编译时,会自动为这个类提供一个默认的构造方法。 Book 类中定义了一个price属性,并提供了公共的setPrice()和getPrice()方法供外界访问这个属性。
访问 JavaBean的属性
在讲解面向对象时,经常会使用类的属性,类的属性指的是类的成员变量。在JavaBean中同样也有属性,但是它一一个概念,它是以方法定义的形式出现的,这些方法必须遵循一定的命名规范。例如,在JavaBean中包含-一个String类型的属性name,那么在JavaBean中必须至少包含getName()和setName()方法中的一个,这两个方法的声明如下所示。
public String getName(){…}
public void setName (String name) { . . . }
需要注意的是, 对于JavaBean属性的命名方式有一个属性的类,它的命名方式应该使用is/set,而不是get/set。 例如,有-一个boolean类型的属性maried,该属性所对应的方法声明如下所示。
public boolean isMarried(){…}
public void setMarried (boolean married){…}
从上面的代码可以看出,married 属性的setter方法命名方式没有变化,而getter方()方法。当然,如果一定要写成getMarried()也是可以的,只不过isarried()更符合命名规范。
通过上面的学习,读者对JavaBean 组件有了一个初步的了解,为了更加深刻地理解JavaBean 属性的定义,接下来通过具体的案例来实现一个JavaBean程序。
BeanUtils 工具
BeanUtils 类的常用方法及其功能的描述,掌握这些方法对灵活运用BeanUtis工具尤为重要。为了让读者熟悉BeanUtils 类的常用方法,接下来通过一个案例来演示使用setProperty()、getProperty()和 populate()方法访问JavaBean的属性。
(1) 在项目的lib 目录中添加已下载的commons-beanutils- 1.9.2.jar 和Logging的JAR包commons-logging-1.2.jar,并将这两个JAR包发布到类路径中。
二、初识EL
由于EL可以简化JSP页面的书写,因此,在JSP的学习中,掌握EL是相当重要的。要使用EL表达式,首先要EL表达式的语法非常简单,都是以“$("开始,以“]”结束的,具体格式如下。
${表达式}
需要注意的是,“${表达式}”中的表达式必须符合EL语法要求。相关知识,将在下面的小节进行详细讲解。
为了证明EL表达式可以简化JSP页面,接下来通过一个案例来对比使用Java代码与EL表达式获取信息的不同。
首先,
在项目的src目录下创建包cn.itcast chapter07.servlet,在包中创建一个用于 存储用户名和密码的类MyServlet,代码如下图