第4章 JavaBean基础


第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(PropertyType value); //set方法来设置属性的
public get(); //set方法用来获取属性的值
public Boolean is(); //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(int index,); //用来设置属性的值
public void set( value);
public get(); //用来获取属性的值
public get(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交互:动作指令、动作指令、动作指令
1.动作指令
作用:用来在JSP页面中获取或创建一个JavaBean组件的实例并指定它的名字和作用范围。
动作指令的语法格式:

或者

body //执行语句

指令含义:
在页面中引用一个已经存在或创建一个新的由class属性定的Java类的实例,然后绑定到名字由id属性给出的变量上,且该变量只能在scope属性所指定的范围内有效。第二中形式,只有第一次实例化时,才执行body(JSP语句)部分,如果是获取现有的JavaBean实例,则不执行body部分。这几个属性的作用:
动作指令属性的作用
id属性--->在定义范围内确认JavaBean实例变量,也可以用该变量引用JavaBean实例;
class属性--->引用的JavaBean的完整类名。JSP2.0规范要求JavaBean必须要有包名;
scope属性--->JavaBean存在范围及id变量名有效范围。范围由小到大依次为:page、request、session和application。默认为page;
示例4.3通过完整示例来看JavaBean中的动作指令如何使用: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" %>


<%-- 引入JavaBean --%>

<%
student.setAge(20); %>
student.setName("李默");

名字是:<% out.println(student.getName()); %>


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





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

name="beanname":表示实例名称,对应id属性;
propperty="propertyName":表示要获取属性的名称。
注意:
在使用动作指令之前,必须使用动作指令来获取或者创建JavaBean实例。
示例4.4修改useBean.jsp为useBean2.jsp进行动作指令的测试。
<%@ page language="java" import="java.util.*" contentType="text/html;charset=bg2312" %>


<%-- 引入JavaBean --%>

<% student.setAge(20);
student.setName("李默"); %>

名字是:


年龄是:/





动作指令
用来设置已经实例化的JavaBean对象的属性值。相当于获得属性值的setXXX()方法。该动作指令有3种不同的语法形式。
1.通过表达式或字符串常量设置属性
具体语法格式:
property="propertyName" //表示要获取属性名称
value="<%=expression %>|字符串/>" //表示设置属性值表达式或字符串常量
示例4.5修改useBean得到useBean3.jsp进行动作指令测试
<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312" %>


<%-- 引入JavaBean --%>



名字是:


年龄是:





你可能感兴趣的:(轻松学Java)