11第十一章 Java EE技术与J2ME移动编程_第1页
11第十一章 Java EE技术与J2ME移动编程_第2页
11第十一章 Java EE技术与J2ME移动编程_第3页
11第十一章 Java EE技术与J2ME移动编程_第4页
11第十一章 Java EE技术与J2ME移动编程_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java网络编程原理与JSPWeb核心开发技术

1第十一章JavaEE技术与J2ME移动编程

11.1

JavaEE技术11.2

JavaME移动编程211.1JavaEE技术11.1.1JavaEE简介

11.1.2JavaEE应用层次与组件

11.1.3JavaEE容器体系结构

11.1.4EJB简介

11.1.5JavaEE应用程序的打包与部署

311.1JavaEE技术11.1.1JavaEE简介

JavaEE(Java2PlatformEnterpriseEdition)是SUN公司定义的一个开发分布式企业级应用的规范,它提供了一个多层次的分布式应用模型和一系列开发技术规范。多层次分布式应用模型是根据功能把应用逻辑分成多个层次,每个层次支持相应的服务器和组件,组件在分布式服务器的组件容器中运行(如Servlet组件在Servlet容器中运行,EJB组件在EJB容器中运行),容器间通过相关的协议进行通讯,实现组件间的相互调用。JavaEE是一个规范,而不是一个产品,它定义了当人们写企业级软件时必须遵守的准则,供应商通过执行规范来提供与规范相兼容的产品。JavaEE技术规范中主要定义了以下几种技术标准:RMI(RemoteMethodInvoke)提供了一种在不同主机上的Java虚拟机(JavaVirtualMachine,JVM)之间进行通信的方式。JNDI(JavaNamingandDirecotoryInterface)JavaEE提供的命名和目录服务可以将这些名字和具体的对象绑定在一起,然后应用程序就可以通过这些名字定位这些对象,从而访问用户信息,机器信息和各种服务。JDBC(JavaDateBaseConnection)提供一个通用的访问SQL数据库和存储结构的机制,支持基本SQL功能的一个通用底层的应用程序编程接口。JavaServlet提供了生成动态Web内容的基本机制,Servlet是一种用来扩展Web服务器功能的Java程序,运行于服务器端。JSP(JavaServerPages)是构建在Servlet技术之上的,用来简化动态Web内容的开发,应用程序可以通过JSP动态生成HTML或XML文档中的动态内容部分。411.1JavaEE技术11.1.1JavaEE简介

EJB(EnterpriseJavaBeans)EJB规范提供了一种开发和部署服务器端组件的方法,并且为服务器端组件和管理这些组件的应用服务器之间提供标准的协议。每个EJB是按功能逻辑划分的,开发时不必关注系统底层细节问题,只关注具体的事务分析。EJB开发完毕后,按规范部署在EJB容器,完成相应的事务功能。JTA(JavaTransactionAPI)事务是一些不可分割的工作单位,只有该单元内的所有动作全部得到执行时,它才会被提交,JTA事务能够跨越多个组件和资源管理器,通过使用javax.transaction.UserTransaction接口可以创建和管理JTA事务。JMS(JavaMessageService)为开发消息中间件应用程序定义了一套规范,应用程序可以使用这些JMSAPI创建、发送、接收和读取消息,Java客户端和Java中间层访问消息系统只要实现JMS定义的简单的接口,就可以实现复杂的应用。JavaMailJavaMail就是JavaEE中用来发送E-mail的一组API,JavaMailAPI提供了一系列组成电子邮件的抽象类和接口,这些抽象类和接口支持消息存储,格式和传输的许多不同的实现。JAAS(JavaAuthenticationandAuthorizationService)基于JAAS的安全服务可以保证只有授权的用户才可以访问资源。511.1JavaEE技术11.1.2JavaEE应用层次与组件

