




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章JavaBean组件技术 5 1JavaBean简介 5 2 JavaBean属性 5 3JavaBean的作用域 5 4使用JavaBean计算圆的周长与面积 5 1JavaBean简介 JavaBean是使用Java语言描述的软件组件模型 简单地说 它就是一个可以重复使用的Java类 JavaBean可分为可视化组件和非可视化组件 其中可视化组件包括简单的GUI元素 例如 文本框 按钮 及一些报表组件等 非可视化组件是在实际开发中经常被使用到的并且在应用程序中起着至关重要的作用 其主要功能是用来封装业务逻辑 功能实现 数据库操作 例如 数据处理 连接数据库 等 返回 5 1 1为什么要使用JavaBean 5 1 2JavaBean的形式和要素 JavaBean是Java程序的一种 所使用的语法和其它类似的Java程序一致 在程序中使用JavaBean具有以下优点 为什么要使用JavaBean 1 可以实现代码的重复利用 2 易编写 易维护 易使用 3 它可以压缩在jar文件中 以更小的体积在网络中应用 4 完全是Java语言编写 可以在任何安装了Java运行环境的平台上的使用 而不需要重新编译 返回 编写JavaBean就是编写一个Java的类 这个类创建的一个对象称做一个Bean 为了能让使用这个bean的应用程序构建工具 比如JSP引擎 知道这个bean的属性和方法 只需在类的方法命名上遵守以下规则 1 如果类的成员变量的名字是xxx 那么为了更改或获取成员变量的值 即更改或获取属性 在类中可以使用两个方法 getXXX 用来获取属性xxx setXXX 用来修改属性xxx JavaBean的形式和要素 1 JavaBean的形式和要素 1 2 对于boolean类型的成员变量 即布尔逻辑类型的属性 允许使用 is 代替上面的 get 和 set 3 类中方法的访问属性都必须是public的 4 类中如果有构造方法 那么这个构造方法也是public的并且没有参数 JavaBean的形式和要素 2 JavaBean示例 importjava io Serializable publicclassJavaBeanDemoimplementsSerializable JavaBeanDemo 无参的构造方法privateintid 私有属性IdprivateStringname 私有属性namepublicintgetId returnId publicvoidsetId intid set 方法this id id publicStringgetName get 方法returnname publicvoidsetName Stringname this name name 返回 5 2JavaBean属性 5 2 1简单属性 5 2 2索引属性 5 2 3束缚属性 5 2 4限制属性 在JavaBean的设计中按照其属性的不同作用可以把该Bean分为4类 分别是简单属性设置 Simple 索引属性设置 Indexed 束缚属性设置 Bound 限制属性设置 Constrained 返回 简单属性 JavaBean的简单属性 Simple属性 表示为一般数据类型的变量并且getXXX 和setXXX 方法是以属性来命名的 属性名与和该属性相关的get set方法名对应 例如 返回 索引属性 JavaBean的索引属性 Indexed属性 表示一个数组值或者一个集合 与Simple属性一样可以使用getXXX 和setXXX 方法来获取值 例如 返回 publicint array newint 8 publicint getArray 返回整个数组returnarray publicvoidsetArray int array 为整个数组赋值this array array publicvoidsetArray intindex intvalue 为数组中的某个元素赋值this array index value publicintgetArray intindex 返回数组中的某个值returnarray index 使用Indexed属性除了表示数组之外 还可以表示集合类 束缚属性 束缚属性 Bound 也称为关联属性 它是当该种属性的值发生变化时 要通知其它的对象 每次属性值改变时 这种属性就触发一个PropertyChange事件 在Java程序中 事件也是一个对象 事件中封装了属性名 属性的原值 属性变化后的新值 这种事件是传递到其它的Bean 至于接收事件的Bean应做什么动作由其自己定义 包含关联属性的Bean必须具有以下的功能 返回 1 允许事件监听器注册和注销与其有关的属性修改事件 2 当修改一个关联属性时 可以在相关的监听器上触发属性修改事件 束缚属性 束缚属性 利用java beans PropertyChangeSupport类创建出PropertyChangeSupport类的对象 从而可以用于管理注册的监听器列表和属性修改事件通知的发送 JavaBean还需要实现addPropertyChangeLinster 方法和removePropertyChangeLinster 方法 以便添加和取消属性变化的监听器 返回 关联属性Bean的实现 1 产生变化的源需要增加PropertyChangeSupport的实例 传入this作为参数 2 在属性变化处进行点火 3 增加addListener removeListener 的方法 Listener类操作的要点 1 继承PropertyChangeListener接口 实现voidpropertyChange PropertyChangeEvente 方法 2 创建Bean实例 因为要监听source 所以source类的实例必须在Listener类中定义 3 调用Bean实例方法addPropertyChangeListener this 将Listener类加入成为监听者 限制属性 限制属性 constrained 是指当这个属性的值要发生变化时 与这个属性已建立了某种连接的其它外部Java对象可否决该属性值的改变 限制属性的监听者通过抛出PropertyVetoException来阻止该属性值的改变 Bean本身也可以否决该Bean属性值的改变 一个限制属性有两种监听者 属性变化监听者和取消属性改变的监听者 取消属性改变的监听者在自己的对象代码中有相应的控制语句 在监听到有限制属性要发生变化时 在控制语句中判断是否应否决这个属性值的改变 返回 限制属性 利用java beans VetoableChangeSupport类的fireVetoableChange 方法传递属性名称 改变前的值和改变后的值等信息 JavaBean还需要实现addVetoableChangeLinster 方法和removeVetoableChangeLinster 方法 以便添加和取消属性变化的监听器 注意 由于限制属性使用了错误处理 编程的时候要特别注意异常的处理方式 返回 5 3JavaBean的作用域 返回 5 3 1page作用域 5 3 2request作用域 5 3 3session作用域 5 3 4application作用域 appliaction session page request page作用域 page作用域在这4种类型中范围是最小的 客户端每次请求访问时都会创建一个JavaBean对象 JavaBean对象的有效范围是客户请求访问的当前页面文件 当客户执行当前的页面文件完毕后 该JavaBean将会被进行垃圾回收 在page范围内 每次访问页面文件时都会生成新的JavaBean对象 原有的JavaBean对象已经结束生命期 返回 request作用域 当scope为request时 JavaBean对象被创建后 它将在相邻的两个页面中有效 使用动作元素或相互联系的两个页面都可以共享同一个JavaBean对象 返回 session作用域 返回 当scope为session时 JavaBean对象被创建后 它将存在于整个session的生命周期内 当用户使用浏览器访问某个网页时 就创建了一个代表该连接的session对象 同一个session中的文件共享这个JavaBean对象 每个session中拥有各自的JavaBean对象 application作用域 返回 当scope为application时 JavaBean对象被创建后 它将存在于整个主机的生命周期内 application范围是JavaBean的生命周期最长的 同一个主机中的所有文件共享这个JavaBean对象 如果服务器不重新启动 scope为application的JavaBean对象会一直存放在内存中 随时处理客户的请求 直到服务器关闭 它在内存中占用的资源才会被释放 JavaBean获取作用域数据 1 通过下面的实例说明4个作用域 首先 创建一个JavaBean Scope java packagescope publicclassScope publicScope 无参的构造函数privateintnumber 0 初始化变量number的值为0publicintgetNumber 增加并返回变量number的值number returnnumber publicvoidsetNumber intnewNumber this number newNumber 给变量number赋新值 JavaBean获取作用域数据 2 然后 创建名称为 scope jsp 的页面文件 用来显示JavaBean存在的范围的具体区别 主要代码 JavaBean获取作用域数据 3 程序运行结果如图1所示 关闭该浏览器 重新打开新的浏览器后的结果如图2所示 图1 图2 返回 5 4使用JavaBean计算圆的周长与面积 1 1 创建名称为 Circle java 的JavaBean 该类文件主要实现了圆的数学计算操作 代码如下 packagecircle publicclassCircle privateintradius 1 定义私有变量radius表示圆的半径publicCircle 无参的构造函数publicintgetRadius returnradius 返回变量radius publicvoidsetRadius intrRadius radius rRadius 给变量radius赋值 publicdoublecircleLength returnMath PI radius 2 0 计算圆的周长 publicdoublecircleArea returnMath PI radius radius 计算圆的面积 5 4使用JavaBean计算圆的周长与面积 2 2 创建名称为 radiusInput jsp 的页面文件 该页面文件将实现提示用户输入圆半径的功能 主要代码如下 请输入圆的半径 5 4使用JavaBean计算圆的周长与面积 3 3 创建名称为 circle jsp 的页面文件 该页面文件将实现显示圆的面积和周长的计算结果 主要代码如下 5 4使用JavaBean计算圆的周长与面积 4 4 运行程序 radiusInput jsp circle jsp 输入 50 单击 开始计算 返回 第三章JSP动作元素3 5 3 3 5 5 3 5 4设置JavaBean属性值 3 5 5获取JavaBean属性值 3 5 3声明使用JavaBean 在JSP中专门提供了3个页面指令来和JavaBean交互 分别是jsp useBean指令 jsp setProperty指令和jsp getProperty指令 声明使用JavaBean jsp useBean指令指定JSP页面包括的JavaBean 具体的语法格式为 其中 id是当前页面中引用JavaBean的名字 JSP页面中的Java代码将使用这个名字来访问JavaBean 设置JavaBean属性值 1 该元素设置JavaBean的属性 使用格式如下 元素的属性 property 该属性说明request请求中的所有参数值将被一一赋给JavaBean中与参数具有相同名字的属性 property 属性名称 该属性取值为JavaBean中的属性时 则只会将request请求中与该JavaBean属性同名的一个参数的致赋给这个JavaBean属性 property 属性名称 param 参数名称 param属性指定一个request请求中的参数 pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年厨房设备进出口贸易代理协议
- 二零二五年度文化娱乐项目开发合同摘要
- 2025版摩托车售后服务网点加盟协议
- 二零二五年度教育行业贷款购销合同
- 二零二五版智能硬件研发联合出资合作协议
- 2025版便利店连锁加盟品牌推广合作合同
- 二零二五年度房屋买卖合同样本及房地产交易税费减免协议
- 二零二五年度抵押资产购销法律咨询及服务合同
- 2025版股权质押借款跨境投资合作合同
- 2025车库租赁合同范本汇编:车位租赁合同签订指南
- 应急通信网络建设方案
- 八段锦考试题及答案
- DB11-T 806-2022 地面辐射供暖技术规范
- 纯英文初三数学试卷
- 压缩空气流量及管径计算
- 起重吊装作业安全培训题库
- 乐嘉性格色彩培训
- 铝合金技术服务协议
- 员工出差安全培训
- 手术室批量伤员应急预案
- 财险公司新人培训
评论
0/150
提交评论