资源预览内容
第1页 / 共51页
第2页 / 共51页
第3页 / 共51页
第4页 / 共51页
第5页 / 共51页
第6页 / 共51页
第7页 / 共51页
第8页 / 共51页
第9页 / 共51页
第10页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第6章 JavaBean组件程序设计 内容提要n本章介绍组件开发技术。n简要介绍组件的基本概念nJavaBean的编写以及调用方法nJavaBean的属性n介绍常用的外部组件:n发送Email组件n文件上传n图形组件。n介绍JSP标记库的编写以及使用n介绍Java设计模式以及JSP设计模式。组件技术概述 n现在软件开发都已经转向了基于组件的开发, 目前具备代表性的组件技术有微软的COM、 COM+,n有Sun的JavaBean和EJB(Enterprise Java Bean),另外还有CORBA(Common Object Request Broker Architecture,公共对象请求 代理结构)。组件和容器 n容器是包含其它组件的组件。它们被用作组件的框架。例如,可 视化的开发工具使你能拖放组件到容器中,这些容器能调整大小 和位置。n软件组件模型描述了如何开发和使用组件。软件组件模型包括以 下元素: n创造和使用组件的规范;n软件实现规范,为建造和使用组件提供一种具体的机制。nJavaBean规范将“软件组件”的概念引入到Java编程的领域。组件 是自包含的、可重用的软件单元;而JavaBean组件,则可以使用 可视的应用程序开发工具,可视地将它们编写到Java程序中。 JavaBean规范为Java开发人员提供了一种“组件化”其Java类的方 法。Bean开发工具 nJavaSoft,开发Java系列开发工具的公司,开发了BDK (Bean开发 工具)。 BDK可供开发者自由地使用,适用于Windows 2000、XP 、2003、以及Solaris 2.4和2.5。n其它用于Bean开发的各种工具,常用的有7个。nSun MicroSystems公司的JavaPlan;nSun MicroSystems公司的Java Studio;nSun MicroSystems公司的Java Workshop ;nIBM的Visual Age for Java ;nSymantec的Visual Caf for Java ;n微软公司的Visual J+;nBoland公司的Jbuilder。JavaBean简介 nJavaBean是一种软件组件模型。它与其它软件对象相互作用,决 定如何建立和重用软件组件。这些可重用软件组件被称之为Bean 。Bean使用现有的Bean帮助开发新的计划,进而,建立它们之间 的关系。n在Sun公司的Java Bean规范的定义中,Bean的正式说法是: “Bean是一个基于Sun公司的JavaBean规范的、可在编程工具中被 可视化处理的可复用的软件组件”。nJavaBean是基于Sun公司的JavaBean规范的,可在编程工具中被 可视化处理的可复用的软件组件。因此JavaBean具有4个基本特 性:(1)独立性(2)可重用性(3)在可视化开发工具中使用 (4)状态可以保存JavaBean编程 nJavaBean分成可视组件和非可视组件。在JSP中主要使用非可视 组件,对于非可视组件,不必去设计它的外观,主要关心它的属 性和方法。JavaBean的特点 n编写JavaBean就是编写一个Java类,所以只要会写类 就能编写一个Bean,一个完整JavaBean在类的命名上 需要遵守4点。n1、如果类的成员变量的名字是xxx,那么为了更改或获取成 员变量的值,在类中使用两个方法:ngetXxx(),用来获取属性xxx。nsetXxx(),用来修改属性xxx。n2、对于boolean类型的成员变量,允许使用is代替get和set。n3、类中方法的访问属性必须是public的。n4、类中如果有构造方法,那么这个构造方法也是public的, 并且是无参数的。JavaBean页面指令 n在JSP中专门提供三个页面指令来和JavaBean交互,分别是 jsp:useBean指令、jsp:setProperty指令和jsp:getProperty指令。njsp:useBean指令指定JSP页面中包括的JavaBean,具体的语法格 式为:JavaBean页面指令n其中,id是当前页面中引用JavaBean的名字,JSP页面 中的Java代码将使用这个名字来访问JavaBean。nscope:指定JavaBean的作用范围,可以取4个值。npage:JavaBean只能在当前页面中使用。在JSP页面执行完毕 后,该JavaBean将会被进行垃圾回收。nrequest:JavaBean在相临的两个页面中有效。nsession:JavaBean在整个用户会话过程中都有效。napplication:JavaBean在当前整个Web应用的范围内有效。njsp:setProperty指令功能是设置JavaBean的属性。 jsp:getProperty操作指令功能是得到某个JavaBean的属性值。编写JavaBean 案例名称:简单的JavaBean 程序名称:j6_01.java案例名称:调用JavaBean方法一 程序名称:j6_02.jsp案例名称:调用JavaBean方法二 程序名称:j6_03.jsp案例名称:调用JavaBean方法三 程序名称:j6_04.jsp注意:方法一在有些Tomcat上 可能执行失败,方法二和方法 三完全通过!JavaBean的属性 n通用Bean属性的类型有四种:简单属性、关联 属性、受限属性和索引索性。n简单(Simple)属性:该属性解释怎样把属性赋予 Bean。n关联(Bound)属性:一个Bound属性是指当该种属性 的值发生变化时,要通知其它的对象。n受限(Constrained)属性:指当这个属性的值要发生 变化时,与这个属性已建立了某种连接的其它Java 对象可以否决属性值的改变。n索引(Indexed)属性:一个Indexed属性可描述多值 的属性,用一个数组表示。带属性的JavaBean案例名称:带属性的JavaBean 程序名称:j6_05.java案例名称:修改JavaBean的属性方法一 程序名称:j6_06.jsp案例名称:修改JavaBean的属性方法二 程序名称:j6_07.jsp利用外部的Bean nJSP之所以强大,很大程度上依赖于外部 组件的使用。n有很多著名的公司开发外部Bean组件, 比如SUN公司和IBM公司等。本节介绍最 常用的组件:Email组件、图形组件和文 件上传组件 Email组件 nJavaMail API 是一个用于阅读、编写和发送电子邮件的 可选包(标准扩展)。在JSP中要想发送Email,需要实 用JavaMail组件。这里需要两个组件“activation.jar”和“mail.jar”, 发送Email n需要根据实际修改五个参数,程序才可以正确 执行,目前的SMTP邮件发送服务器都需要验 证。验证需要设置三个参数,发送邮件的服务 器地址strHost、验证用户名strUserName和 strPassWord密码nString strHost = “smtp.163.net“;nString strUserName = “szg“;nString strPassWord =“szg“;案例名称: 发送Email 程序名称:mail.jsp发送Emailn还需要修改两个参数就是发送人地址和收信人地址。nString strFrom = “shizhiguo163.net“;nString strToList = “shizhiguotom.com“;n比如现在张三有一个邮箱是zhangsan163.net,邮箱密码是 mamahao,现在他要给周润发发邮件,周润发的邮箱是 zhourunfa163.com。改完的五个参数如下面的代码段。nString strHost = “smtp.163.net“;nint nPort = 0;nString strUserName = “zhangsan“;nString strPassWord =“mamahao“;nString strFrom = “zhangsan163.net“;nString strToList = zhourunfa163.com“;常见邮箱的SMTP地址邮 箱 后 缀Smtp地址21cn.comsmtp.21cn.comsina.comsmtp.sina.com.cn163.netsmtp.163.net163.comsmtp.163.comfm365.commail.fm365.com263.netsmtp.263.net发送Email绘制图形 n在Java图形编程领域中,最著名的组件是JGraph组件,该组件在 绘制二维和三维方面功能非常优秀。最新的JGraph组件可以从 “http:/prdownloads.sourceforge.net/jgraph/”下载,该组件大约130K, 使用JGraph绘图案例名称:使用JGraph绘图 程序名称:j6_09.java文件上传 n在Web开发中,文件上传是一项非常实 用的功能n在Java开发体系中,文件上传功能的实 现主要依赖于JavaBean,常用的上传组 件是jspsmart,以jspsmart组件为例进行 介绍文件上传 使用jspsmart组件实现文件上传 案例名称:文件上传功能的实现 程序名称:selectfile.html文件名称:存储到服务器上的路径:使用jspsmart组件实现文件上传案例名称:处理文件上传的Servlet程序 程序名称:servletUpload.java自定义JSP标记库 n在JSP规范1.1版中增加了自定义标记库,允许开发人员在自定义 的标记符中封装复杂的功能。定制标记使得JSP项目中很容易创建 重用的代码模块 使用自定义标记库n在使用自定义标记库时,主要分为以下3个步骤:n(1)建立一个TLD(Tag Library Descriptor)文件,指定标 记库中哪一个标记与哪一个处理程序相匹配。这是一种很简 单的XML文件,TLD文件描述和说明了属性、信息和标记处理 器文件位置等信息。JSP 容器使用这一文件来映射被调用标记 库的位置和用法。n(2)建立一个对标记的处理程序。处理程序本身也是一个 Java类。这是标记库的真正核心。JSP页面把页面上设置的标 记属性都传递给标记处理器,JSP页面上的标记标示的内容也 是这样处理的。当标记处理器完成其处理过程,它就会把处 理后的输出结果回送给JSP页面做进一步处理。n(3)在JSP页面中使用标记。在JSP页面中首先声明标记库, 然后再使用它。创建并使用标记库 案例名称:TLD配置文件 程序名称:mytld.tld案例名称:处理自定义标记的Java类 程序名称:MyTagLib.java案例名称:使用自定义标记库的JSP页面 程序名称:exampletag.jsp面向对象设计模式 n面向对象软件开发领域中,设计模式包 括一些规则来完成一定任务。设计模式 针对一些特定的问题,提出一种解决方 案。n常用的面向对象设计模式有4种:nFactory模式、Singleton模式、Faade模式 和MVC架构模式。 Factory模式 n如果想要通过Email发送一些新产品的信息,目标用户的类型不同,所以 需要发送不同内容的邮件。除此之外,用户的类型还可能会不断的增加 。一般这种需求利用Factory模式设计。定义一个EmailSender类。class EmailSender void sendEMail(SeniorClientType client) SeniorClientEmail email = new SeniorClientEmail(); email.createEmailBody(); email.createEmailSubject(); email.send(); void sendEMail(RichClientType client) Rich
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号