JavaEE规范提供了多层次的分布式应用模型和一系列开发技术规范。多层次分布式应用模型把应用逻辑分成多个层次,每个层次运行相应的服务器和组件,组件在分布式服务器的组件容器中运行,容器间通过相关的协议进行通讯,实现组件间的相互调用。JavaEE规范定义了以下四个层次:1、客户端层(ClientTier)客户端层用来实现企业级应用系统的操作界面和显示层。另外,某些客户端程序也可实现业务逻辑。2、Web层(WebTier)由Web组件组成,主要用来处理客户请求,调用相应的逻辑块,并把结果以动态网页的形式返回到客户端。JavaEEWeb组件包括JSP页面和Servlet,也可以包括一些JavaBean。3、业务层(BusinessTier)业务层也叫EJB层或应用层,它由EJB服务器和EJB组件组成。4、企业信息系统层(EnterpriseInformationSystemTier)处理企业系统软件,包括企业基础系统、数据库系统及其他遗留的系统。6711.1JavaEE技术11.1.3JavaEE容器体系结构

JavaEE容器是一个用于管理根据JavaEEAPI技术规范开发的应用程序组件以及提供对JavaEEAPI访问的运行环境,应用程序在容器内运行。容器设置定制了JavaEE服务器所提供的内在支持,包括安全、事务管理、JNDI寻址、远程连接等服务。JavaEE服务器用容器为所有的组件类型提供后台服务。每个容器底层实现JavaEEAPI,此外,每个容器还实现了容器专用的API,比如JavaAppletAPI用于Web容器,EJBAPI用于EJB容器。JavaEE体系结构中包括以下几种容器:应用程序客户端容器:管理应用程序客户端组件的运行,应用程序客户端和它的容器运行在客户机。Applet容器:管理Applet的运行,由在客户端运行的浏览器和Java插件组成。Web容器:负责管理JavaEE应用程序中JSP页面和Servlet组件的运行。Web容器和组件在JavaEE服务器中运行。EJB容器:负责管理JavaEE应用程序中企业Bean的运行。EJB和它们的容器在JavaEE服务器中运行。JavaEE容器体系结构分为四部分:组件协议:这是容器指定的一组API,要求应用组件对其进行扩充或者实现。容器服务API:容器提供的其他服务,一般是容器中所有的应用程序需要的。声明服务:声明服务就是由容器代表我们执行一项任务或操作,部署描述符定义了容器和组件之间的协议,容器能够通过部署描述符在应用程序组件之外进行服务声明。其他容器服务:其他实时服务,与组件存活期、资源分配和垃圾收集等相关。8JavaEE服务器客户端应用程序客户端容器浏览器程序客户端Web容器ServletJSP页面EJB容器EJBEJB数据库911.1JavaEE技术11.1.4EJB简介

企业Bean是实现EJB技术规范的JavaEE组件。企业Bean在EJB容器中运行,运行时环境由服务器建立。虽然EJB容器对开发者是透明的,但它为运行其中的企业Bean提供象事务处理等的系统级服务。这些服务使你可以快速的建立和部署企业Bean,而这些企业Bean正是构成和新业务处理的JavaEE应用。

1011.1JavaEE技术11.1.4EJB简介

企业Bean一般可分为以下几类:1、会话Bean(

SessionBean)会话Bean表现连接到JavaEE服务器的一个单独的客户端。客户端通过调用会话Bean的方法来访问部署在服务器上的应用程序。会话Bean完成客户端的请求,从而对客户端隐藏了服务器内复杂商务逻辑的执行过程。根据状态管理模式的不同,会话Bean可以分为两类:有状态(stateful)会话Bean和无状态(stateless)会话Bean。2、实体Bean(

EntityBean)一个EntityBean描述一个持久存储设备的商业对象。商业对象的例子如:消费者,订单和产品等。持久存储设备对应关系型数据库。一个EntityBean与底层数据库中的一个表相对应,而EntityBean的每一个实例对应表中的一行数据。

EntityBean有两种持久性管理机制:BMP(bean-managedpersistence,Bean管理的持久性)和CMP(container-managedpersistence,容器管理的持久性)。

