1. 什么是JavaBean
JavaBean 是一种JAVA语言写成的可重用组件。
为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 的属性。
JavaBean可分为两种:
- 一种是有用户界面(UI,User Interface)的JavaBean;
- 还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。
JSP通常访问的是后一种JavaBean,我们下面说的都是第二种Javabean。
注意:
- JavaBean类需要是public,这样外部才能够访问
- JavaBean类中的属性都需要进行封装,也就是将属性设置为private
- 如果封装的属性需要被外部操作,则需要写setter和getter方法
JavaBean类举例:
public class FirstBean { private String name; private int age; public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public String getName() { return this.name; } public int getAge() { return this.age; } }
2. 使用JavaBean
2.1 使用JavaBean的好处
- 可以将html和java代码分离,后期维护更加方便
- 可以让代码得到复用
2.2 在JSP中如何使用JavaBean
注意需要在使用的地方引入JavaBean,引入JavaBean可以
- 采用page的import
- 也可以使用jsp的useBean(用的多)
使用page的import
//xiaoD是包名 <%@ page import="xiaoD.FirstBean" %> <% FirstBean firstBean = new FirstBean(); firstBean.setName("xiaoD"); firstBean.setAge(21); %> <%=firstBean.getName() %> <%=firstBean.getAge() %>
输出
xiaoD 21
使用jsp的useBean
<jsp:useBean id="firstBean" scope="request" class="xiaoD.FirstBean" /> <% firstBean.setName("xiaoD"); firstBean.setAge(21); %> <%=firstBean.getName() %> <%=firstBean.getAge() %>
输出
xiaoD 21
useBean使用注意:
这里的id是实例化以后的id,scope是对象的作用范围,可以取值为page,request,session,application。
- 如果我们在一个页面设置了其scope为page,那么跳转以后就获取不到了。
- 如果我们在一个页面设置了其scope为request,那么通过服务器跳转以后,如果想要获取,需要在获取的JSP页面也加上下面代码,指明作用范围
<jsp:useBean id="firstBean" scope="request" class="xiaoD.FirstBean" />
在jsp中删除JavaBean
(使用完成以后,不再使用了,需要删除)
//page范围的删除 pageContext.removeAttribute("实例对象的名称"); //request范围的删除 request.removeAttribute("实例化对象的名称"); //session范围的删除 session.removeAttribute("实例化对象的名称"); //application范围的删除 application.removeAttribute("实例化对象的名称");
3. 使用JSP标签设置和获取属性
3.1 设置属性
3.2 获取属性
<jsp:getProperty name="实例化对象的名称" property="属性名称" />