第5章-JavaBean编程_第1页
第5章-JavaBean编程_第2页
第5章-JavaBean编程_第3页
第5章-JavaBean编程_第4页
第5章-JavaBean编程_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 JavaBean编程技术编程技术 内容提要n组件技术组件技术nJavaBean概述(什么是?如何写?如何用?)概述(什么是?如何写?如何用?)nJavaBean属性属性nJavaBean的作用域的作用域技术重技术重点难点点难点 组件技术概述 n现在软件开发都已经转向了基于组件的开发,目前具备代表性的组件技术有微软的COM、COM+,有Sun的JavaBean和EJB(Enterprise Java Bean),另外还有CORBA(Common Object Request Broker Architecture,公共对象请求代理结构)。 JavaBean简介 nJavaBean是一种软件组件

2、模型。它与其它软件对象相互作用,决定如何建立和重用软件组件。这些可重用软件组件被称之为Bean。Bean使用现有的Bean帮助开发新的计划,进而,建立它们之间的关系。n在Sun公司的Java Bean规范的定义中,Bean的正式说法是:“Bean是一个基于Sun公司的JavaBean规范的、可在编程工具中被可视化处理的可复用的软件组件”。JavaBean特性 nJavaBean是基于Sun公司的JavaBean规范的,可在编程工具中被可视化处理的可复用的软件组件。因此JavaBean具有4个基本特性:n独立性n可重用性n在可视化开发工具中使用n状态可以保存编写JavaBean 编写JavaBe

3、an就是编写一个Java类,所以只要会写类就能编写一个Bean,一个完整JavaBean在类的命名上需要遵守4点。n1. 如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值,在类中使用两个方法:ngetXxx(),用来获取属性xxx。nsetXxx(),用来修改属性xxx。n2. 对于boolean类型,允许使用is代替get和set。n3. 类中方法的访问属性必须是public的。n4. 类中如果有构造方法,那么这个构造方法也是public的,并且是无参数的。编写JavaBean(HelloWorld.java) public class Hello Hello()/无参构造方法

4、private String name;private boolean info;public String getName() return name;public void setName(String name) = name;public boolean isInfo() return info;public void isInfo(boolean info) = info; 使用JavaBean n在JSP中专门提供三个页面指令来和JavaBean交互,分别是jsp:useBean指令、jsp:setProperty指令和jsp:getProp

5、erty指令。njsp:useBean指令指定JSP页面中包括的JavaBean,具体的语法格式为:n使用JavaBean n其中,id是当前页面中引用JavaBean的名字,JSP页面中的Java代码将使用这个名字来访问JavaBean。scope:指定JavaBean的作用范围,可以取4个值。npage:JavaBean只能在当前页面中使用。在JSP页面执行完毕后,该JavaBean将会被进行垃圾回收。nrequest:JavaBean在相临的两个页面中有效。nsession:JavaBean在整个用户会话过程中都有效。napplication:JavaBean在当前整个Web应用的范围内

6、有效。使用JavaBean(HelloWorld.jsp) Hello World 修改前 例子:HelloWorld.jsp使用JavaBean(HelloWorld.jsp)   修改后 使用JavaBean JavaBean属性 简单属性 索引属性 束缚属性 限制属性 JavaBean的属性 简单属性 JavaBean的简单属性(Simple属性)表示为一般数据类型的变量并且getXXX()和setXXX()方法是以属性来命名的。例如: public class Hello Hello()/无参构造方法private String name;/定义String类型的简单

7、属性nameprivate boolean info;public String getName() /简单属性的getXxx()方法return name;public void setName(String name) /简单属性的setXxx()方法 = name;public boolean getInfo() /布尔类型的取值方法return info;public void setInfo(boolean info) /布尔类型的setXxx方法 = info; 索引属性 JavaBean的索引属性(Indexed属性)表示一个数组值或者一个集合

8、,与Simple属性一样可以使用getXXX()和setXXX()方法来获取值,例如:public int array=new int8;public int getArray() /返回整个数组return array;public void setArray(int array) /为整个数组赋值this.array = array;public void setArray(int index,int value) /为数组中的某个元素赋值this.arrayindex=value;public int getArray(int index)/返回数组中的某个值return arrayin

9、dex; 使用Indexed属性除了表示数组之外,还可以表示集合类。 例子:HelloIndex.jspn利用字符串值逐一对javabean赋值n利用表单的元素(变量)逐一对javabean赋值n利用表单的元素统一对javabean赋值修改JavaBean的属性方法修改修改JavaBean属性属性( j6_05.java)案例名称:带属性的案例名称:带属性的JavaBean程序名称:程序名称:package sample;public class j6_05private String sample1 = Start value1;private String sample2 = Start

10、value2;public String getSample1() return sample1;public void setSample1(String newValue) if(newValue != null) sample1 = newValue;public String getSample2() return sample2;public void setSample2(String newValue) if(newValue != null) sample2 = newValue;n利用setProperty为javabean中属性赋值n利用getProperty取javabe