3、消息驱动Bean(MessageDrivenBean)Message-DrivenBean是一种可以让应用程序异步处理消息的企业Bean。它以JMS消息监听者的方式工作,很象一个事件监听者,只是用消息代替了事件。消息的发送者可以是任意JavaEE组件,即应用程序客户端、别的企业Bean、Web应用等。1111.1JavaEE技术11.1.5JavaEE应用程序的打包与部署JavaEE平台的主要特色之一在于开发人员可以在其之上整合不同的组件,这个将组件整合为模块并将模块整合为商业应用程序的过程叫做打包。在一个可使用环境中安装和定制应用程序的过程则叫做部署。

1、应用程序的打包一个JavaEE应用程序包括下列部分:一个或者多个JavaEE模块,一个JavaEE应用程序部署描述符。JavaEE应用程序的制作过程主要分为两步:首先,应用组件提供商负责开发EJB模块、Web层程序和应用客户模块。其次,应用程序集成商将这些模块打包在一起并创建一个可以部署的JavaEE应用程序。一个EJB模块通常被包装和部署为一个EJB档案文件和一个带有jar扩展名的Java档案文件。这是EJB最小的可部署和可使用单位。1211.1JavaEE技术11.1.5JavaEE应用程序的打包与部署2、应用程序的部署JavaEE的部署就是将应用组件按照一定的要求放置到应用服务器的容器内,在JavaEE应用被安装在容器内时,它们一般是根据功能被分成若干个模块,每个模块都有一个部署描述文件用于告诉JavaEE容器如何进行部署;这个描述文件是一个基于XML的文本文件,部署描述文件包含许多与应用组件和JavaEE平台服务有关的元素,例如组件如何使用事务和安全服务等等。一个JavaEE程序包括一个或多个JavaEE模块和一个JavaEE应用部署描述文件(不同于模块的部署描述文件),该应用部署描述文件告诉JavaEE应用服务器所需要部署的程序模块和如何对这些模块进行设置;一个JavaEE程序就是一个企业档案文件(EAR),EAR文件采用压缩文件格式,一个EAR文件包括一个或多个Java档案文件(JAR)以及零个或多个资源档案文件(RAR)。1311.2JavaME移动编程14随着3G、智能手机、GPS(GlobalPositioningSystem,全球卫星定位系统)等移动技术的发展,各类增值服务层出不穷。同时,各类嵌入式移动终端也在交通运输、生产调度、电子政务、实时数据采集等应用领域显示出强大的应用前景。因此,无论在消费领域还是企业级应用领域,移动软件开发技术都将迎来空前的发展机遇。面对巨大的移动应用开发市场,国外的IT厂商纷推出各种各样的移动应用平台。最具有代表性的,同时也是影响最大的Sun公司在1999年推出了JavaME。自从JavaME推出以来,得到了IT业界的迅速响应,国际上许多著名的IT厂商都积极投入到JavaME的研发和应用中,其中包括诺基亚、摩托罗拉等大公司。本节主要介绍了JavaME技术框架和应用开发过程。1511.2.1JavaME移动编程概述JavaME(Java2MicroEdition)是Java家族中的一名成员,是针对小型设备(如传呼机、手机、电视机顶盒、GPS等)开发的一组技术和规范。由于此Java版本的虚拟机的大小仅仅需要数百KB,因此又被称为“K-Java”。JavaME定义了许多专门针对电子消费设备和嵌入式设备的API,将目标设备划分为有限连接设备和连接设备,制定了CLDC(ConnectedLimitedDeviceConfiguration)和CDC(ConnectedDeviceConfiguration)两个规范,并在此基础上推出了移动信息设备简表MIDP(MobileInformationDeviceProfile)。16①KVM(KilobyteVirtualMachine):千字节虚拟机。②CLDC(ConnectedLimitedDeviceConfiguration):连网的受限设备配置。③MIDP(MobileInformationDeviceProfile):移动信息设备简表。1711.2.2JavaME技术框架JavaME定义的移动Java平台分为四层:主机操作系统、配置、简表和厂商可选包,如图11-3所示。由于Java应用程序是独立于操作系统的,因此JavaME规范仅仅包括三层:配置、简表、和厂商可选包。通过JavaME规范,JavaME为移动设备上的Java应用程序定义了一个完整的运行环境。18图11-3JavaME体系的一般结构和具体例子1911.2.3JavaME应用项目开发过程随着JavaME移动应用开发需求的不断增大,针对JavaME的开发工具和平台也越来越多,最常见的有Sun公司的WTK(WirelessToolkit,无线工具包),另外还出现了专门针对JavaME开发的集成开发环境,如NetBeans、CodeWarrior等。在JBuilder2008中,也包含了开发JavaME的组件MobileSet。20从功能、兼容性、速度、汉化程度、易用性等因素考虑,目前国内资深的程序员一般使用集成开发环境NetBeans。在NetBeans集成开发环境中通过安装MobilityPack软件包,可以快速开发出JavaME应用程序。MobilityPack提供了JavaME应用程序的可视化开发环境,大大简化了开发的难度。21在实际开发中,往往要针对某一款或几款机型的手机进行开发,因此需要用到专门为这些手机设计的JavaME开发包。开发之前,必须在NetBeans中集成某种机型的JavaME开发包。MobilityPack自带SunJavaWirelessToolkit2.5.2手机仿真平台。SunJavaWirelessToolkit2.5.2是一组用于创建Java应用程序的工具,包含生成工具、实用程序和设备仿真器。22搭建一个JavaME移动应用开发环境,需要下载相关软件,这里选择NetBeans开发平台,下载地址为:/downloads/indexC.html。23下面通过简单的开发实例,说明手机游戏的开发过程。241.低级图形界面开发举例①新建项目,选择“JavaME”|“Mobile应用程序”命令,如图11-3所示。单击“下一步”按钮,输入项目的名称和保存项目的位置,注意取消选择“创建HelloMIDlet”复选框,如图11-4所示。25图11-3选择新建“Mobile应用程序”项目26图11-4名称和位置27②单击“下一步”按钮,在图11-5所示的对话框中选择CLDC和MIDP的版本。CLDC(连接受限设备配置)定义手机应该提供什么样的虚拟机和什么样的核心Java类库。选择CLDC-1.0还是CLDC-1.1要看手机是否支持。这里选择CLDC-1.0单选按钮;MIDP选择MIDP-2.0单选按钮。单击“完成”按钮,完成项目的创建。28图11-5选择CLDC和MIDP的版本29③在图11-6所示的项目开发界面中,右击项目名称,选择“新建”|“Java包”命令,在弹出的对话框中输入包的名称“com.xkland.j2me”,创建一个java包,用来存储java程序文件,如图11-7所示。30图11-6新建Java包 31图11-7输入包名32④再一次右击项目名称,选择“新建”|MIDlet命令,如图11-8所示。MIDlet是一个继承自javax.microedition.midlet.MIDlet类的Java类,是手机程序的主程序。33图11-8新建一个MIDlet34这里设置MIDlet子类的名称为“MyFirstMIDlet.java”。系统会自动生成程序的代码框架,如图11-9所示。35图11-9IDE自动生成的代码36①CommandListener接口:需要实现commandAction方法,而实现这个接口和方法的目的是为了对手机的按键做出响应。②Form类:在程序中,用到了Form类,Form是充满这个屏幕的一个用户控件。在Form中添加字符串,然后再调用display.setCurrent方法显示Form。这里,display代表手机的屏幕。③Command对象:程序定义了一个Command对象,即动作按钮。通过Form.addCommand方法加入这个Command对象。这样,在手机的菜单条中就会显示一个“退出”按钮,至于显示在屏幕的左下方还是右下方,根据手机的不同型号而不同。当单击此按钮时,就会触发CommandListener的commandAction()方法。通过Form.addCommandListener()添加按钮的动作监听器。37在项目的快捷菜单中选择击“运行项目”命令,项目的运行效果如图11-10所示。启动项目,运行结果如图11-11所示。38图11-10运行效果图11-11启动模拟器392.高级图形界面开发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论