《Java网络编程原理与JSPWeb开发核心技术教学ppt课件11第十一章JavaEE技术与.ppt》由会员分享,可在线阅读,更多相关《Java网络编程原理与JSPWeb开发核心技术教学ppt课件11第十一章JavaEE技术与.ppt(57页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、在线教务辅导网:在线教务辅导网:http:/教材其余课件及动画素材请查阅在线教务辅导网教材其余课件及动画素材请查阅在线教务辅导网QQ:349134187 或者直接输入下面地址:或者直接输入下面地址:http:/1Java网络编程原理与网络编程原理与JSPWeb核心核心开发技术开发技术 第十一章 Java EE技术与J2ME移动编程n n11.111.1Java EEJava EE技术技术n n11.211.2 Java MEJava ME移动编程移动编程 311.1 Java EE技术n11.1.1JavaEE简介简介n11.1.2JavaEE应用层次与组件应用层次与组件n11.1.3Java
2、EE容器体系结构容器体系结构n11.1.4EJB简介简介n11.1.5JavaEE应用程序的打包与部署应用程序的打包与部署411.1 Java EE技术n11.1.1JavaEE简介简介nJavaEE(Java2PlatformEnterpriseEdition)是SUN公司定义的一个开发分布式企业级应用的规范,它提供了一个多层次的分布式应用模型和一系列开发技术规范。多层次分布式应用模型是根据功能把应用逻辑分成多个层次,每个层次支持相应的服务器和组件,组件在分布式服务器的组件容器中运行(如Servlet组件在Servlet容器中运行,EJB组件在EJB容器中运行),容器间通过相关的协议进行通讯
3、,实现组件间的相互调用。JavaEE是一个规范,而不是一个产品,它定义了当人们写企业级软件时必须遵守的准则,供应商通过执行规范来提供与规范相兼容的产品。JavaEE技术规范中主要定义了以下几种技术标准:nRMI(RemoteMethodInvoke)n提供了一种在不同主机上的Java虚拟机(JavaVirtualMachine,JVM)之间进行通信的方式。nJNDI(JavaNamingandDirecotoryInterface)nJavaEE提供的命名和目录服务可以将这些名字和具体的对象绑定在一起,然后应用程序就可以通过这些名字定位这些对象,从而访问用户信息,机器信息和各种服务。nJDBC
4、(JavaDateBaseConnection)n提供一个通用的访问SQL数据库和存储结构的机制,支持基本SQL功能的一个通用底层的应用程序编程接口。nJavaServletn提供了生成动态Web内容的基本机制,Servlet是一种用来扩展Web服务器功能的Java程序,运行于服务器端。nJSP(JavaServerPages)n是构建在Servlet技术之上的,用来简化动态Web内容的开发,应用程序可以通过JSP动态生成HTML或XML文档中的动态内容部分。511.1 Java EE技术n11.1.1JavaEE简介简介nEJB(EnterpriseJavaBeans)nEJB规范提供了一种
5、开发和部署服务器端组件的方法,并且为服务器端组件和管理这些组件的应用服务器之间提供标准的协议。每个EJB是按功能逻辑划分的,开发时不必关注系统底层细节问题,只关注具体的事务分析。EJB开发完毕后,按规范部署在EJB容器,完成相应的事务功能。nJTA(JavaTransactionAPI)n事务是一些不可分割的工作单位,只有该单元内的所有动作全部得到执行时,它才会被提交,JTA事务能够跨越多个组件和资源管理器,通过使用javax.transaction.UserTransaction接口可以创建和管理JTA事务。nJMS(JavaMessageService)n为开发消息中间件应用程序定义了一套
6、规范,应用程序可以使用这些JMSAPI创建、发送、接收和读取消息,Java客户端和Java中间层访问消息系统只要实现JMS定义的简单的接口,就可以实现复杂的应用。nJavaMailnJavaMail就是JavaEE中用来发送E-mail的一组API,JavaMailAPI提供了一系列组成电子邮件的抽象类和接口,这些抽象类和接口支持消息存储,格式和传输的许多不同的实现。nJAAS(JavaAuthenticationandAuthorizationService)n基于JAAS的安全服务可以保证只有授权的用户才可以访问资源。611.1 Java EE技术n11.1.2JavaEE应用层次与组件应
7、用层次与组件nJavaEE规范提供了多层次的分布式应用模型和一系列开发技术规范。多层次分规范提供了多层次的分布式应用模型和一系列开发技术规范。多层次分布式应用模型把应用逻辑分成多个层次,每个层次运行相应的服务器和组件,组布式应用模型把应用逻辑分成多个层次,每个层次运行相应的服务器和组件,组件在分布式服务器的组件容器中运行,容器间通过相关的协议进行通讯,实现组件在分布式服务器的组件容器中运行,容器间通过相关的协议进行通讯,实现组件间的相互调用。件间的相互调用。JavaEE规范定义了以下四个层次规范定义了以下四个层次:n1、客户端层(、客户端层(ClientTier)n客户端层用来实现企业级应用系
8、统的操作界面和显示层。另外,某些客户端程序也可实现业务逻辑。n2、Web层(层(WebTier)n由Web组件组成,主要用来处理客户请求,调用相应的逻辑块,并把结果以动态网页的形式返回到客户端。JavaEEWeb组件包括JSP页面和Servlet,也可以包括一些JavaBean。n3、业务层(、业务层(BusinessTier)n业务层也叫EJB层或应用层,它由EJB服务器和EJB组件组成。n4、企业信息系统层(、企业信息系统层(EnterpriseInformationSystemTier)n处理企业系统软件,包括企业基础系统、数据库系统及其他遗留的系统。7811.1 Java EE技术n1
9、1.1.3JavaEE容器体系结构容器体系结构nJavaEE容器是一个用于管理根据容器是一个用于管理根据JavaEEAPI技术规范开发的应用程序组件以及提供对技术规范开发的应用程序组件以及提供对JavaEEAPI访访问的运行环境,应用程序在容器内运行。容器设置定制了问的运行环境,应用程序在容器内运行。容器设置定制了JavaEE服务器所提供的内在支持,包括安全、服务器所提供的内在支持,包括安全、事务管理、事务管理、JNDI寻址、远程连接等服务。寻址、远程连接等服务。JavaEE服务器用容器为所有的组件类型提供后台服务。每个服务器用容器为所有的组件类型提供后台服务。每个容器底层实现容器底层实现Ja
10、vaEEAPI,此外,每个容器还实现了容器专用的,此外,每个容器还实现了容器专用的API,比如,比如JavaAppletAPI用于用于Web容器,容器,EJBAPI用于用于EJB容器。容器。nJavaEE体系结构中包括以下几种容器:体系结构中包括以下几种容器:n应用程序客户端容器:管理应用程序客户端组件的运行,应用程序客户端和它的容器运行在客户机。应用程序客户端容器:管理应用程序客户端组件的运行,应用程序客户端和它的容器运行在客户机。nApplet容器:管理容器:管理Applet的运行,由在客户端运行的浏览器和的运行,由在客户端运行的浏览器和Java插件组成。插件组成。nWeb容器:负责管理容
11、器:负责管理JavaEE应用程序中应用程序中JSP页面和页面和Servlet组件的运行。组件的运行。Web容器和组件在容器和组件在JavaEE服务器中运行。服务器中运行。nEJB容器:负责管理容器:负责管理JavaEE应用程序中企业应用程序中企业Bean的运行。的运行。EJB和它们的容器在和它们的容器在JavaEE服务器中服务器中运行。运行。nJavaEE容器体系结构分为四部分:容器体系结构分为四部分:n组件协议:这是容器指定的一组组件协议:这是容器指定的一组API,要求应用组件对其进行扩充或者实现。,要求应用组件对其进行扩充或者实现。n容器服务容器服务API:容器提供的其他服务,一般是容器中
12、所有的应用程序需要的。:容器提供的其他服务,一般是容器中所有的应用程序需要的。n声明服务:声明服务就是由容器代表我们执行一项任务或操作,部署描述符定义了容器和组件之间声明服务:声明服务就是由容器代表我们执行一项任务或操作,部署描述符定义了容器和组件之间的协议,容器能够通过部署描述符在应用程序组件之外进行服务声明。的协议,容器能够通过部署描述符在应用程序组件之外进行服务声明。n其他容器服务:其他实时服务,与组件存活期、资源分配和垃圾收集等相关。其他容器服务:其他实时服务,与组件存活期、资源分配和垃圾收集等相关。9Java EE服务器客户端应用程序客户端容器浏览器程序客户端Web容器Servlet
13、JSP页面EJB容器EJBEJB数据库1011.1 Java EE技术n11.1.4EJB简介简介n企业企业Bean是实现是实现EJB技术规范的技术规范的JavaEE组件。企业组件。企业Bean在在EJB容容器中运行,运行时环境由服务器建立。虽然器中运行,运行时环境由服务器建立。虽然EJB容器对开发者是透明容器对开发者是透明的,但它为运行其中的企业的,但它为运行其中的企业Bean提供象事务处理等的系统级服务。提供象事务处理等的系统级服务。这些服务使你可以快速的建立和部署企业这些服务使你可以快速的建立和部署企业Bean,而这些企业,而这些企业Bean正正是构成和新业务处理的是构成和新业务处理的J
14、avaEE应用。应用。1111.1 Java EE技术n11.1.4EJB简介简介n企业Bean一般可分为以下几类:n1、会话、会话Bean(SessionBean)n会话Bean表现连接到JavaEE服务器的一个单独的客户端。客户端通过调用会话Bean的方法来访问部署在服务器上的应用程序。会话Bean完成客户端的请求,从而对客户端隐藏了服务器内复杂商务逻辑的执行过程。n根据状态管理模式的不同,会话Bean可以分为两类:有状态(stateful)会话Bean和无状态(stateless)会话Bean。n2、实体、实体Bean(EntityBean)n一个EntityBean描述一个持久存储设备
15、的商业对象。商业对象的例子如:消费者,订单和产品等。持久存储设备对应关系型数据库。一个EntityBean与底层数据库中的一个表相对应,而EntityBean的每一个实例对应表中的一行数据。nEntityBean有两种持久性管理机制:BMP(bean-managedpersistence,Bean管理的持久性)和CMP(container-managedpersistence,容器管理的持久性)。n3、消息驱动、消息驱动Bean(MessageDrivenBean)nMessage-DrivenBean是一种可以让应用程序异步处理消息的企业Bean。它以JMS消息监听者的方式工作,很象一个事件
16、监听者,只是用消息代替了事件。消息的发送者可以是任意JavaEE组件,即应用程序客户端、别的企业Bean、Web应用等。1211.1 Java EE技术n11.1.5JavaEE应用程序的打包与部署应用程序的打包与部署nJavaEE平台的主要特色之一在于开发人员可以在其之上整合不平台的主要特色之一在于开发人员可以在其之上整合不同的组件,这个将组件整合为模块并将模块整合为商业应用程序同的组件,这个将组件整合为模块并将模块整合为商业应用程序的过程叫做打包。在一个可使用环境中安装和定制应用程序的过的过程叫做打包。在一个可使用环境中安装和定制应用程序的过程则叫做部署。程则叫做部署。n1、应用程序的打包
17、、应用程序的打包n一个JavaEE应用程序包括下列部分:一个或者多个JavaEE模块,一个JavaEE应用程序部署描述符。nJavaEE应用程序的制作过程主要分为两步:首先,应用组件提供商负责开发EJB模块、Web层程序和应用客户模块。其次,应用程序集成商将这些模块打包在一起并创建一个可以部署的JavaEE应用程序。n一个EJB模块通常被包装和部署为一个EJB档案文件和一个带有jar扩展名的Java档案文件。这是EJB最小的可部署和可使用单位。1311.1 Java EE技术n11.1.5JavaEE应用程序的打包与部署应用程序的打包与部署n2、应用程序的部署、应用程序的部署nJavaEE的部
18、署就是将应用组件按照一定的要求放置到应用服务器的容器内,在JavaEE应用被安装在容器内时,它们一般是根据功能被分成若干个模块,每个模块都有一个部署描述文件用于告诉JavaEE容器如何进行部署;这个描述文件是一个基于XML的文本文件,部署描述文件包含许多与应用组件和JavaEE平台服务有关的元素,例如组件如何使用事务和安全服务等等。n一个JavaEE程序包括一个或多个JavaEE模块和一个JavaEE应用部署描述文件(不同于模块的部署描述文件),该应用部署描述文件告诉JavaEE应用服务器所需要部署的程序模块和如何对这些模块进行设置;一个JavaEE程序就是一个企业档案文件(EAR),EAR文
19、件采用压缩文件格式,一个EAR文件包括一个或多个Java档案文件(JAR)以及零个或多个资源档案文件(RAR)。1411.2JavaME移动编程移动编程15n随着3G、智能手机、GPS(GlobalPositioningSystem,全球卫星定位系统)等移动技术的发展,各类增值服务层出不穷。同时,各类嵌入式移动终端也在交通运输、生产调度、电子政务、实时数据采集等应用领域显示出强大的应用前景。因此,无论在消费领域还是企业级应用领域,移动软件开发技术都将迎来空前的发展机遇。n面对巨大的移动应用开发市场,国外的IT厂商纷推出各种各样的移动应用平台。最具有代表性的,同时也是影响最大的Sun公司在199
20、9年推出了JavaME。自从JavaME推出以来,得到了IT业界的迅速响应,国际上许多著名的IT厂商都积极投入到JavaME的研发和应用中,其中包括诺基亚、摩托罗拉等大公司。本节主要介绍了JavaME技术框架和应用开发过程。1611.2.1JavaME移动编程概述nJavaME(Java2MicroEdition)是Java家族中的一名成员,是针对小型设备(如传呼机、手机、电视机顶盒、GPS等)开发的一组技术和规范。由于此Java版本的虚拟机的大小仅仅需要数百KB,因此又被称为“K-Java”。JavaME定义了许多专门针对电子消费设备和嵌入式设备的API,将目标设备划分为有限连接设备和连接设
21、备,制定了CLDC(ConnectedLimitedDeviceConfiguration)和CDC(ConnectedDeviceConfiguration)两个规范,并在此基础上推出了移动信息设备简表MIDP(MobileInformationDeviceProfile)。17nKVM(KilobyteVirtualMachine):千字节虚拟机。nCLDC(ConnectedLimitedDeviceConfiguration):连网的受限设备配置。nMIDP(MobileInformationDeviceProfile):移动信息设备简表。1811.2.2JavaME技术框架nJava
22、ME定义的移动Java平台分为四层:主机操作系统、配置、简表和厂商可选包,如图11-3所示。由于Java应用程序是独立于操作系统的,因此JavaME规范仅仅包括三层:配置、简表、和厂商可选包。通过JavaME规范,JavaME为移动设备上的Java应用程序定义了一个完整的运行环境。19图11-3JavaME体系的一般结构和具体例子2011.2.3JavaME应用项目开发过程n随着JavaME移动应用开发需求的不断增大,针对JavaME的开发工具和平台也越来越多,最常见的有Sun公司的WTK(WirelessToolkit,无线工具包),另外还出现了专门针对JavaME开发的集成开发环境,如Ne
23、tBeans、CodeWarrior等。在JBuilder2008中,也包含了开发JavaME的组件MobileSet。21n从功能、兼容性、速度、汉化程度、易用性等因素考虑,目前国内资深的程序员一般使用集成开发环境NetBeans。在NetBeans集成开发环境中通过安装MobilityPack软件包,可以快速开发出JavaME应用程序。MobilityPack提供了JavaME应用程序的可视化开发环境,大大简化了开发的难度。22n在实际开发中,往往要针对某一款或几款机型的手机进行开发,因此需要用到专门为这些手机设计的JavaME开发包。开发之前,必须在NetBeans中集成某种机型的Jav
24、aME开发包。nMobilityPack自带SunJavaWirelessToolkit2.5.2手机仿真平台。SunJavaWirelessToolkit2.5.2是一组用于创建Java应用程序的工具,包含生成工具、实用程序和设备仿真器。23n搭建一个JavaME移动应用开发环境,需要下载相关软件,这里选择NetBeans开发平台,下载地址为:http:/netbeans.org/downloads/indexC.html。24n下面通过简单的开发实例,说明手机游戏的开发过程。25n1低级图形界面开发举例n新建项目,选择“JavaME”|“Mobile应用程序”命令,如图11-3所示。单击“
25、下一步”按钮,输入项目的名称和保存项目的位置,注意取消选择“创建HelloMIDlet”复选框,如图11-4所示。26图11-3选择新建“Mobile应用程序”项目27图11-4名称和位置28n单击“下一步”按钮,在图11-5所示的对话框中选择CLDC和MIDP的版本。CLDC(连接受限设备配置)定义手机应该提供什么样的虚拟机和什么样的核心Java类库。选择CLDC-1.0还是CLDC-1.1要看手机是否支持。这里选择CLDC-1.0单选按钮;MIDP选择MIDP-2.0单选按钮。单击“完成”按钮,完成项目的创建。29图11-5选择CLDC和MIDP的版本30n在图11-6所示的项目开发界面中
26、,右击项目名称,选择“新建”|“Java包”命令,在弹出的对话框中输入包的名称“com.xkland.j2me”,创建一个java包,用来存储java程序文件,如图11-7所示。31图11-6新建Java包32图11-7输入包名33n再一次右击项目名称,选择“新建”|MIDlet命令,如图11-8所示。MIDlet是一个继承自javax.microedition.midlet.MIDlet类的Java类,是手机程序的主程序。34图11-8新建一个MIDlet35n这里设置MIDlet子类的名称为“MyFirstMIDlet.java”。系统会自动生成程序的代码框架,如图11-9所示。36图11
27、-9IDE自动生成的代码37nCommandListener接口:需要实现commandAction方法,而实现这个接口和方法的目的是为了对手机的按键做出响应。nForm类:在程序中,用到了Form类,Form是充满这个屏幕的一个用户控件。在Form中添加字符串,然后再调用display.setCurrent方法显示Form。这里,display代表手机的屏幕。nCommand对象:程序定义了一个Command对象,即动作按钮。通过Form.addCommand方法加入这个Command对象。这样,在手机的菜单条中就会显示一个“退出”按钮,至于显示在屏幕的左下方还是右下方,根据手机的不同型号而
28、不同。当单击此按钮时,就会触发CommandListener的commandAction()方法。通过Form.addCommandListener()添加按钮的动作监听器。38n在项目的快捷菜单中选择击“运行项目”命令,项目的运行效果如图11-10所示。启动项目,运行结果如图11-11所示。39图11-10运行效果图11-11启动模拟器402高级图形界面开发n在创建MIDlet项目后,在项目快捷菜单中选择“新建”|VisualMIDlet命令,如图11-12所示,弹出可视化开发设计界面,如图11-13所示。41图11-12新建VisualMIDlet42图11-13高级图形用户设计界面43n
29、在高级图形用户设计界面中,首先呈现的是“流设计器”,在流设计器里面,可以设置手机程序的各个屏幕之间的导航关系。屏幕右边为“组件面板”,其中分为“屏幕”、“命令”、“窗体项”、“元素”等类别。“屏幕”类别中的组件是可以作为手机程序的窗体而占据整个屏幕的,最常用的是Form组件。在这里可以方便地把各个组件用鼠标拖动到“流设计器”中。44n如图11-14所示,拖动三个Form组件到流设计器中。45图11-14添加Form控件46n从右边的组件面板中选择“屏幕命令”组件screenCommand,把它拖到设计屏幕中。这时的设计界面如图11-15所示47图11-15添加了组件的屏幕设计界面48n右击sc
30、reenCommand组件,在弹出的快捷菜单中选择“属性”命令,编辑它的行为,如图11-16所示,设置为跳转到Form2。49图11-16编辑Command的行为50n切换回“流设计器”,可以看到Form1和Form2关联起来了,如图11-17所示。51图11-17Form1和Form2关联52n使用同样的方法,在Form2中添加一个表格控件,同样添加一个screenCommand,让它切换到Form3。n编辑Form3,添加一个Gauge组件(进度条),再添加一个Command并设置它的行为为“退出程序”。n切换回“流设计器”,把移动设备的起点和Form1左边的点用鼠标拖动连起来,就可以得到一个完整的程序流图,如图11-18所示。53图11-18完整的程序流图54n最后项目的模拟器运行效果如同11-19所示。555657