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

第4章 JavaBean基础

2014-08-02 12:41 441 查看
第4章 JavaBean基础

JavaBean是一种Java语言写成的可重用组件,Jsp可方便支持此组件的使用。用户写入JavaBean的功能可直接在JSP页面调用对应的JavaBean。一次编写可任何地方调用。
创建JavaBean
JavaBean类

JavaBean类创建语法格式:

public class 类名称{ //JavaBean类是公有类,必须声明为public

//类属性的定义 //类主体,包括属性和方法

//类方法的定义

}

标准的JavaBean类的几个特性:

1.它是公开的(public)类;

2.它有默认的构造方法,也就是不带参数的构造方法(在实例化JavaBean对象时,需要调用默认的构造方法);

3.它提供getXXX()和setXXX()方法来让外部程序设置和获取JavaBean属性;

一般来说,符合上面条件的类,都可以将其看做JavaBean类。
JavaBean属性和方法
JavaBean的属性用于表示其内部状态 。Java Web其属性主要用来存储中间数据。

JavaBean属性定义:

private 数据类型 属性名称 //JavaBean属性为private类型
对于JavaBean中生命的属性,在类中必须定义用来获取或更改属性值的两个方法------------getXXX()和setXXX()方法。

JSP文件就运用JavaBean方法在需要时从JavaBean中把这些属性取出,然后在客户端显示。JavaBean类特定格式要求我们可以将其属性分为简单方法和索引方法。
1.简单方法(一个拥有get或者set方法的方法)

在JavaWeb中使用JavaBean属性一般都是读/写类型,必须采用标示命名来定义getXXX()和setXXX()方法。读于布尔类型的值还可以采用is()属性来获取属性值。简单方法的使用语法:

public void set<PropertyName>(PropertyType value); //set方法来设置属性的

public <ProperyType> get<PropertyName>(); //set方法用来获取属性的值

public Boolean is<PropertyName>(); //is()方法Boolean类型属性用来获取属性值
[实例4.1]JavaBean程序中简单方法如何运行:ProductBean.java

public class ProductBean

{

//产品的名字name,类型是String

private String name;

//产品是否以生产好done,类型boolean

private boolean donw=false;

//getXXX方法,返回这个属性的值

public String getName(){

return this.name;

}

//setXXX()方法,设置这个属性的值

public void setName(String name){

this.name=name;

}

//对于boolean类型的属性,可使用isXXX方法来获得属性

public boolean isDone(){

trturn this.done;

}

//设置boolean类型的属性

public void setDone(boolean done)

{

this.done=done;

}

}
2.索引方法(一个有get/set方法的数组方法)

get和set方法的作用简单类型的方法一样,即用来获取和设置属性值。索引方法不止一个get和set方法,可能有两个get方法,但参数不一样。语法格式:

public void set<PropertyName>(int index,<PropertyType value>); //用来设置属性的值

public void set<PropertyName>(<PropertyType[]> value);

public <PropertyType[]> get<PropertyName>(); //用来获取属性的值

public <PropertyType> get<PropertyName>(int index);
实例4.2JvaBean程序中索引方法如何运行:CatagroyBean.java

public class CatagroyBean{

//product为属性的名字,类型是String[]

private String[] product=

new String[]{"product1","product2","product3","product4"};

//getXXX方法,返回这个属性的值

public String[] getProduct(){

return this.product;

}

//setXXX方法,设置这个属性的值

public void setProduct(String[] product){

this.product=product;

}

//另外的设置属性和获取属性值的方法

public void setProduct(int index,String value){

product[index]=value;

}

public String getProduct(int index){

return product[index];

}
}

JSP和JavaBean交互的动作指令

JSP有3中动作指令与JavaBean交互:<jsp:useBean>动作指令、<jsp:setProperty>动作指令、<jsp:getProperty>动作指令

1.<jsp:useBean>动作指令

作用:用来在JSP页面中获取或创建一个JavaBean组件的实例并指定它的名字和作用范围。

<jsp:useBean>动作指令的语法格式:

<jsp:useBean id="name" scope="page|request|session|application" class="className"/>

