您的位置:首页 > 编程语言 > Java开发

JavaBean规范入门

2016-07-29 15:33 417 查看
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 中使用的最佳方式。

一种调用方式:

四种设值方式:

一种取值方式:

以上列出了 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 利用它来显示表单数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: