JavaBean规范入门

JavaBean 其实就是一个 Java 类,但是它必须遵守一定的编写规则。

JavaBean 从功能上来讲,我将它分为业务 Bean 和实体 Bean 两类,下面我通过
一个实体 Bean 的开发示例,来讲述 JavaBean 开发中的一些基础技术。

实体 Bean 的主要作用是用来对系统中要用到的数据进行封装,这些数据包括
用户从前台的输入和从数据库中读取的数据等等,是 JavaBean 中较简单的一类。

SimpleBean.java:
package com.myapp.beans;
public class SimpleBean {
private String name;
private String password;
public SimpleBean() {
System.out.println("SimpleBean");
}
public void setName(String name) {
this.name = name;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return this.name;
}
public String getPassword() {
return this.password;
}
}
以上代码就是一个简单的 JavaBean 的示例,它严格遵守了 JavaBean 的编码

规则,即:
⑴ JavaBean 必须放在一个包中

⑵ JavaBean 必须申明为 public class

⑶ JavaBean 的所有属性必须申明为 private
⑷ 通过 setter 方法和 getter 方法设值和取值

⑸ 通过 JSP 调用时,则需一个无参的构造方法
⑹ 编写代码要严格遵守 Java 程序的命名规范

现在就可以在 JSP 页面里来调用这个 JavaBean 了。编写 index.jsp 页面如
下:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="com.myapp.beans.*"%>

html>
head>
meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-

title>simple JavaBean

body> <% SimpleBean sb = new SimpleBean() ; sb.setName("index") ; sb.setPassword("123456") ; %> h1>name:<%=sb.getName()%> h1>pass:<%=sb.getPassword()%> 通过 page 指令的 import 语句,就可以导入在 classes 文件夹里的所有的类,

这里我导入了刚刚写好的 JavaBean。然后就可以在 JSP 页面中使用它了,这里和
我们通常使用 Java 的类的方式是一样的。

这种使用方式在实际开发中是不会使用到的,因为 JavaBean 对象的生成应该

由容器来完成,而不是由程序员来手工完成,下面我们使用 JSP 标签来使用
JavaBean,我们将 index.jsp 修改如下:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="com.myapp.beans.*" %>

html>
head>
meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-

title>Simple Bean 2

jsp:useBean id="sb" scope="page" class="com.myapp.beans.SimpleBean" > body> <% sb.setName("index2") ; sb.setPassword("123456") ; %> h1>name:<%=sb.getName()%> h1>pass:<%=sb.getPassword()%> 标签用来创建 JavaBean 对象,它通常使用到的属性有三个:

id 表示对象名;scope 表示对象的作用范围;class 表示该对象所属的包和类。
对于以上的代码,我们认为还是不满意,因为给 JavaBean 赋值和取值的这个

过程,仍然是由程序员来完成的,这样还是会导致大量的 Java 代码与 HTML 代码
混编在一起,于是我们应该掌握 JavaBean 在 JSP 中使用的最佳方式。

一种调用方式:
<jsp:useBean id=" 对象" scope="作用范围" class="包.类"/>
四种设值方式:

<jsp:setProperty name="对象" property="*"/>
<jsp:setProperty name="对象" property="属性"/>

<jsp:setProperty name="对象" property="属性" param="参数名
"/>
<jsp:setProperty name="对象" property="属性" value="值"/>
一种取值方式:

<jsp:getProperty name="对象" property="属性"/>

以上列出了 JavaBean 在 JSP 中的常用方式,最常用的就是四种设值方式中的

第一种,它可以将表单中传来的值,全部自动填充到 JavaBean 里,例如:
index.jsp:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>

html>
head>
meta http-equiv="Content-Type" content="text/html; charset=gb2312" >
title>简单JavaBean

body> FORM METHOD=POST ACTION="show.jsp"> 帐号:
密码: INPUT TYPE="submit" VALUE="确定"> show.jsp: <%@page contentType="text/html;charset=gb2312" %> jsp:useBean id="sb" scope="page" class="com.myapp.beans.SimpleBean" /> HTML> HEAD> TITLE>简单JavaBean BODY> <%request.setCharacterEncoding( "gb2312");%> jsp:setProperty name="sb" property="*"/> h1>姓名: h1>密码:

要实现值的自动填充,必须使表单元素名与 JavaBean 中的属性名保持一致,
并且类型也要保持一致。

使用 JavaBean 的登录范例

LogBean.java:
package com.myapp.beans;
import java.util.*;
public class LogBean {
private String name;
private String password;
private Hashtable errors; // store err msg
public LogBean() {
name = "";
password = "";
errors = new Hashtable();
}
public boolean validate() {
boolean ok = true;
if (name.equals("") || name == null) {
errors.put("name", " plz niput ur name");
name = " ";
ok = false;
}
if (password.equals("") || password == null ||
password.length() < 6) {
errors.put("password", "password length mush gt
);
password = " ";
ok = false;
}
return ok;
}
public void setName(String name) {
this.name = name;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return this.name;
}
public String getPassword() {
return this.password;
}
public String getErrorMsg(String message) {
String errorMsg = (String) errors.get(message.trim());
return ((errorMsg == null) ? " " : errorMsg);

}
}
这个 JavaBean 里增加了表单数据校检功能。

index.jsp:
<%@page contentType="text/html;charset=gb2312" %>
jsp:useBean id="loginfo" class="com.myapp.beans.LogBean"
scope="request"/>
HTML>
HEAD>
TITLE>登录JavaBean

BODY> FORM METHOD=POST ACTION="login.jsp"> 帐号: <%=loginfo.getErrorMsg("name") %>
密码: <%=loginfo.getErrorMsg("password") %>
INPUT TYPE="submit" VALUE="确定">

注意到这个登录页可以用来显示错误信息。
login.jsp:

<%@ page contentType ="text/html;charset=gb2312"%>
jsp:useBean id ="loginfo" class ="com.myapp.beans.LogBean" scope ="request" />
HTML>
HEAD>
TITLE> 简单JavaBean

BODY> <%request.setCharacterEncoding( "gb2312");%> jsp:setProperty name="loginfo" property ="*"/> <% if(loginfo.validate()) { %> jsp:forward page="show.jsp"/> <% } else{ %> jsp:forward page="index.jsp" /> <% } %>

show.jsp:
<%@page contentType="text/html;charset=gb2312" %>
jsp:useBean id="loginfo" class="com.myapp.beans.LogBean"
scope="request"/>
HTML>
HEAD>
TITLE>简单JavaBean

BODY> 表单数据符合要求! h1>姓名: h1>密码: 这三个页面共用了一个在 request 范围内有效的 JavaBean 对象,

index.jsp 利用它来显示错误信息,show.jsp 利用它来显示表单数据。

原文地址:https://www.cnblogs.com/cyy-13/p/5718601.html