《JavaBean组件与内置标记.ppt》由会员分享,可在线阅读,更多相关《JavaBean组件与内置标记.ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第十三讲第十三讲 JavaBean组件与内置标记组件与内置标记第第10章章 JavaBean组件与内置标记组件与内置标记*温故温故*oJSP中有哪两种异常处理机制?中有哪两种异常处理机制?n局部异常处理局部异常处理try-catch-finallyn整体异常处理指定异常处理页、异常处理页设置与整体异常处理指定异常处理页、异常处理页设置与exception对象对象opage指令的指令的errPage属性与属性与isErrorPage属性设置属性设置oJSP中使用类中使用类n定义类:在定义类:在JSP中要使用的自定义类必须放在中要使用的自定义类必须放在WEN-INF/classes文件夹下,文件夹
2、下,Netbeans项目中,项目中,“源包源包”节点节点与此文件夹对应。与此文件夹对应。n使用类:在使用类:在JSP页面中,页面中,page指令的指令的import属性将类引入,属性将类引入,在页面的在页面的JSP脚本元素中使用类。脚本元素中使用类。*知新知新*oJavaBean组件组件nJavaBean的属性规范的属性规范nJavaBean的定义与使用的定义与使用nJSP表单(表单(form)与)与JavaBean组件的映射组件的映射nJavaBean组件的生命周期组件的生命周期nJavaBean组件的事件设计组件的事件设计(了解)(了解)oJSP的内置标记的内置标记nuseBeannset
3、PropertyngetPropertynincludenforwardnplugino什么是什么是JavaBean?n它是一种特殊的它是一种特殊的Java类,它符合类,它符合JavaBean的规范的规范(约定约定)。o可视化:可视化:AWT、Swingo非可视化:用在非可视化:用在JSP页面中(页面中(目前,普遍应用于非可视化领域目前,普遍应用于非可视化领域)n它是它是Java推出的一种组件模型推出的一种组件模型o组件:按照特定规范设计的类,是进行代码重用的一种方法。组件:按照特定规范设计的类,是进行代码重用的一种方法。oJavaBean技术在技术在JSP中的应用模式中的应用模式n业务业务B
4、eano可用于分离表示逻辑可用于分离表示逻辑(页面的布局与页面风格页面的布局与页面风格)和业务逻辑和业务逻辑(比如数比如数据库的访问及数据处理据库的访问及数据处理)。将复杂的业务逻辑封装在。将复杂的业务逻辑封装在JavaBean中,中,在在JSP中通过简单的方法调用来完成业务处理。中通过简单的方法调用来完成业务处理。n数据数据Beano用于表示页面中要处理的数据实体,这种数据实体可以在一定范围用于表示页面中要处理的数据实体,这种数据实体可以在一定范围内共享,减少代码编写工作量,提高代码可维护性。例如用户信息、内共享,减少代码编写工作量,提高代码可维护性。例如用户信息、商品信息等。商品信息等。J
5、avaBean组件组件咖啡豆咖啡豆JavaBean的定义规范的定义规范o一个一个JavaBean类应该满足以下要求类应该满足以下要求n一个一个javaBean类必须是一个公共类类必须是一个公共类 n一个一个javaBean类必须有一个类必须有一个0参数的构造方法参数的构造方法 n一个一个javaBean类不应有类不应有public权限的成员变量权限的成员变量 o一般成员变量访问权限均为一般成员变量访问权限均为private,称为,称为“属性属性”n用一组公有的用一组公有的setXxx/getXxx(或或isXxx)方法来定义属性方法来定义属性osetXxx()和和getXxx()o对于对于bo
6、olean类型的属性,提供类型的属性,提供setXxx()和和isXxx()方法方法JavaBean属性说明属性说明o什么是什么是JavaBean属性属性n属性属性(Property)o是是JavaBean组件内部状态的抽象表示,外部程序使用属性来设组件内部状态的抽象表示,外部程序使用属性来设置和获取置和获取JavaBean组件的状态。组件的状态。n属性一般情况下对应属性一般情况下对应3部分部分o一个私有成员变量一个私有成员变量xxxo一个公有的一个公有的setXxx()方法,用于对成员变量方法,用于对成员变量xxx赋值赋值o一个公有一个公有getXxx()方法或方法或isXxx()方法,用于
7、获取成员变量方法,用于获取成员变量xxx的值的值n说明说明oxxx称为属性,它是首字母小写的合法标识符,其在对应的存取方称为属性,它是首字母小写的合法标识符,其在对应的存取方法中首字母必须大写法中首字母必须大写o成员变量的名字可以与属性名同名,也可以不同名,一般情况下采成员变量的名字可以与属性名同名,也可以不同名,一般情况下采用同名的方式。例:用同名的方式。例:private String name;public String getName()pulbic void setName(String name)JavaBean的属性说明的属性说明o属性说明属性说明nJavaBean不要求对属性同
8、时设置这两个方法,如果一个属性不要求对属性同时设置这两个方法,如果一个属性xxx只只提供了提供了setXxx()方法,则称方法,则称xxx为只写属性,如果只提供了为只写属性,如果只提供了getXxx()方法,则称只读属性,如果两个都有,则称可读写的属性方法,则称只读属性,如果两个都有,则称可读写的属性n对于对于boolean类型的属性,应该使用类型的属性,应该使用isXxx()/setXxx()方法方法o如:有一个如:有一个boolean属性属性married,它所对应的方法应该如下所示:,它所对应的方法应该如下所示:private boolean married;public boolean
9、 isMarried()public void setMarried(boolean b)在在JSP中使用中使用JavaBeano作为一个普通类来使用作为一个普通类来使用o充分利用充分利用JavaBean的特性,通过的特性,通过JSP内置标记来使用内置标记来使用oJSP的内置标记的内置标记n功能:实例化一个功能:实例化一个JavaBean或者定位一个或者定位一个JavaBean实例并实例并把实例的引用赋给一个变量把实例的引用赋给一个变量n语法格式:语法格式:oid:是一个是一个JavaBean对象的名字,它也是对象的名字,它也是JSP的脚本变量的脚本变量oscope:表示表示JavaBean对
10、象的作用范围。对象的作用范围。scope有四种作用域:有四种作用域:npage、request、session、applicationoclass:指定指定JavaBean完整的类的限定名完整的类的限定名(含包名含包名)otype:指定指定JavaBean对象的类型(对象的类型(不常用不常用)设置设置/获取获取JavaBean属性的属性的JSP内置标记内置标记on功能:设置功能:设置Javabean的属性值,格式如下:的属性值,格式如下:oname:JavaBean对象的名字对象的名字oproperty:JavaBean对象的属性名对象的属性名(属性名可以使用属性名可以使用*,此时,此时JSP
11、会用名称相会用名称相同的请求参数的值为对应的同的请求参数的值为对应的JavaBean属性赋值属性赋值)ovalue:属性值,此属性不能与属性值,此属性不能与param属性同时使用属性同时使用oparam:请求参数名,用请求参数的值为请求参数名,用请求参数的值为Bean的属性赋值的属性赋值on功能:访问一个功能:访问一个Bean的属性,并将其转换成的属性,并将其转换成String类型,输出到客户端,类型,输出到客户端,其格式如下:其格式如下:oname:JavaBean对象的名字对象的名字oproperty:JavaBean对象的属性名对象的属性名例例1:使用:使用JavaBeanJavaBea
12、n与表单的对应与表单的对应o需求分析需求分析n首先提供一个注册表单,让用户输入相关信息,在用户提交表单后,首先提供一个注册表单,让用户输入相关信息,在用户提交表单后,我们将用户的注册信息保存到我们将用户的注册信息保存到JavaBean对象中,然后在另一个页面对象中,然后在另一个页面通过读取通过读取JavaBean的属性来获得用户的注册信息。的属性来获得用户的注册信息。o页面结构页面结构nUserInfo.java:编写表示用户信息的:编写表示用户信息的JavaBean类类nreg.html:提供注册表单:提供注册表单nreg.jsp:将用户信息写入:将用户信息写入JavaBean对象对象nus
13、erinfo.jsp:从:从JavaBean对象中获取用户信息输出对象中获取用户信息输出例例1JavaBean类:类:UserInfpackage bean;public class UserInfprivate String name;private String sex;private int age;private String education;public void setName(String name)this.name=name;public String getName()return name;public void setSex(String sex)this.sex=
14、sex;public String getSex()return sex;public void setAge(int age)this.age=age;public int getAge()return age;/省略省略education属性的访问方法属性的访问方法定义定义4 4个属性个属性属性访问方属性访问方法法 用户名:用户名:性别:性别:男男 女女 年龄:年龄:学历:学历:高中高中 大学大学 研究生研究生 博士博士 例例1reg.html例例1reg.jsp请求参数请求参数字符集字符集使用使用JavaBean设置设置Bean的属性的属性例例1userinfo.jsp使用使用JavaB
15、ean获取获取Bean的的属性并输出属性并输出JavaBean组件的生命周期组件的生命周期o标记执行过程标记执行过程n1.声明一个引用变量声明一个引用变量user n2.在在session范围内查找指定范围内查找指定id为为user的的JavaBean对象对象n3.如果找到,就将对象转换为如果找到,就将对象转换为bean.UserInfo类型类型,并赋予,并赋予user引用变引用变量,从而使量,从而使user对象在对象在session范围内可用。范围内可用。n4.如果没有找到,则使用如果没有找到,则使用new bean.UserInfo()创建一个对象,将这创建一个对象,将这个对象的引用赋值给
16、由个对象的引用赋值给由user引用变量,并将这个对象保存到引用变量,并将这个对象保存到session范范围中。围中。n5.当会话结束后,当会话结束后,Bean对象就被删除,结束对象就被删除,结束Bean对象的生命周期对象的生命周期例例2:JavaBean对象的生命周期对象的生命周期o设计一个计数器设计一个计数器Bean,比较在不同作用范围下的执行结果,比较在不同作用范围下的执行结果CounterBean.javapackage bean;public class CounterBean private int counter=0;public CounterBean()public Strin
17、g getCounter()counter+;return counter+;page1.jsp与page2.jsp当前计数是:标记的进一步说明标记的进一步说明osetProperty标记中的标记中的property和和param属性属性nproperty属性用于标识被设置属性的名字。如果属性值是属性用于标识被设置属性的名字。如果属性值是*,jsp标签会在请求对象中查找所有的请求参数,看是否有参数的标签会在请求对象中查找所有的请求参数,看是否有参数的名字和名字和Bean属性名字相同,如果找到匹配的参数和属性,就会属性名字相同,如果找到匹配的参数和属性,就会按照正确的类型按照正确的类型(自动进行
18、类型转换自动进行类型转换)将参数值设置为属性值。如将参数值设置为属性值。如果参数的值为空字符串果参数的值为空字符串()或参数不存在或参数不存在(null),则对应的属性,则对应的属性值不会被修改。值不会被修改。nparam属性指定一个请求参数名,用该参数的值设置属性值。在属性指定一个请求参数名,用该参数的值设置属性值。在设置设置Bean属性时,如果请求参数的名字和属性时,如果请求参数的名字和Bean属性的名字不属性的名字不同,可以用同,可以用param来指定参数的名字,如果没有使用来指定参数的名字,如果没有使用param,就认定属性的名字与请求参数的名字相同。就认定属性的名字与请求参数的名字相
19、同。JavaBean组件的事件设计(组件的事件设计(了解了解)oJava中事件处理模型是中事件处理模型是“委拖事件模型委拖事件模型”,其构成要素,其构成要素n事件事件n事件源事件源n事件监听器事件监听器n事件处理方法事件处理方法o事件处理过程事件处理过程n事件源在一定条件下触发某事件对象事件源在一定条件下触发某事件对象n事件源注册对这种事件处理的事件监听器对象事件源注册对这种事件处理的事件监听器对象n调用事件监听器对象的事件处理方法调用事件监听器对象的事件处理方法oJavaBean组件事件提供组件与外界使用者之间信息传递途径组件事件提供组件与外界使用者之间信息传递途径(P202)n定义事件对象
20、定义事件对象n定义监听器接口定义监听器接口n定义事件源接口定义事件源接口n定义事件源类定义事件源类n定义事件处理类定义事件处理类nJSP页面中使用页面中使用JavaBean组件组件JSP内置标记内置标记o使用使用JavaBeano设置设置Bean的属性的属性o获取获取Bean的属性的属性o请求包含请求包含o请求转发请求转发o可以嵌入可以嵌入applet小应用程序组件小应用程序组件(P212)小结小结o什么是什么是JavaBean?oJavaBean类规范有哪些?类规范有哪些?oJSP中如何使用中如何使用JavaBean?n的执行过程?的执行过程?o如何使用?如何使用?nproperty属性与属
21、性与value属性的使用方法属性的使用方法nparam的使用方法的使用方法n如何使如何使JSP表单与表单与JavaBean对象对应对象对应o如何使用?如何使用?作业作业n编写一个编写一个JavaBean类,用于描述商品信息。类,用于描述商品信息。o商品名称商品名称nameo商品单价商品单价priceo会员折扣率会员折扣率discounto供货商供货商sellern编写一网页编写一网页product.html提供商品信息录入表单,提交提供商品信息录入表单,提交product.jsp来处理来处理n编写一个编写一个product.jsp用于将客户端提交的信息写入用于将客户端提交的信息写入JavaBe
22、an对象。对象。(将用户提交的表单映射到将用户提交的表单映射到JavaBean对象对象)n编写一个编写一个productshow.jsp,用于将商品信息输出。,用于将商品信息输出。(使用使用标记标记)实训十三实训十三 JavaBean组件的应用组件的应用o训练目的训练目的n通过本次技能训练,使学生掌握通过本次技能训练,使学生掌握JavaBean的定义方法使用技的定义方法使用技巧,掌握相关巧,掌握相关jsp内置标记的使用。内置标记的使用。o训练内容训练内容n调试例调试例1与作业,掌握与作业,掌握JavaBean组件的定义与使用,掌握表组件的定义与使用,掌握表单与单与JavaBean对象的映射方法。对象的映射方法。n调试例调试例2,理解,理解JavaBean的生命周期的生命周期o训练要求训练要求n总结调试过程中遇到的问题及解决办法。总结调试过程中遇到的问题及解决办法。