11、an中属性值案例名称:修改案例名称:修改JavaBean的属性方法一的属性方法一调用调用jsp:setProperty之前的值:之前的值:调用调用jsp:setProperty之后的值:之后的值: 调用调用jsp:setProperty之前的值:之前的值:调用调用jsp:setProperty之后的值:之后的值:j6_06.jspn利用form表单的元素逐一对javabean赋值,语法是: 其中param=“abc” 中的abc是表单元素的名称案例名称:修改案例名称:修改JavaBean的属性方法二的属性方法二输入输入1:输入输入2:j6_08.jspn利用form表单的元素统一对javabe

12、an赋值,表单元素的名字与javabean的属性名字必须一致,可以对所有的属性赋值,语法为:案例名称:修改案例名称:修改JavaBean的属性方法三的属性方法三输入输入1:输入输入2:j6_07.jspJavaBean的作用域的作用域 page作用域 request作用域 session作用域 application作用域 appliactionsessionpagerequestpage作用域作用域 page作用域在这4种类型中范围是最小的,客户端每次请求访问时都会创建一个JavaBean对象。JavaBean对象的有效范围是客户请求访问的当前页面文件,当客户执行当前的页面文件完毕后Java

13、Bean对象结束生命。 在page范围内,每次访问页面文件时都会生成新的JavaBean对象,原有的JavaBean对象已经结束生命期。 request作用域作用域 当scope为request时,JavaBean对象被创建后,它将存在于整个request的生命周期内,request对象是一个内建对象,使用它的getParameter方法可以获取表单中的数据信息。 Request范围的JavaBean与request对象有着很大的关系,它的存取范围除了page外,还包括使用动作元素和包含的网页,所有通过这两个操作指令连接在一起的JSP程序都可以共享同一个JavaBean对象。 session作

14、用域作用域 当scope为session时,JavaBean对象被创建后,它将存在于整个session的生命周期内,session对象是一个内建对象,当用户使用浏览器访问某个网页时,就创建了一个代表该链接的session对象,同一个session中的文件共享这个JavaBean对象。客户对应的session生命期结束时JavaBean对象的生命也结束了。在同一个浏览器内,JavaBean对象就存在于一个session中。当重新打开新的浏览器时,就会开始一个新的session。每个session中拥有各自的JavaBean对象。 application作用域作用域 当scope为applicat

15、ion时,JavaBean对象被创建后,它将存在于整个主机或虚拟主机的生命周期内,application范围是JavaBean的生命周期最长的。如果服务器不重新启动,scope为application的JavaBean对象会一直存放在内存中,随时处理客户的请求,直到服务器关闭,它在内存中占用的资源才会被释放。作用域例子(作用域例子( Scope.java )package scope;public class Scope public Scope() /无参的构造函数private int number=0; /初始化变量number的值为0public int getNmuber() /增加

16、并返回变量number的值number+;return number; public void setNumber(int newNumber) this.number = newNumber; /给变量number赋新值 作用域例子(作用域例子( scope.jsp ) 作用域例子(作用域例子( scope.jsp ) 作用域例子作用域例子程序运行结果如图1所示: 关闭该浏览器,重新打开新的浏览器后的结果如图2所示: 图1图2组合条件查询nString sql=SELECT * FROM course ; if(co_id=null)|(co_id.equals() ) sql+=where

17、 co_id like %; else sql+=where co_id =+co_id+; if (co_name!=null)&(co_name.length()!=0) sql+=AND co_name like%+co_name+%; if(teacher!=null)&(teacher.length()!=0) sql+=AND teacher =+teacher+;例子:cou_sel_bean.jsp分页显示记录n分页:是由于记录太多,不能在一个页面中显示。n分页的方法:n第一种n一次把所有数据都查询到,然后在每页显示指定的数据,即获取总记录数m,确定每页显示记录

18、数n,则总页数为:m/n或m/n+1 (多个页面)n第二种n多次查询数据库,每次只获取本页的数据(单个页面)分页显示记录n分页:是由于记录太多,不能在一个页面中显示。n分页的方法:n第一种n一次把所有数据都查询到,然后在每页显示指定的数据,即获取总记录数m,确定每页显示记录数n,则总页数为:m/n或m/n+1 (多个页面)n第二种n多次查询数据库,每次只获取本页的数据(单个页面)假设总记录数为RowCount,每页显示数量是PageSize,那么总页数的计算公式是:1.如果RowCount除以PageSize的余数大于0,总页数等于RowCount除以PageSize的商加1。2.如果RowCount除以PageSize的余数等于0,总页数等于RowCount除以PageSize的商。即 PageCount=(RowCount % PageSize)=0?(RowCount / PageSize): (RowCount / PageSize) +1) 如果准备显示第ShowPage页的内容,应该把游标移动到第(ShowPage -1)* PageSize +1条记录处。分页显示记录n获取需要显示页面的字符串n判断获取的页面字符串是否为空n是,显示页面是1n否,转换为整数n数据库操作n连接n执行对象 滚动n查询n获取总记录数n计算总页数n判断要显示的页面的合理性n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论