版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第12章 JSP的JavaBean编程,了解可重用组件 学习和了解使用JavaBean的基本语法 了解在页面中运用JavaBean 学习运用JavaBean访问数据库,教学目的,教学内容,JavaBean是用Java语言编写的一种可重用的软件组件,也称为bean。 JavaBean于1997年Sun的微系统(Sun MicroSystem)提出,它的最主要目标是为第三方的独立软件销售商(Independent Software Vendor)提供用户整合Java组件成为软件应用系统。,12.1 JavaBean的概述,从本质上说,JavaBean也是一种用Java语言编写的公共类。 与其他用J
2、ava语言编写的Java类不同在于 sun微系统公司规定JavaBean是一种特殊性质的公共类,只有一个不带参数的默认构造方法。JavaBean中预先定义特定的属性和方法模式,通常用setXXX()和getXXX()预先定义的行为方法实现对内部属性的设置与访问,也可以自定义的方法实现其他的功能。 JavaBean单独存在没有意义,它是作为具体的应用的一部分。,12.1 JavaBean的概述,对于用户而言,并不需要了解JavaBean的内部的实现细节,只需要了解JavaBean的具体功能,以及调用哪些方法可以实现这些功能。 当前,JSP与JavaBean的结合已成为JSP的主要工作模式之一。J
3、avaBean的出现,实现Java代码动态内容与HTML静态内容的分离,改善了JSP页面中不同类型代码相互嵌套的复杂的状况。提高了JSP页面的可维护性。,12.1 JavaBean的概述,从实现功能的角度上来说,JavaBean作为在JSP页面中实现业务逻辑处理的不可见组件在其他多种应用中出现。这使得实现事物处理的JavaBean提高了组件的可重用性。 从编程的角度上来说,JavaBean具有特定的定义模式,编写简单。 在应用JavaBean方面,可以用Java代码实现,也可以使用JSP定义的特定的指令实现对JavaBean的创建和应用。这使得应用JavaBean非常方便。,12.1 Java
4、Bean的概述,JavaBean编写简单。与编写Java类一样,可以使用任何文本编辑软件即可。只是在保存JavaBean时,要将JavaBean的类名作为JavaBean的文件名,而文件扩展名为“.java”。 例12.1 编写一个实现长方体的JavaBean。具体代码见CuboidBean.java。,12.1.1 JavaBean的简单应用,在CuboidBean.java程序中定义了一个简单的JavaBean。 该CuboidBean类是一个公共类,没有定义任何默认构造方法。因此,系统会自动为CuboidBean生成一个默认的构造方法。 CuboidBean类用width、height、
5、length分别表示宽度属性、高度属性和长度属性,用area、perimeter和volume分别表示面积、周长和体积属性,用cuboid表示是否是合法长方体的属性。 然后根据长方体的特性,分别为这些属性定义对应的方法。用setXXX()的方法为设置XXX对应的属性,而getXXX()的方法为获取对应XXX对应的属性。对于表示判断的方法,可以用isXXX()方法实现,12.1.1 JavaBean的简单应用,独立存在的JavaBean是没有任何意义的,JSP定义了特定的指令和动作来实现JavaBean的应用。要应用JavaBean实际上是分成了三个步骤: (1)导入JavaBean类,让指定的
6、JavaBean类有效; (2)用动作创建JavaBean实例对象; (3)用或或直接调用特定对象方法实现对创建对象属性的设置或获取属性的值或实现特定的功能。,12.1.2 JavaBean的基本语法,(1)导入JavaBean类 导入JavaBean类可以通过JSP的页面指令来实现。通过import属性指定导入的类。 具体的语法见: ,12.1.2 JavaBean的基本语法,(2) 是创建一个指定范围的JavaBean实例对象的动作。只有通过该动作指令,才可以使用JavaBean。该动作指令的具体语法格式如下: /内容实体 ,12.1.2 JavaBean的基本语法,在该语法中,有几点说明
7、: id属性 id属性表示创建JavaBean对象实例(即bean)的变量名称,该名称在指定的命名空间中必须是独一无二的,不能出现同名的名称。 scope属性 scope属性表示创建JavaBean对象实例的作用域,指定JavaBean对象实例的生命周期。在JSP中只可能为四种作用域page、request、session和application中的一种。具体介绍见12.2.2节。,12.1.2 JavaBean的基本语法,类型模式 JavaBean实例对象的创建必须指定对象所属的类或类别。说明JavaBean的类别的类型模型有如下四种。在具体应用中,只能使用上述四种类型模式中的一种。 cla
8、ss=类名:指定JSP引擎查找JavaBean类的路径。 class=“类名” type=“类型名”:class属性与type属性位置可以互换。对于type属性是定义指定JavaBean变量的类型。 beanName=bean名字 type=类型名:beanName属性与type属性的位置可以互换。其中,beanName属性表示一个bean的名称,即,指定类加载器中bean的名称。 type=类型名:指定JavaBean的类型,按照已定义的类型创建一个对象实例。,12.1.2 JavaBean的基本语法,(3) 动作为一个指定JavaBean对象(bean)的设置属性的值。 具体的语法格式如下
9、: ,12.1.2 JavaBean的基本语法,name属性 name属性指明bean或JavaBean实例对象的名字,该名字与用中用id属性指定的bean名称一致。 属性表达 通过设置属性表达来设置具体的属性。动作中有四种形式的属性表达。设置属性时,中property指定的属性必须和bean中的setXXX()方法中的属性XXX一致。 property=“*”:表示为已经创建的bean的所有属性设置或修改属性值。 property=“属性名”:表示为指定属性设置或修改属性值。,12.1.2 JavaBean的基本语法,property=“属性名” param=“参数名”:表示为指定属性设置或
10、修改属性值。param属性表示用户请求的参数,此时,属性值来自于用户请求参数对应的值,通常请求参数来自于Web表单。这种使用方法通常用于属性的名称与request的参数名称不一致的情况。 property=属性名 value=字符串|:表示设置指定属性的属性值。该属性值可以是字符串,在使用JavaBean对象时,字符串会根据JavaBean属性的类型转换成对应的类型。也可以是以“”形式出现,表达式可以是数学表达式,也可以是方法的调用等多种形式。,12.1.2 JavaBean的基本语法,例12.2 用实现CuboidBean的访问,计算一个长方体的周长、面积和体积。具体代码见JSP12-2.j
11、sp。,12.1.2 JavaBean的基本语法,(4) JSP提供了动作来实现获取bean的属性值。的语法格式如下: name属性指定JavaBean的实例对象名,而property属性指定JavaBean实例对象的属性。通过这样的一个动作,实现获取指定JavaBean对象的属性值,使用形式简单。,12.1.2 JavaBean的基本语法,例12.3 用实现CuboidBean的访问,计算一个长方体的周长、面积和体积。程序见JSP12-3.jsp.运行结果如下所示.,12.1.2 JavaBean的基本语法,JSP使用JavaBean,具体涉及 JavaBean的属性 JavaBean的作用
12、范围,12.2 JSP页面使用JavaBean,JavaBean的属性体现了JavaBean内部特征,是JavaBean内部状态的抽象表示。 JavaBean属性并不只是在内部表现JavaBean的特征,更重要地是,用户根据具体应用的不同,通过设置或获取属性,实现特定的功能。 JavaBean的属性可以表现出不同的形式,往往一个JavaBean会出现不同形式的属性,从而影响JavaBean的具体应用效果。,12.2.1 JavaBean的属性,根据JavaBean规范,按照属性形式的不同,可以将属性分成四种类型: 简单属性(Simple) 索引属性(Indexed) 绑定属性(Bound) 约
13、束属性(Constrained),12.2.1 JavaBean的属性,简单属性 简单属性是通过JavaBean对象的相关方法的调用来实现对JavaBean属性的访问。 一般是针对单值属性而言,JavaBean的属性只对应一个值。在这种情况下,JavaBean的属性定义setXXX()方法实现设置属性,而用getXXX()获取属性。具体形式如下: void set(PropertyType value)/设置属性 PropertyType get() /获取属性,12.2.1 JavaBean的属性,如果属性所属的数据类型是布尔类型,一般表示判断。这时,可以考虑使用isXXX()方法来获取属性
14、的值,仍用setXXX()来设置属性。具体形式如下: void set(boolean value) /设置属性 boolean is() /获取判断的结果,12.2.1 JavaBean的属性,索引属性 索引属性的JavaBean属性对应的是指定范围一组值,通常用数组定义。要访问属性中一组值中的一个必须通过索引实现。索引必须是Java语言中的整型(int)。 索引属性的JavaBean属性的访问有多种形式: 可以设置属性的一组值 设置属性索引指定的单值 可以是获取属性的一组值,,12.2.1 JavaBean的属性,可以是获取指定属性索引指向的单值。具体形式如下: void set(int
15、index, value); /索引设置 void set( value); /数组设置 void PropertyType get(int index); /索引获取 void PropertyType get(); /数组获取,12.2.1 JavaBean的属性,例12.4 一个简单索引属性JavaBean属性的应用实例。GradeBean定义见程序GradeBean.java,应用GradeBean的JSP页面见JSP12-5.jsp。,12.2.1 JavaBean的属性,绑定属性(Bound)和约束属性(Contrainted) 绑定属性是在JavaBean实例对象的属性值发生变化
16、时,就要发送一个PropertyChange事件给通知所有的相关的监视器,然后进行相关的处理。要实现这样的一个JavaBean属性,需要定义addPropertyChangeListener()和removePropertyChangeListener(),用它们分别表示增加属性变化监听器和移除属性变化监听器。 约束属性是JavaBean的属性受到约束。这种约束是由监听器来决定是否要否决属性发生的任何一个变化,强迫属性返回原有的设置。,12.2.1 JavaBean的属性,通过动作的scope属性,实现设置JavaBean的作用域。JavaBean的作用域设定了JavaBean的应用范围,这使
17、得JavaBean对象在服务器具有生存周期。 JSP中规定JavaBean的只有四种作用域:page、request、session和application。,12.2.2 JavaBean的作用域,page作用域 page作用域表示创建的对象只在当前JSP页面中有用。如果关闭当前JSP页面,使得JSP页面失效,这时创建的JavaBean对象将会注销。但是,如果重新打开一个JSP页面,服务器会重新创建一个新的JavaBean对象。 例:定义一个作用域为page的计数器CounterBean来记录访问页面次数,JSP页面的程序见JSP12-7.jsp.,12.2.2 JavaBean的作用域,r
18、equest作用域 request作用域表示创建的对象在用户的本次请求中有效。具体作用于当前的JSP页面、以及与当前JSP页面共享同一个请求的页面,包含了当前JSP页面中用指令以及运用动作导向的其他JSP页面。当服务器响应服务端请求后,JavaBean的对象会失去作用。,12.2.2 JavaBean的作用域,例:定义一个作用域为request的计数器CounterBean来记录访问页面次数,JSP页面的程序见JSP12-8.jsp和JSP12-9.jsp.,12.2.2 JavaBean的作用域,session作用域表示在整个Session会话过程中有效,除非session注销。 当Web服
19、务器创建了JavaBean对象后,这个对象将在整个Session会话过程有效,并且Web服务器不会为该用户创建其他的JavaBean对象。 可以通过内置对象session调用getAttribute()方法,形如“(JavaBean类型)session.getAttribute(JavaBean对象名)来获取指定的JavaBean对象。,12.2.2 JavaBean的作用域,例:定义一个作用域为session的计数器CounterBean来记录访问页面次数,JSP页面的程序见JSP12-10.jsp.,12.2.2 JavaBean的作用域,application作用域是应用范围最广,表示在
20、Web应用的整个过程有效。Web应用中的所有JSP页面都可以使用同一个JavaBean对象。这个针对所有Web应用的JavaBean对象可以通过内置对象 application的getAttribute()方法来获取,具体形式如“(JavaBean类型)application.getAttribute(JavaBean对象名)”。,12.2.2 JavaBean的作用域,例:定义一个作用域为application的计数器CounterBean来记录访问页面次数,JSP页面的程序见JSP12-11.jsp.,12.2.2 JavaBean的作用域,通过JavaBean实现对数据库的访问,有效地将
21、数据库处理逻辑与静态页面分开,有利于用JSP实现动态内容。 JSP中连接数据库是JDBC技术。JDBC技术被当前许多数据库系统支持,大部分具有JDBC的驱动程序。,12.3 利用JavaBean访问数据库,利用JDBC技术访问WEB数据库一般有七个步骤:1)导入JDBC类;2)装载/注册驱动程序;3)连接数据库;4)创建语句对象;5)执行SQL语句;6)处理结果;7)关闭连接。根据这七个步骤,可以定义可以实现连接和关闭功能的JavaBean和执行访问数据库数据的JavaBean。,12.3 利用JavaBean访问数据库,为了说明JavaBean访问数据库,在本节中用JSP和JavaBean定
22、义一个简单的通讯录应用实例。要求该通讯录可以实现查询、添加、删除、修改。 首先,用MySql定义一个通讯录数据表addresslist,addresslist的定义的数据项有: addr_Id(通讯编号) name(用户名) phone(联系电话) address(通讯地址) email(电子邮件),12.3 利用JavaBean访问数据库,要定义JavaBean连接数据库。 首先,必须要确定数据库系统的驱动程序。通过驱动程序才可以装载和注册数据库; 其次,在连接数据库时,需要提供访问数据库的相关信息,如数据库的URL、用户名和密码等; 最后,为了数据库地正常关闭,需要执行关闭数据库的功能。 一个通用的连接数据库的JavaBean,命名为ConnBean.java,12.3.1 JavaBean连接数据库,要实现数据库的具体操作,需要获取java.sql.Statement、java.sql.Perpare
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026黑龙江交易集团有限公司春季社会招聘11人笔试备考试题及答案解析
- 吉安市市直公立医院2026年编外工作人员招聘【52人】考试参考题库及答案解析
- 2026贵州省农业科学院第十四届贵州人才博览会引进高层次人才47人工作考试模拟试题及答案解析
- 2026海南产交所招聘补充笔试备考题库及答案解析
- 2026年西安市长安区医院招聘(19人)考试备考题库及答案解析
- 2026江西吉安市吉州区园投人力资源服务有限公司劳务外包工作人员招聘1人(三)考试参考题库及答案解析
- 2026河南郑州市第96中学教育共同体(天府中学)教师招聘考试备考试题及答案解析
- 护理求职中的时间管理
- 太原社区工作者招考真题及答案2025
- 2025年齐齐哈尔拜泉县乡镇卫生院招聘笔试真题
- 《与妻书》课件++2023-2024学年统编版高中语文必修下册
- DGTJ08-2412-2023 城镇供水和燃气管网泄漏声学检测与评估技术标准
- 职业技术学校《直播运营实务》课程标准
- 第8课《建设法治中国》第2框《建设法治国家、法治政府、法治社会》-【中职专用】《职业道德与法治》同步课堂课件
- 数字经济概论 习题参考答案 李三希
- 胎盘讲解课件
- 药性赋白话讲记-热性药
- 八年级下册道德与法治《坚持依宪治国》教学设计
- 小学数学教资面试真题及答案
- 院前急救诊疗常规和技术操作规范2022版
- 英语答题卡2023年全国小学生英语能力测评(NEPTP)低年级组
评论
0/150
提交评论