或者

<jsp:useBean id="name" scope="page|request|session|application" class="className">

body //执行语句

</jsp:useBean>

指令含义:

在页面中引用一个已经存在或创建一个新的由class属性定的Java类的实例,然后绑定到名字由id属性给出的变量上,且该变量只能在scope属性所指定的范围内有效。第二中形式,只有第一次实例化时,才执行body(JSP语句)部分,如果是获取现有的JavaBean实例,则不执行body部分。这几个属性的作用:
<jsp:useBean>动作指令属性的作用

id属性--->在定义范围内确认JavaBean实例变量,也可以用该变量引用JavaBean实例;

class属性--->引用的JavaBean的完整类名。JSP2.0规范要求JavaBean必须要有包名;

scope属性--->JavaBean存在范围及id变量名有效范围。范围由小到大依次为:page、request、session和application。默认为page;
示例4.3通过完整示例来看JavaBean中的<jsp:useBean>动作指令如何使用:Student.java

pachage com.yzty.xue;

public class Student{

private String name; //声明变量属性

private int age;

public String getName(){

return name;

}

public void setName(String name){//name属性的get和set方法

this.name=name;

}

public int getAge(){

return age;

}

public void setAge(int age){//age属性的get和set方法

this.age=age;

}

}

然后编写一个引入JavaBean的JSP页面useBean.jsp

<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312" %>

<html>

<body><font size=4>

<%-- 引入JavaBean --%>

<jsp:useBean id="student" class="com.yzty.xue.Student" scope="page"/>

<%

student.setAge(20); %> <!-- 设置变量属性 -->

student.setName("李默");

<p>名字是:<% out.println(student.getName()); %></p> <!-- 获取变量属性值 -->

<p>年龄是:<% out.println(student.getAge()); %></p>

</font>

</body>

</html>
<jsp:getProperty>动作指令

JSP页面中可用<jsp:getProperty>和<jsp:setProperty>动作指令来代替一般的get和set方法。<jsp:getProperty>用来获取JavaBean中指定值
将其转化为一个字符串后输出到页面。作用相当于getXXX()方法。

语法格式:

<jsp:getProperty name="beanname" propperty="propertyName"/>

name="beanname":表示实例名称,对应id属性;

propperty="propertyName":表示要获取属性的名称。

注意:

在使用<jsp:getProperty>动作指令之前,必须使用<jsp:useBean>动作指令来获取或者创建JavaBean实例。
示例4.4修改useBean.jsp为useBean2.jsp进行<jsp:getProperty>动作指令的测试。

<%@ page language="java" import="java.util.*" contentType="text/html;charset=bg2312" %>

<html>

<body><font size=4>

<%-- 引入JavaBean --%>

<jsp:useBean id="student" class="com.yzty.xue.Student" scope="page"/>

<% student.setAge(20);

student.setName("李默"); %>

<p>名字是:<jsp:getProperty name="student" property="name"/></p>

<p>年龄是:<jsp:getProperty name="student" property="age">/</p>

</font>

</body>

</html>
<jsp:setProperty>动作指令

用来设置已经实例化的JavaBean对象的属性值。相当于获得属性值的setXXX()方法。该动作指令有3种不同的语法形式。
1.通过表达式或字符串常量设置属性
具体语法格式:

<jsp:setProperty name="beanname" //表示实例名称,对应id属性

property="propertyName" //表示要获取属性名称

value="<%=expression %>|字符串/>" //表示设置属性值表达式或字符串常量
示例4.5修改useBean得到useBean3.jsp进行动作指令测试

<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312" %>

<html>

<body><font size=4>

<%-- 引入JavaBean --%>

<jsp:useBean id="student" class="com.yzty.xue.Student" scope="page"/>

<jsp:setProperty name="student" property=="name" value="李默"/>

<jsp:setProperty name="student" property=="name" value=20/>

<p>名字是:<jsp:getProperty name="student" property="name"/></p>

<p>年龄是:<jsp:getProperty name="student" property="age"/></p>

</font>

<body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javaweb java web javabean