基于J2ME移动无线Web开发 ——厦门自助旅游_第1页
基于J2ME移动无线Web开发 ——厦门自助旅游_第2页
基于J2ME移动无线Web开发 ——厦门自助旅游_第3页
基于J2ME移动无线Web开发 ——厦门自助旅游_第4页
基于J2ME移动无线Web开发 ——厦门自助旅游_第5页
免费预览已结束,剩余32页可下载查看

下载本文档

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

文档简介

厦门大学本科生论文基于J2ME的移动无线Web开发厦门自助旅游摘要 随着 3G时代的到来,移动互联网飞速发展,移动数据通信技术将弥补传统互联网技术的这种缺憾,它以其快捷方便、无所不在的特点,己经成为互联网技术发展的方向。无线技术应用延伸了客户端用户对空间位置的需求,使这些用户需求变为现实。移动开发已经成为当今一个很热门的技术。J2ME(Java 2 Micro Edition)是为消费电子类产品和嵌入式系统等资源受限设备设计的Java平台。Web Services技术是基于XML(Extensible Markup Language)语言和SOAP(Simple Object Access Protocol)实现的分布式计算技术,是电子商务发展新阶段的核心技术之一。厦门自助旅游系统的开发设计,是基于J2ME技术,使用Eclipse、Wireless ToolKit为开发平台,并采用JSP、Microsoft Access为系统后台的数据库系统。关键词 移动开发 J2ME 旅游第一章 引 言随着无线通信技术和互联网技术的飞速发展,移动通信业务从以前的语音业务逐渐向数据业务过渡。虽然传统互联网技术己经使人们感觉到网络所带来的便利和乐趣,但它缺乏可移动性,使用起来并不是很方便。国际互联网已经逐渐成为人们所不能离开的一种通信和信息处理工具,但是它却存在着受位置限制的缺点,例如:你在旅途的火车上想了解股市行情、进行在线交易;销售人员在和客户谈判时可能想立刻获知当前在库产品价格和数量以争取到一笔大的销售定单等,都无法及时通过国际互联网来实现。无线技术应用延伸了客户端用户对空间位置的需求,使这些用户需求变为现实。而移动数据通信技术将弥补传统互联网技术的这种缺憾,它以其快捷方便、无所不在的特点,己经成为互联网技术发展的方向。随着 3G时代的到来,移动互联网飞速发展,出现了各种具有无线互联网功能的移动智能终端,使得拥有这些智能终端的人们可以随时随地完成以前只有办公室或家里才能完成的工作,人们可以“在移动中办公 ”。智能终端加上无线互联网已经成功地应用到人们生活的方方面面。无线通讯近几年来得到了突飞猛进的发展,其改变了有线通信的局限性,给随时随地的信息交流提供了极大便利。SUN 公司提出的基于消费类电子设备的嵌入式开发平台 J2ME将为新一代无线因特网提供交互式的、安全的、更加丰富多彩的应用。在电子商务市场中,要求所有的参与者都采用同一个基于某种语言和平台的模型是不现实的。而Web服务结合了面向组件方法和Web技术的优势,利用标准网络协议和XML数据格式进行通信,具有良好的适应性和灵活性,在Internet这个巨大的虚拟计算环境中,任何支持这些标准的系统都可以被动态定位以及与网络上的其它Web服务交互,任何客户都可以调用任何服务而无论它们处在何处,突破了传统的分布式计算模型在通信、应用范围等方面的限制,允许企业和个人快速、廉价建立和部署全球性应用。第二章 选题背景2.1移动开发综述 随着通讯技术的发展及手机的普及, 人们正在不断地给手机增加新的功能, 其中, 使手机实现一般只有PC 机才具有的功能下载各种程序并运行, 是目前手机发展的一个重要方向。为此,人们提出了各种各样的解决方案, 其中基于JAVA 的J2ME 方案无疑是最引人注目的。 JAVA 语言由于其平台无关、开放、网络功能强、面向对象、安全等特点, 一经SUN 公司提出, 就随着Internet的发展而风靡全世界, 在国外已成为软件开发人员的必修语言。特别是它的“一次编写、到处运行”的跨平台优点, 对于手机领域来说更具有重要的意义。因为目前手机的种类繁多, 各种厂商都有自己的标准, 如何使他们能运行同一种标准的程序成为必须要解决的问题。采用JAVA 语言后, 各种手机只要实现JAVA 虚拟机(JVM) 就可以运行JAVA 程序,这种方法可以说是目前情况下最为理想的一种解决方案。J2ME (JAVA 2Micro Edition)是用于嵌入式系统的JAVA,他是SUN 公司对标准的JAVA 版本J2SE 做了最大程度的精简后得到的一种JAVA 应用程序运行环境, 在最简单的情况下他只有几十KB,特别适合在手机、PDA 等设备中使用。手机厂商如果在自己的手机中实现了J2ME 规范,就可以从网络下载并运行JAVA 程序,从而大大扩展了手机的功能。鉴于JAVA 在Internet上取得的巨大成功,我们有理由相信,J2ME 能够把这种成功延伸到手持设备领域,为将来的手机和互联网融为一体提供有利的条件。2.2厦门自助旅游系统的开发目的以及设计目标厦门自助旅游系统的开发目标是,根据想来厦门旅游的游客的需求情况,完成系统的界面设计、功能实现、后台更新等内容,并最终实行整个系统的运行。通过厦门自助旅游系统,想来厦门旅游的游客能基本了解到厦门景点的基本信息,厦门特色小吃以及在旅游前预订酒店。厦门自助旅游系统界面版式清新淡雅,为游客提供各三星级以上酒店的介绍以及预订方式,还有风景名胜。厦门自助旅游系统后台信息管理,采用JSP技术来开发浏览器,实行对后台数据的管理。2.3厦门自助旅游系统开发工具和技术简介厦门自助旅游系统是基于J2ME,在Eclipse平台上集成WTK为开发工具,后台采用JSP,Access技术来完成整个系统。2.3.1 J2ME 简介J2ME,也就是Java 2 Platform Micro Edition,最早是在1999年6月的JavaOne大会上被正式提出。是Sun专门为小型的,资源受限的消费性电子设备的应用程序开发所提供新的Java版本。它广泛的使用于例如蜂窝电话(cell phone),双向传唤机(two-way pager),PDA(个人数字助理),以及电视机顶盒等众多小型资源受限设备中。相对于我们平常在desktop上使用的J2SE,你可以粗略的把J2ME理解为在微型设备上使用的Java平台。目前Java2平台已经正式划分为3个部分它们分别是:l J2SE Java 2 平台标准版(Java 2 platform standard Edition),其被使用范围最广,用于我们通常使用的台式机(desktop)。l J2EE Java 2平台企业版(Java 2 Platform Enterprise Edition)被广泛应用于服务器上,包括JSP,Servlet,EJB以及目前炙手可热的Web Service等技术。l J2ME Java 2平台微型版(Java 2 Platform Micro Edition),被使用在资源受限,小型消费性电子设备上,如电视机顶盒,无线电话,掌上电脑等。 Java各版本之间的关系如图 21所示:图21 Java版本之间的关系J2ME并不是一种产品,而是一种技术,J2ME包括两种类型的组件,即配置(configuration)和简表(profile)。配置(configuration)是一系列低层次的API(应用编程接口)和一种为该族设备优化的虚拟机。今天在用的一般配置有两种,连接的设备配置(CDC)和限制连接的设备配置(CLDC)。简表(profile)是一种说明,它详细描述了架构在配置之上并使用配置的一系列API。简表的一个例子是创建在CDC之上的基础描述(Foundation Profile),它为以像住宅网关、灵敏电话和双向寻呼机这样的设备为目标的应用提供完整的J2ME运行时环境。另一种简表是移动信息设备描述(MIDP),它构建在CLDC之上,为那些运行在像移动电话和登录级PDA这样的设备上的应用提供完整的J2ME运行时环境。MIDP致力于解决像用户界面、持久存储、联网和应用程序生命周期这样的问题。 CDC提供了一种虚拟机,以及支持像灵敏发报机、寻呼机、个人数字助理(PDA)和电视机顶盒这样的设备上的Java应用的基类库。这些设备的典型特征是具有一个32位的处理器和用来支持虚拟机和类库的超过2MB存储容量。CVM虚拟机正好满足了它们对于Java 2虚拟机特征集的功能需求。这是在小型平台上全特征的虚拟机。 CLDC提供一个适合于小型的、资源受限的、连接的设备上使用的标准Java平台。这些设备的典型特征是具有一个16位或者32位的处理器和用来支持虚拟机和类库的160KB到512KB的总内存,它们通常以电池作为电源,并联入某类网络中,联网一般使用带宽时常小于9600bps的无线的、断断续续的连接方式。CLDC的核心是K虚拟机(KVM)。“K”标记反映了它们的大小是以kilobytes(千字节)衡量的这一事实。CLDC的特征也是包含一系列类库。如图22所示:图22 CLDC所包含的包与对应的功能CDC的硬件参数:l 2M以上内存l 具有网络连接能力,通常为无线网络l 需要实现java虚拟机规范的全部功能l 32位或者64位的处理器CLDC的硬件参数:l 512 KB 以下内存 l 有限能源供应(通常使用电池)l 有限或非持续网络连接 l 简单的用户界面l 16位或者32位的处理器从上述的标准中我们不难看出CLDC主要针对那些资源非常受限的设备比如手机、PDA、双工寻呼机等。而CDC主要面对那些家电产品,比如机顶盒、汽车导航系统等。简表是以配置为基础的,例如Mobile Information Devices Profile(MIDP)就是CLDC上层的重要简表。与配置的纵向特性不同的是,简表是横向的。J2ME体系结构的框图如图23所示:图23 J2ME体系结构使用 CLDC 开发的 J2ME 应用程序的目标设备通常具有以下特征: l 可供 Java 平台使用的 160 到 512 千字节的总内存l 功率有限,常常是电池供电l 网络连通性,常常是无线的、不一致的连接并且带宽有限l 户接口混乱,程度参差不齐;有时根本就没有接口 一些 CLDC 支持的设备,包括无线电话、寻呼机、主流个人数字助手 (PDA),以及小型零售支付终端。2.3.2 Midlet简介MIDlet也必须实现一些特定的生命周期方法,AMS通过调用这些方法来管理MIDlet的行为。AMS与MIDlet的关系就像浏览器与Applet的关系一样。AMS使用如下生命周期方法来控制MIDlet的状态:默认构造器。AMS调用默认构造来执行基本的初始化工作,如设置实例变量。此时MIDlet还处在暂停(Paused)的状态,它并没有获得任何所需的资源。startApp()方法。AMS调用startApp()方法来获取MIDlet所需的资源,然后MIDlet将会处于活动(Active)状态。pauseApp()方法。AMS调用pauseApp()方法来释放MIDlet持有的任何资源。如果MIDlet创建了对象,则将对象状态存储到持久性存储器中并把对象设置为Null。如果MIDlet启动了任何线程,则停止或者暂停这些线程。destroyApp()方法。AMS调用destroyApp()方法来保存MIDlet的状态并释放MIDlet持有的任何资源。通常,一个设计良好的MIDlet应该在被关闭前进入此状态。用户启动MIDlet之后,被启动的MIDlet将处于应用程序生命周期中的三个状态之一。可能的状态是暂停(Paused)、活动(Active)和销毁(Destroyed)。活动状态:当一个MIDlet进入活动状态时,它将获得用于执行任务的所有资源。转移到活动状态之后,所需的线程应该被启动。暂停状态:当一个MIDlet进入暂停状态时,它应该释放所有持有的资源并停止活动的线程。如果有需要,则应该把数据保存到持久性存储器中,这样在程序重新进入活动状态的时候可以重用。销毁状态:当一个MIDlet进入销毁状态时,它应该释放所有资源、停止正在执行的线程并保存持久性的数据。如图24所示MIDlet状态:图24 MIDlet的状态2.3.3其他技术简介(1) JSP简介 JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。该技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。JSP规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果。在传统的网页HTML文件(*htm, *.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。 JSP技术在多个方面加速了动态Web页面的开发:1) 将内容的生成和显示进行分离 使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。2) 强调可重用的组件绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。3) 采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。当与Java 2平台,企业版(J2EE)和Enterprise JavaBean技术整合时,JSP页面将提供企业级的扩展性和性能,这对于在虚拟企业中部署基于Web的应用是必需的。4) 技术分析Microsoft 公司的 ASP 技术也是动态网页开发技术。JSP和ASP从形式上非常相似,ASP程序员一眼就能认出以及。但是深入探究下去会发现它们很多的差别,其中最主要的有以下三点: JSP的效率和安全性更高ASP以源码形式存放,以解释方式运行,每次ASP网页调用都需要对源码进行解释,运行效率不高。另外,IIS的漏洞曾使得许多网站源程序大曝光,包括笔者以前用ASP开发的网站,ASP程序全部被人下载了去。JSP在执行以前先被编译成字节码 (byte code),字节码由Java虚拟机(Java Virtual Machine)解释执行,比源码解释的效率高;服务器上还有字节码的Cache机制,能提高字节码的访问效率。第一次调用JSP网页可能稍慢,因为它被编译成Cache,以后就快得多了。同时,JSP源程序不大可能被下载,特别是JavaBean程序完全可以放到不对外的目录中。 JSP的组件 (Component) 方式更方便ASP通过COM来扩充复杂的功能,如文件上载、发送email以及将业务处理或者复杂计算分离出来成为独立可重复利用的模块。JSP通过JavaBean实现了同样的功能扩充。在开发方面,COM的开发远比JavaBean复杂和繁琐,学会ASP不难,但学会开发COM可不简单。而JavaBean就简单多了,从本文上述示例中可以看出开发JavaBean很方便。在维护方面,COM必须在服务器上注册,如果修改了COM程序,就必须重新注册,甚至必须关机和重新启动。JavaBean则不需要注册,放在CLASSPATH包含的目录中就行了。如果JavaBean进行了修改,则JSWDK和Tomcat现在还需要关闭和重新运行(但不是关机),但开发者已经许诺将在以后的版本中做到不需要关闭服务器。另外JavaBean是完全的OOP,可以针对不同的业务处理功能方便地建立一整套可重复利用的对象库,例如用户权限控制、email自动回复等等。 JSP的适应平台更广ASP目前仅适用于NT和IIS。虽然Unix下有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的组合来扩充,Unix下的COM实现起来非常困难。 (2) tomcat简介 Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。 与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。 在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。 Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。 另外,Tomcat提供Realm支持。Realm类似于Unix里面的group。在Unix中,一个group对应着系统的一定资源,某个group不能访问不属于它的资源。Tomcat用Realm来对不同的应用(类似系统资源)赋给不同的用户(类似group)。没有权限的用户则不能访问这个应用。Tomcat提供三种Realm,1:JDBCRealm,这个Realm将用户信息存在数据库里,通过JDBC获得用户信息来进行验证。2:JNDIRealm,用户信息存在基于LDAP的服务器里,通过JNDI获取用户信息。3:MemoryRealm,用户信息存在一个xml文件里面,上面讲的manager应用验证用户时即使用此种Realm。通过Realm我们可以方便地对访问某个应用的客户进行验证。 基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。我们这里要提到另外一个工具Ant,Ant也是Jakarta中的一个子项目,它所实现的功能类似于Unix中的make。你需要写一个build.xml文件,然后运行Ant就可以完成xml文件中定义的工作,这个工具对于一个大的应用来说非常好,我们只需在xml中写很少的东西就可以将其编译并打包成WAR。事实上,在很多应用服务器的发布中都包含了Ant。另外,在Jsp1.2中,可以利用标签库实现Java代码与Html文件的分离,使Jsp的维护更方便。(3) Microsoft Access简介 数据库是有结构的数据集合,它与一般的数据文件不同,(其中的数据是无结构的)是一串文字或数字流。数据库中的数据可以是文字、图象、声音等。 Microsoft Access是一种关系式数据库,关系式数据库由一系列表组成,表又由一系列行和列组成,每一行是一个记录,每一列是一个字段,每个字段有一个字段名,字段名在一个表中不能重复。图1是一个“产品”表的例子。“产品”表由10个记录组成,一个记录占一行,每一个记录由产品ID、产品名称、库存量、订货量、单价和折扣率6个字段组成。“产品ID”是字段名,其下面的1,2等是字段的值。 表与表之间可以建立关系(或称关联,连接),以便查询相关联的信息。Access数据库以文件形式保存,文件的扩展名是MDB。 Access 97数据库由六种对象组成,它们是表、查询、窗体、报表、宏和模块。 表(Table) 表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。 查询(Query)查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。 窗体(Form)窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。窗体也称表单。 报表(Report)报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。 宏(Macro)宏相当于DOS中的批处理,用来自动执行一系列操作。Access列出了一些常用的操作供用户选择,使用起来十分方便。 模块(Module)模块的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需要编写程序。模块使用Visual Basic编程。 2.3.4开发工具简介以及仿真器配置简介(1) Eclipse简介 Eclipse这样功能完整且成熟的开发环境,是由蓝色巨人IBM所释出。IBM花了4千万美金来开发这个IDE(Integrated Development Environment)。 Eclipse已经成为开放原始码计划(Open Source Project),大部分的开发仍然掌握在IBM手中,但是有一部份由的软件联盟主导。() Eclipse项目由Project Management Committee(PMC)所管理,它综观项目全局,Eclipse项目分成3个子项目:l 平台-Platforml 开发工具箱-Java Development Toolkit(JDT)l 外挂开发环境-Plug-in Development Environment(PDE) 这些子项目又细分成更多子项目。例如Platform子项目包含数各组件,如Compare、Help与Search。JDT子项目包括三个组件:User Interface(UI)、核心(Core)及除错(Debug)。PDE子项目包含两个组件:UI与Core。 Eclipse是开放原始码,结果很多人在使用的时候都不注重合法权的问题。开放原始码软件让使用者能够取得软件的原始码,有权去修改和散布这个软件。如果想修改软件,这件事的另一面就是,除非其它人对修改后的软件也有相同的权力,否则是不能散布修改后的软件,这种权利和著作权(copyright)相反,开放原始码项目中有时称之为著作义(copyleft)。 多数人认为Eclipse是Java IDE,不过,当下载Eclipse之后,除了有Java IDE(就是JDT),还有PDE。然而Eclipse是万用工具平台。JDT实际上是Eclipse的添加品,也就是外挂程序。Eclipse本身实际上是指Eclipse平台(Eclipse Platform),除了下载时能取得Java工具集以外,还提供各种工具的支持,所以平台本身只是相当小的软件。如果想开发Java程序,用的是Eclipse随附的JDT外挂程序。如果想开发其它语言的程序,就需要拿到其它外挂程序,诸如CDT(C Development Toolkit)就可以开发C/C+程序。 Eclipse跨计算机语言,也跨人类的语言。相同的外挂机制可用来增加对不同语言的支持,这里使用一种特殊的外挂,叫做外挂程序片断(plug-in fragment)。IBM以捐出一个语言套件,支持中文(繁体与简体)、法文、德文、意大利文、日文、韩文、葡萄牙文(巴西)与西班牙文。图 25 Eclipse界面(2) Wireless Toolkit简介Wireless Toolkit是由sun公司推出的,为移动开发各厂商移动开发平台加载模拟器。J2ME Wireless Toolkit 是用于创建 MIDP 应用程序的工具集。该工具集包含 3 个主要组件: l KToolbar 使创建 MIDP 应用程序时涉及的多项任务能够自动执行。 l 仿真器是一部模拟移动电话。用于测试 MIDP 应用程序。 l 实用程序集提供了其他有用的功能,包括文本消息传送控制台和加密实用程序。 J2ME Wireless Toolkit 实现了通过标准 API 所展现出来的令人印象深刻的功能。API 通过 Java Community Process (JCP) 进行定义: l Connected Limited Device Configuration (CLDC) 1.1 (JSR 139) l Mobile Information Device Profile (MIDP) 2.0 (JSR 118) l Java Technology for the Wireless Industry (JTWI) 1.0 (JSR 185) l Wireless Messaging API (WMA) 2.0 (JSR 205) l Mobile Media API (MMAPI) 1.1 (JSR 135) l PDA Optional Packages for the J2ME Platform (JSR 75) l Java APIs for Bluetooth (JSR 82) l J2ME Web Services Specification (JSR 172) l Mobile 3D Graphics API for J2ME (JSR 184) (3)仿真器的配置对于Eclipse 3.2,Wireless Toolkit 2.5的安装这里就不再多做介绍了。在Eclipse上集成J2ME插件,可以从Eclipse的主菜单上开始操作,分别为:Help Software Updates Find and Install Search for new features to install New Local Site,选中J2ME的压缩包,一路Next就可以了。现在,我们要把WTK集成到Eclipse 3.2上,首先要选中Windows Preferences,选择J2ME,如图25所示。图 25 Eclipse 3.2中WTK配置需要注意的是Debug Server Delay (ms)要设置为20000ms,因为运行J2ME欢迎的设备的内存非常小。然后打开Device Management,如图26所示。图 26 Device Management界面点击Import到图27所示:图 27 Import界面选择WTK的目录之后,点击Refresh就从WTK的安装文件中取得四个仿真器。如图28所示:图 28 导入仿真器 全选中,点击Finish导入就成功了。仿真也配置完毕。第三章 厦门自助旅游整体框架描述3.1厦门自助旅游系统整体设计思想根据厦门旅游的实际情况,我分析确定了系统形象定位、系统功能定位、系统用户定位等。首先是整个系统的形象定位。一般的手机软件给第一印象往往是视觉的印象,也就是软件的整体风格。厦门自助旅游系统是提供厦门旅游的信息,所以界面要求会简单一些。根据游客想要知道的信息,我设计出了系统的以下功能:l 厦门城市简介;l 可以浏览厦门所有景点;l 可以查询所有厦门三星级以上的酒店以及酒店介绍和预订方式;l 厦门特色小吃介绍。系统用户定位为:想来厦门旅游的人群。根据游客的需求信息,我把系统分为五个模块:l 厦门概述介绍厦门城市;l 景点介绍介绍厦门所有的景点、景观等;l 住在厦门介绍厦门所有三星以上酒店,以及酒店介绍、酒店位置、 酒店预订方式等;l 吃在厦门介绍厦门特色小吃;l 软件信息软件介绍。本系统详细子目录见3.2。3.2厦门自助旅游系统框架说明3.2.1各级框架说明厦门自助旅游系统采用C/S模式,通过JSP文档作为中间站,当JSP文档得到输入流,然后查询数据库得到数据,并返回客户端数据,如图3-1所示:数据库客户端JSP页面图31 厦门自助旅游系统框架前面已经介绍了厦门自助旅游系统分为五个模块:厦门概述、景点介绍、住在厦门、吃在厦门、软件信息,如图32所示。欢迎信息首页厦门概述景点介绍住在厦门吃在厦门软件信息图32 厦门自助旅游系统模块除了厦门概述,其余子模块还继续分成若干子模块:景点介绍鼓浪屿,万石植物园,南普陀寺,湖里山炮台,会展中心,同安影视城(如图33所示);景点介绍鼓浪屿万石植物园南普陀寺湖里山炮台会展中心同安影视城图33 景点介绍模块住在厦门三星级酒店,四星级酒店,五星级酒店;(如图34所示)住在厦门五星级酒店四星级酒店五星级酒店三星级酒店图34 住在厦门模块吃在厦门闽菜,川菜,广东菜,其他。(如图35所示)吃在厦门其他闽菜广东菜川菜图35 吃在厦门模块软件信息软件介绍以及软件功能;(如图36所示)软件信息软件介绍软件版本图36 软件信息模块 厦门概述如图37所示:厦门概述厦门介绍图37 厦门概述3.2.2统一管理数据系统使用一个类对各级联菜单的选项实行统一管理,既能方便对功能的修改,也为程序的可读性以及维护方便了许多。第四章 厦门自助旅游客户端的详细设计4.1欢迎界面设计欢迎界面有两种设计方式来实现:第一种是按任意键进入系统的主界面;第二种是等待n秒(n6)以后自动进入主界面。这里采用第二种方法,让欢迎界面自动等待3秒,在等待中按任意键直接进入系统的主界面。欢迎界面根据第二种方法,用Alert来实现显示的文字和图片,并设定Alert的超时时间为2000毫秒的方法。欢迎界面要在startApp()方法中实现Image image = null;tryimage = Image.createImage(/Data/air2.jpg);catch(Exception e)System.out.print(e);/设置alert标题Alert alert = new Alert(应用程序初始化中,请稍候.);alert.setType(AlertType.INFO);/设置alert图片信息alert.setImage(image);/设置alert文字信息String str = 个性化自助厦门旅游;alert.setString(str);/设置alert停顿时间alert.setTimeout(2000);Navigator.current = Navigator.MAIN_SCREEN;Navigator.dispaly.setCurrent(alert, MainScreen.getInstance(); 欢迎界面如图41所示:图41 欢迎界面4.2首页菜单设计首页菜单直接继承javax.microedition.lcdui.List从数据类中提取各菜单选项后,对其处理并用粗体显示在屏幕上,如图42所示。super(住在厦门, List.IMPLICIT);for(int i = 0; i Data.HotelStar.length; i+) this.append(Data.HotelStari, null); for(int i = 0; i Data.HotelStar.length; i+) this.setFont(i, Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_LARGE); this.addCommand(new Command(确定, Command.OK, 0);this.addCommand(new Command(返回, Command.EXIT, 1);this.setCommandListener(this);图42 首页4.3住在厦门模块设计住在厦门模块有三个子界面,分别是五星级酒店、四星级酒店和三星级酒店,实现的原理同4.2的首页,这里就不再多做介绍了,如图43所示。图43 住在厦门界面这里就要跟后台数据库交互了,进行后台交互是一个难点,需要多线程来解决这个问题,否则会出现死锁以及NullPointException。为了解决死锁,通常要把连接网络的代码放在新的线程里面。J2ME连接网络需要打开HttpConnection。 public void connect() try httpConnection = (HttpConnection) Connector.open(URL); httpConnection.setRequestMethod(HttpConnection.POST); catch (IOException ex) System.out.println(Can not open connection!); ex.printStackTrace(); 使用完打开的连接,要注意关闭连接,避免程序出错。 public void close() if(httpConnection!=null) try httpConnection.close(); catch (IOException ex) ex.printStackTrace(); 如果要发送字符给后台,需要设定状态为HttpConnection.POST,并打开输出流。J2ME无线网络数据库是采取字节的方式传输,因此发送给服务器的字符必须转化成字节的格式,使用os.write()方法发送到后台。我定义了sendMessage()方法来发送数据。 httpConnection.setRequestMethod (HttpConnection.POST); os = httpConnection.openDataOutputStream (); byte output = message.getBytes(); for (int i = 0; i output.length; i+) os.write(outputi); os.flush(); os.close(); 想要得到后台的数据,需要打开输入流,接受后台数据。我定义了receiveMessage()来接受数据。 is = httpConnection.openDataInputStream(); int rc = httpConnection.getResponseCode();if (rc != HttpConnection.HTTP_OK) throw new IOException(Http响应代码: + rc);int ch;while (ch = is.read() != -1) come += (char)ch;come = (unicodeTogb2312(come); is.close(); return come; 刚才已说明J2ME传输是属于字节流传输,需要对字节流进行处理,这里定义了unicodeTogb2312()来转换。 public static String unicodeTogb2312(String s) if (s=null) return ; if (s.equals() return s; try return new String(s.getBytes(ISO8859_1),gb2312); catch(Exception uee) return s; 当点击五星级酒店时,客户端就会自动发送“5”到服务器,服务器返回查询结果,列出所有的五星级酒店,如图44所示。图44 五星级酒店列表当点击五星级酒店列表是,客户端就会自动发送列表名称发送给服务器,服务器返回结果,给出该酒店的具体信息,显示在手机屏幕上,我定义了一个TextBox来显示返回的信息。相关的方法同上面,不再多说。4.4景点介绍和吃在厦门模块设计这两个模块的实现方法跟住在厦门模块相似,只是不用连接数据库。如图45所示。图45 景点介绍界面4.5软件信息模块设计此模块介绍了软件的版本以及软件的功能,采

温馨提示

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

评论

0/150

提交评论