
使用JavaBeans组件.ppt
26页第10章 使用JavaBeans组件申贵成简介l软件可重用技术的核心在于可重用组件l在构造Web应用时,使用可重用组件可以简化JSP也面的设计和开发,提高代码可读性,从而提高Web应用的可靠性和可维护性l在JSP技术中,有多种使用组件的方式,JavaBean是成熟的Java软件组件技术之一JavaBeanslJavaBeans是Java软件组件,能提供一定的通用功能l可以在Java应用中重复使用l在Java模型中,使用JavaBeans可以无限扩充Java程序的功能l通过组合JavaBeans组件可以快速生成新的应用程序JavaBeans类的编码约定类的编码约定l类实现了Java.io.Serializable接口l所有属性都是私有的l默认构造器是公有的,并且没有参数l属性值的获取采用get加上第一个字母大写的属性来命名方法,并且该方法是公有的方法,返回值类型就是对应属性的类型l属性值的设置采用set加上第一个字母大写的属性名来命名,该方法是公有的,并且没有返回值,方法的参数类型为对应属性的类型JavaBeans的应用范围lJavaBeans传统的应用是在可视化领域l自从JSP诞生后,JavaBeans在非可视化化领域得到更多的应用,在服务器端的应用方法表现出越来越强的生命力。
l在JSP程序 中常使用JavaBeans来封装业务逻辑、数据库操作等,从而实现业务逻辑和前台程序的分离,使得系统具有更好的健壮性和灵活性创建JavaBeansl创建和使用JavaBeans非常简单l因为在JSP页面中使用的JavaBeans通常是用于服务端的数据访问l作为数据访问对象,JavaBeans就是一个简单的包含私有数据的类,在类中提供获取属性值、修改属性值的public方法lVolunteers.javaJavaBeans存放位置l将Volunteers.java保存在目录名为Beijing2008的子目录下,进行编译l作为软件组件,在使用JavaBeans时不需要JavaBeans时不需要Java程序员或JSP页面设计人员实现了解组件的具体实现,只需要将其安装到本体系统中就可以使用这些JavaBeanslJavaBeans中的属性操作是封装的,因此,有时也把JavaBeans成为黑匣子使用JavaBeanslJSP中提供3个标记来使用JavaBeans:标记
配置JavaBeansl创建目录:在Web应用目录的web-inf\lcasses目录下,创建JavaBeans对应的目录路径l创建和编译JavaBean:将编写的文件复制到新创建的目录下,并对该文件进行编译l重新启动tomcat:在web应用下的任何JSP页面中都可以使用这个javaBean了
lbeanName属性代表通过java.beans.Beans类的instantiate()方法初始化时使用的Bean名luseBean.jsp
l如果请求参数的值为空,则不会修改JavaBeans中的属性值lParam属性代表请求参数名,value属性代表了赋给Bean的属性property的具体值l
l使用
1.${myBean.name}5.doSubmitBeanEL.jsp使用JavaBean访问数据库1.前面介绍了使用JSTL和JDBC的两种访问数据库的方法2.但是,从软件设计角度来看,最好是将业务逻辑和用户操作的JSP页面分离开来3.一般来说,不 推荐在JSP页面的代码中直接访问数据库4.在需要对数据库进行访问时,最好使用JavaBean来实现编写访问数据库的JavaBeanl首先需要实现一个访问数据库的JavaBean类l定义数据库操作beanl增加数据库操作相关的内容ldatabaseBean.java使用javabean来访问数据库1.Beijing2008.DatabaseBean中包含了数据库的常用操作2.JSP页面中使用DatabaseBean来访问数据库3.在JSP页面中不需要关心如何连接数据库、连接的是何种数据库4.Select.jsp5.doSubmitDatabaseBean.jsp自动类型转换ljavaBean使用的属性都是java的字符串类型,因此其值都是普通文本l但是在实际使用过程中,一个JavaBean的属性可以是任何java类型l在使用非字符传类型的属性时,JSP容器会自动将普通文本转换为属性对应的java类型。
表格属性类型转换时自动调用的方法Boolean或boolean Boolean.valueOf(String)Byte或byteByte.valueOf(String)Character或charCharacter.valueOf(String)Double或doubleDouble.valueOf(String)Integer或intInteger.valueOf(String)Float或floatFloat.valueOf(String)Long或longLong.valueOf(String)Short或shortShort.valueOf(String)Objectnew String(String)。












