一、JavaBean简介
JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:
这个Java类必须具有一个无参的构造函数
属性必须私有化。
私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。
使用JavaBean的好处:
可以使得JSP页面变得清晰;
节省软件开发时间(可以直接使用已经测试和可信的已有组件,避免了重复开发);
降低系统维护的难度;
为JSP应用带来了更多的可伸缩性,使系统变得健壮和灵活。
JavaBean的属性:
JavaBean的属性可以是任意类型,并且一个JavaBean可以有多个属性。每个属性通常都需要具有相应的setter、 getter方法,setter方法称为属性修改器,getter方法称为属性访问器。
属性修改器必须以小写的set前缀开始,后跟属性名,且属性名的第一个字母要改为大写,例如,name属性的修改器名称为setName,password属性的修改器名称为setPassword。
属性访问器通常以小写的get前缀开始,后跟属性名,且属性名的第一个字母也要改为大写,例如,name属性的访问器名称为getName,password属性的访问器名称为getPassword。
一个JavaBean的某个属性也可以只有set方法或get方法,这样的属性通常也称之为只写、只读属性。
二、JSP使用语法:
JavaBeans的标签主要有三个:
<jsp:useBean>标签:在网页中创建一个Bean
<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>
id属性用于指定JavaBean实例对象的引用名称和其存储在域范围中的名称。
class属性用于指定JavaBean的完整类名(即必须带有包名)。
scope属性用于指定JavaBean实例对象所存储的域范围,其取值只能是page、request、session和application等四个值中的一个,其默认值是page。
<jsp:setProperty>标签:用于为Bean中的属性赋值
(1)<jsp:setPropertyname=“beanName”
property=“propertyName”
value=“propertyValue” />
用来为bean的属性赋值
其中name指出是在操作哪个bean,property指出对该bean的哪个属性赋值,value用来指定给属性赋的值。
(2). <jsp:setPropertyname=“beanName”
property=“propertyName”
param=“paramName” />
这种用法表示将一个传入参数的值赋给bean的某个属性。
其中name指出是在操作哪个bean,property指出对该bean的哪个属性赋值,而param表示传入参数的名字。
<jsp:getProperty>标签:用于获取Bean中属性的值
<jsp:getPropertyname=“beanname”
property=“propertyname” />
用于获取bean中某个属性的值,并显示在当前页面上。
name指出了要获取哪个bean的属性值,property指出要获取该bean的哪个属性值
三、JavaBean的存在范围
page范围
request范围
session范围
appliaction范围
以上范围对应的恰恰是内置对象中pageContext、request、session、application内置对象属性的范围。
四、EL表达式和JSTL标签快速入门
lEL表达式用于获取数据,在JSP页面中可使用${标识符}的形式,通知JSP引擎调用pageContext.findAttribute()方法,以标识符为关键字从各个域对象中获取对象。如果域对象中不存在标识符所对应的对象,则返回结果为””(注意,不是null)。
示例:使用EL表达式获取request、session、applection域中的数据。
lEL表达式中也可以使用${customerBean.address}的形式来访问JavaBean对象的属性。
示例:使用EL表达式获取Bean属性。
结合JSTL标签,EL表达式也可轻松获取各种集合中的元素。
示例:使用EL表达式获取List、Map集合中的元素。
JSTL标签库
JSTL是sun公司开发的一套标签库,使用JSTL可以在页面中实现一些简单的逻辑,从而替换页面中的脚本代码。
在页面中使用JSTL标签需完成以下2个步骤:
1、导入jstl.jar和standerd.jar这两个JSTL的jar文件。
2、在JSP页面中使用<%@ tablib url=“” prifix=“”%>元素导入标签库。
JSTL标签库中常用标签:
<c:foreach var=“”items=“”>
<c:if test=“”>