第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<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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值