JavaBean是一个可重复使用的软件组件
是遵循一定标准、用Java语言编写的一个类
一般实现网页中的业务逻辑或数据库操作
特点:
- 可以实现代码的重复利用
- 易编写、易维护、易使用
- 跨平台
1.编写Javabean
如果类的成员变量的名字是xxx,类中提供两个方法:
- getXxx() 用来获取属性xxx
- setXxx() 用来修改属性xxx
注意:
- 对于boolean类型的成员变量,允许使用“isXxx”
- 类中声明的方法的访问属性都必须是public的。
- 类中声明的构造方法必须是public、无参数的。
package Test;
public class StudentsBean implements java.io.Serializable
{
int age;
//public 、 无参的构造方法
public StudentsBean() {
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2.Bean字节码的保存
- ① 在当前Web服务目录下建立如下目录结构:
Web服务目录\WEB-INF\classes - ② 根据类的包名,在目录classes下建立相应的子目录:
Web服务目录\WEB-INF\classes\tom\jiafei - ③ 将Bean字节码保存在相应的子目录.
即把编译后得到的 .class 文件拷贝到 <JSP 项目>/WebContent/WEB-INF/classes/子目录
![](https://i-blog.csdnimg.cn/blog_migrate/c2a974540f3b07488c306f94747cf7de.png)
3.使用Javabean
使用JSP动作标记:useBean,来加载使用bean。
<jsp:useBean id="bean的名字" class="创建beans的字节码"
scope="bean有效范围"/>
<jsp:useBean id= "bean的名字" class="创建beans的类"
scope= "bean有效范围">
</jsp:useBean>
例如:
<jsp:useBean id="circle" class="Test.StudentsBean" scope="page"/>
- scope 的值可以是 page,request,session 或 application。
- id值可任意只要不和同一 JSP 文件中其它
<jsp:useBean>
中 id 值一样就行了。
4.Bean的加载原理
![](https://i-blog.csdnimg.cn/blog_migrate/badc92e2a512449c2531d22a8c2a4411.png)
5.Bean的有效范围(生命周期)
即:
Scope取值:page、request、session 、application
request存活时间略长于page
- page
JSP引擎分配给每个JSP页面的bean是互不相同的
不同用户的scope取值是page的bean是互不相同的 - request
JSP引擎分配给每个JSP页面的bean是互不相同的
不同用户的scope取值是request的bean是互不相同的 - session
JSP引擎分配给不同页面的bean是同一个bean
不同用户的scope取值是session的bean是互不相同的 - application
Web服务目录下所有的JSP页面分配一个共享的bean
不同用户的bean是同一个,直到服务器关闭
6.获取和修改bean的属性
- 可以使用动作标记getProperty、setProperty;
- 必须保证bean有相应的getXxx和setXxx方法;
- 在程序片中直接用bean调用方法就不需要方法命名遵守getXxx和setXxx规则。
getProperty
获得bean的属性值,并将这个值用串的形式发送给用户的浏览器。
<jsp:getProperty name= "bean的名字" property= "bean的属性" />
或
<jsp:getProperty name= "bean的名字“ property= "bean的属性"/> </jsp:getProperty>
setProperty
- (1)将bean属性的值设置为一个表达式的值或字符串
<jsp:setProperty name=“bean的名字" property="bean的属性"
value= "<%=expression%>"/>
<jsp:setProperty name=" bean的名字" property="bean的属性"
value=字符串/>
- (2)通过HTTP表单的参数的值来设置bean的相应属性的值
用HTTP表单的所有参数的值设置bean相对应的属性的值,参数名必须一致:<jsp:setProperty name= "bean的名字" property="*" />
用HTTP表单的某个参数的值设置bean的某个属性的值,不要求参数名一致:<jsp:setProperty name= " bean的名字" property= "bean属性名" param= "表单中的参数名" />
<jsp:useBean id="students"
<jsp:setProperty name="students" property="firstName"
value="小强"/>
</jsp:useBean>
<p> 学生名字:
<jsp:getProperty name="students" property="firstName"/>
</p>
运行后:
学生名字: 小强