1. JavaBean 简介

定义一:JavaBean 是一种可重复使用的、跨平台的软件组件。JavaBean 分为两种,一种是有用户界面的 JavaBean,还有一种是没有用户界面的 JavaBean。后者主要用来表示业务数据或者处理事务。JSP 通常访问后一种 JavaBean。

定义二:JavaBean 是一种JAVA语言写成的可重用组件。JavaBean符合一定规范编写的Java类,不是一种技术,而是一种规范。大家针对这种规范,总结了很多开发技巧、工具函数。符合这种规范的类,可以被其它的程序员或者框架使用。

上面两段话,第一段是书本定义,比较严谨规范,第二种则稍微白话,但是都提到了一个词 —— 组件,所以首先了解下什么叫组件。这里直接引用知乎上的一段回答:

组件(Component)是是一个含义很大的概念,一般是指软件系统的一部分,承担了特定的职责,可以独立于整个系统进行开发和测试,一个良好设计的组件应该可以在不同的软件系统中被使用(可复用)。例如V8引擎是Chrome浏览器的一部分,负责运行javascript代码,这里V8引擎就可以视为一个组件。V8引擎同时也是Node.js的javascript解释器,这体现了组件的可复用性。

从上面的回答中可以初步的理解 JavaBean,首先它是一个软件组件,即它作为 web 应用的一部分,承担了特定的职责。它可以独立于 web 应用而存在,但是脱离了 web 应用本身又没有什么意义。毕竟一个零件只有放在一个系统中才能展示出它的价值。JavaBean 的作用在第一段已经说得很明确了 —- 表示业务数据或者处理事务。JSP 通过访问 JavaBean 的方式来做成某些事情。

2. JavaBean 的特性

一个标准的 JavaBean 具有以下特性:

  • 是一个 public 的类
  • 有一个不带参数的构造方法
  • 属性均为 private
  • 通过 set 方法设置属性,通过 get 方法获取属性
  • 如果希望 JavaBean 被持久化,需要让其实现 Serializable 接口

说白了,JavaBean 其实就是一种符合某些特性的 Java 类。但是在 JavaBean 中不仅可以定义 get 和 set 方法,还可以像普通 Java 类一样定义一些其他的完成特定功能的方法。

3. POJO

POJO 全称为 Plain Ordinary Java Object,即普通 Java 类,它是一种比 JavaBean 更加“纯净”的类。

之所以说它纯净是因为在 POJO 中不去定义和业务逻辑相关的代码,而仅仅是作为业务数据的展示,它里面只含有 get、set 方法。通常一个 POJO 对应一个数据库表,类中的属性和表中的字段一一对应,则可以直接通过 POJO 类对象来作为表的一个记录,还可以通过 get、set 方法轻松的获取表中的数据。

4. JSP 访问 JavaBean

JSP 访问 JavaBean 需要以下两步:

  1. 通过 <%@ page import=""%> 导入 JavaBean 类
  2. 通过 <jsp:useBean> 标签声明 JavaBean 对象

之后就可以通过以下方法来操作 JavaBean 对象了:

  1. 通过 <jsp:getProperty> 标签访问 JavaBean 属性
  2. 通过 <jsp:setProperty> 标签给 JavaBean 对象属性赋值

<jsp:useBean> 标签中,可以通过 scope 属性设置 JavaBean 的作用域(page、request、session、application)。