毕业论文-基于java的无线旅游手机客户端设计与开发_第1页
毕业论文-基于java的无线旅游手机客户端设计与开发_第2页
毕业论文-基于java的无线旅游手机客户端设计与开发_第3页
毕业论文-基于java的无线旅游手机客户端设计与开发_第4页
毕业论文-基于java的无线旅游手机客户端设计与开发_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)题目无线旅游手机客户端设计与开发专业计算机科学与技术班级学生指导教师2015年摘要随着现代科技社会的不断发展,网络技术的不断进步,从基于PC机的传统上网方式转向移动互联网已经成为一个趋势。移动互联网在经过多年的发展,正在形成稳定的市场服务格局。根据移动互联网的特点来看,手机客户端将是影响移动互联网发展的重要因素。手机客户端是指移动互联网企业为方便用户使用,而特别定制研发的特殊终端应用。本文设计实现的无线旅游客户端就是基于这样的一款实例应用的软件。用户可以通过该客户端进行旅游行程、线路、景点、规划以及加密下载,并通过手机实现导航或地图引导到景点,景点内自助导游。本客户端软件系统在开发过程中基于C/S架构、J2ME平台,利用JAVA语言编写。主要是实现对服务器的数据请求、解析和显示的功能。本系统所访问的服务器为中国移动无线旅游服务器,故由中国移动客户给出需求说明,说明书包括了协议框架和接口说明。客户端就是通过这些接口来访问服务器的数据。关键词无线旅游,客户端,C/SABSTRACTNOWSCIENCEANDTECHNOLOGYWITHTHECONTINUOUSDEVELOPMENTOFSOCIETY,THENETWORKTECHNOLOGYADVANCES,FROMBASEDONPCSTRADITIONALINTERNETWAYTOMOBILEINTERNETHASBECOMEATRENDMOBILEINTERNETISTRYINGTOFORMSTABLEMARKETSERVICEPATTERNACCORDINGTOTHECHARACTERISTICSOFTHEMOBILEINTERNET,MOBILEPHONETOSEETHECLIENTWILLAFFECTTHEDEVELOPMENTOFMOBILEMOBILEPHONEACLIENTISREFERSTOTHEMOBILEINTERNETENTERPRISEFORTHECONVENIENCEOFUSE,ANDCUSTOMMADESPECIALTERMINALAPPLICATIONDEVELOPMENTTHISPAPERINTRODUCESTHEDESIGNOFTHEREALIZATIONOFTHEWIRELESSTOURISMCLIENTISBASEDONSUCHAEXAMPLEOFAPPLICATIONSOFTWARETHEUSERCANTHROUGHTHECLIENTTOURS,LINES,PLANNINGANDENCRYPTION,ANDTHROUGHTHECELLPHONEDOWNLOADCELLREALIZENAVIGATIONORMAPTOATTRACTIONS,ATTRACTIONSINGUIDESELFHELPGUIDETHECLIENTSOFTWAREINTHEPROCESSOFSYSTEMDEVELOPMENTBASEDONC/SSTRUCTURE,USEDJ2MEPLATFORM,JAVALANGUAGEMAINLYISTOREALIZETHESERVERDATAREQUEST,ANALYSISANDDISPLAYTHEFUNCTIONTHISSYSTEMVISITSTHESERVERFORCHINAMOBILEWIRELESSTOURISM,THEDESCRIPTIONGIVENTHATINCLUDETHEFRAMEWORKANDINTERFACESPECIFICATIONSTHECLIENTISTHROUGHTHESEINTERFACESFORACCESSINGTHESERVERDATAKEYWORDSWIRELESSTOURISM,CLIENT,C/S目录第1章引言111课题背景112国内外研究现状及趋势113本课题研究的意义214本课题的研究方法3第2章技术基础521开发语言及环境522开发语言简介523J2ME平台介绍724JSON介绍825客户端软件格式9第3章需求分析1031系统设计概要1032软件体系结构1033软件功能模块设计与划分11331景点模块11332线路模块12333排行模块13334搜索模块13335评论模块13336功能模块图1434客户端系统流程图14第4章数据需求分析1641数据来源1642相关规定16421HTTP请求格式16422GET与POST区别1743接口实例17431搜索17432评论服务21433提交评论23第5章系统设计与实现2551数据请求25511搜索25512评论2752数据解析28521搜索28522评论3053数据处理30531搜索30532评论3154UI显示3255UI浏览33551软件启动页面33552搜索34553评论36第6章软件测试3961测试项目39611搜索39612评论40第7章结论41致谢42参考文献43第1章引言11课题背景随着3G和4G和4G时代的到来,手机上网已经慢慢进入人们的生活,谈到未来基于手机上的无线互联网的发展趋势究竟是手机客户端上网还是手机AP上网,目前这个阶段还很难过早的下定论。但是有一点是可以肯定的,那就是用户体验的好坏将直接决定这两者的前途命运。利用手机WAP上网,第一次则需要手动输入网址,当然可以将该网页保存为标签,之后也可以做到较为方便的访问。在手机上完成输入网址或者在众多保存的标签中查找需要的网址,确实是需要一定时间的。而客户端软件,虽然需要在手机上安装才能使用,但是仍然是登入互联网最便捷的方式,扼守着移动互联网的第一入口,为企业进入营销时代开辟了一条康庄大道。目前,无线互联网行业以手机客户端为主的产品很多。手机客户端为企业提供完善、便捷、多样、高效的移动营销。当中以手机客户端产生的产业发展迅猛,例如中国移动,中国联通,中国电信支持的完美E端是专门为企业提供定制手机客户端的。他通过为企业提高定制手机客户端,手机应用即可自己实现便捷、有效的移动营销。本无线旅游客户端正是由中国移动提出,由本人所签公司(东信和平智能卡股份有限公司)负责开发的软件,为用户获取信息提供便捷的方式。12国内外研究现状及趋势现在已经进入3G和4G移动互联网时代,在所有开通3G和4G的国家中,目前为止,日本和韩国是3G和4G数据业务做的最成功的。日本是全球最早提供3G和4G业务的国家之一,2001年开始引入日本整个移动通信网络中,有超过85的3G和4G用户,其中有超过88是移动用户。韩国不论是语音市场的增值业务(如彩铃),还是手机电视、手机音乐、手机游戏和手机定位等3G和4G数据业务都发展的很好。截至2008年11月底,韩国3G和4G用户数量约为1586万人,占移动通信用户总数的3495,比欧美国家28的平均水平高很多。在韩国,无线互联网的发展至今特别迅速。目前,手机客户端软件处于一个成长的阶段,内置式重要的推广方式,终端厂商为增值自身产品的附加值会内置应用软件。软件服务运营商为推广自身增值业务与终端厂商合作,终端厂商与各方厂商合作越来越紧密,随着智能手机逐渐变成一个信息化终端、娱乐化终端,移动运营商的主营收入更将可能由此向数据业务及其他的增值业务靠拢。目前,虽然手机应用软件产品层出不穷,但是产品承载的业务还比较单调,主要是音视频下载、信息资讯查询、位置服务等几种业务。而本系统则属于位置服务的增值业务。13本课题研究的意义大众旅游时代的到来,使旅游日益成为现代人类社会主要的休闲放松的生活方式和社会经济活动,旅游业已成为全球经济发展中势头最强劲和规模最大的产业之一,日益凸显它在国民经济中的重要地位。旅游业的发展以整个国民经济发展水平为基础并受其制约,同时又直接或间接地促进国民经济有关部门的发展。正因为旅游对于民生对于国家经济发展的重要性,建立一个无线旅游系统的手机客户端对于了解景点资讯,促进旅游业发展以及提高旅游质量都是很有必要的,也使得管理信息化。顺应了社会信息化和潮流化。和传统移动互联网相比,手机客户端主要有如下优势第一、移动(无线)互联网操作不便,内容同质化较为严重,需要客户端帮助用户简化操作。移动(无线)互联网依赖于手机载体,因此在屏幕尺寸、输入方式等方面,一直存在着限制。内容摆放混乱,且同质化严重,是一直困扰用户的问题。而客户端的使用,使得用户只需要在本地进行操作,且客户端上提供了更为友好的界面和更多的功能,用户不必费心思去输入网址和复杂的点击操作,即可得到所需信息。第二、客户端操作可以节约用户上网费用。由于用户下载了客户端,可以对自己所关注的内容直接操作,而不必再每次进入下载首页,或者打开不必要的网页,减少流量费用。目前是以流量进行计算收费的移动互联网时期,减少流量对于用户而言,是很重要的问题。虽然流量包月制减轻了用户的负担,但多数用户仍会关心如何减少不必要的浪费。第三、客户端应用便于形成用户使用粘性。通过客户端的使用,用户将习惯于一种操作模式,这种应用上的习惯,将直接形成用户的粘性,减少用户流失。对于移动互联网发展而言,无疑用户是最为宝贵的财富,追求稳定的用户数量,是现阶段移动互联网企业的首要问题。14本课题的研究方法本课题在开发过程中,基于中国移动提供的中国移动无线旅游平台与手机客户端软件接口规范来完成客户端的开发。本项目是由本人所签订的公司给出,共由4个人来开发完成。本人参与了从需求获取到整个项目的概要设计、详细设计、代码编写以及测试的整个过程。在这个过程中,公司侧重于让新人体会一个完整项目的开发流程。而这些,应该比仅仅参与代码的开发来的更加至关重要,并且我们从中学到了很多的知识。为我从应届毕业生到职业人搭建了很好的桥梁。本人在开发无线旅游客户端的过程中,前期主要是对知识的储备,学习有关JAVA和J2ME的相关知识,以及软件工程中学习的开发软件的理论。并在同事的引导下参与项目的各个环节,主要是通过不断加强理论学习,由本人设计并实现公司分配的模块,并在遇到难以解决的问题时,向同事请教的方式完成本次毕业设计任务。第2章技术基础21开发语言及环境操作系统WINDOWSXP应用技术J2ME,JAVA,JSON应用服务器由中国移动提供服务器及接口开发平台J2ME22开发语言简介J2ME平台主要是用JAVA进行开发。JAVA是由SUNMICROSYSTEMS公司于1995年5月推出的JAVA程序设计语言和JAVA平台的总称。JAVA平台是由JAVA虚拟机(JAVAVIRTUALMACHINE)和JAVA应用编程接口(APPLICATIONPROGRAMMINGINTERFACE简称API)构成。JAVA应用编程接口为JAVA应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个JAVA平台之后,JAVA应用程序就可运行。现在JAVA平台已经嵌入了几乎所有操作系统。这样JAVA程序可以只编译一次,就可以在各种系统中运行。JAVA应用编程接口已经从11X版发展到12版。目前常用的JAVA平台基于JAVA15,最近版本为JAVA17。JAVA是一种简单的、面向对象的、分布式的、解释型的、健壮安全的、结构中立的、可移植的、性能优异的、多线程的动态语言。JAVA分为三个体系JAVASEJAVA2PLATFORMSTANDARDEDITION,JAVA平台标准版,JAVAEEJAVA2PLATFORM,ENTERPRISEEDITION,JAVA平台企业版,JAVAMEJAVA2PLATFORMMICROEDITION,JAVA平台微型版。本客户端采用J2ME平台。JAVA语言的主要有以下特性(1)JAVA语言是简单的。它和C语言和C很接近,但又丢去了C中很少使用和很难理解的特性。(2)JAVA是面向对象的。它提供了类、接口和继承等原语,为了简单起见,只支持类之间的单继承,并支持类与接口之间的实现机制。JAVA语言全面支持动态绑定,而C语言只对虚函数使用动态绑定。总之,JAVA语言是一个纯的面向对象程序设计语言。(3)JAVA语言是分布式的。JAVA语言支持INTERNET的应用开发,在基本的JAVA应用编程接口中有一个网络应用编程接口。它提供了应用网络编程接口的类库,包括URL、URLCONNECTION、SOCKET、SERVERSOCKET等。4JAVA语言是健壮的。JAVA的强类型机制、异常处理、废料的自动收集等是JAVA程序健壮的重要保证。对指针的丢弃是JAVA明智的选择。JAVA的安全机制使得JAVA更加健壮。(5)JAVA语言是安全的。JAVA通常被用在网络环境中,为此,JAVA提供了一个安全机制以防恶意代码的攻击。除了JAVA语言具有的许多安全特性以外,JAVA对通过网络下载的类具有一个安全防范机制(类CLASSLOADER),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SECURITYMANAGER)让JAVA应用设置安全哨兵。(6)JAVA语言是体系结构中立的。JAVA程序(后缀为JAVA的文件)在JAVA平台上被编译为体系结构中立的字节码格式(后缀为CLASS的文件),然后可以在实现这个JAVA平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。(7)JAVA语言是可移植的。这种可移植性源于体系结构的中立性,另外JAVA还严格规定了各个基本数据类型的长度。JAVA系统本身也具有很强的可移植性,JAVA编译器是用JAVA实现的,JAVA的运行环境是用ANSIC实现的。(8)JAVA语言是解释型的。如前所述,JAVA程序在JAVA平台上被编译为字节码格式,然后可以在实现这个JAVA平台的任何系统中运行。在运行时,JAVA平台中的JAVA解释器对这些字节码进行解释执行,执行过程中需要的类在连接阶段被载入到运行环境中。(9)JAVA是高性能的。与那些解释型的高级脚本语言相比,JAVA的确是高性能的。事实上,JAVA的运行速度随着JITJUSTINTIME编译器技术的发展越来越接近于C。(10)JAVA是多线程的。在JAVA语言中,线程是一种特殊的对象,它必须由THREAD类或其子(孙)类来创建。通常有两种方法来创建线程其一,使用THREADRUNNABLE的构造子类实现了RUNNABLE接口的对象包装成一个线程,其二,从THREAD类派生出子类并重写RUN方法,使用该子类创建的对象即为线程。值得注意的是THREAD类已经实现了RUNNABLE接口,因此,任何一个线程均有它的RUN方法,而RUN方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。JAVA语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为SYNCHRONIZED)。(11)JAVA语言是动态的。JAVA语言的设计目标之一是适应于动态变化的环境。JAVA程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,JAVA中的类有一个运行时刻的表示,能进行运行时刻的类型检查。23J2ME平台介绍J2ME为在移动设备和嵌入式设备上运行的应用程序提供一个健壮且灵活的环境。J2ME包括灵活的用户界面、健壮的安全模式、许多内置的网络协议以及对可以动态下载联网和离线应用程序的丰富支持。记忆J2ME规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。开发J2ME程序一般不需要特别的开发工具,开发者只需要装上JAVAJDK及下载免费的SUNJAVAWIRELESSTOOLKIT2XX系类开发包,就可以开始编写J2ME程序、编译以及测试。24JSON介绍JSON(JAVASCRIPTOBJECTNOTATION)是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JAVASCRIPTSTANDARDECMA2623RDEDITIONDECEMBER1999的子集。JSON采用完全独力的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C、C、JAVA、JAVASCRIPT、PERL、PYTHON等)。这些特性使JSON成为理想的数据交换语言。对象是一个无序的“名称/值对”集合。一个对象以“”(左括号)开始,“”(右括号)结束。每个“名称”后跟一个“”(冒号);“名称/值对”之间使用“,”(逗号)分隔。数组是值(VALUE)的有序集合。一个数组以“”(左中括号)开始,“”(右中括号)结束。值之间使用“,”(逗号)分隔。值(VALUE)可以是双引号括起来的字符串(STRING)、数值NUMBER、TRUE、FALSE、NULL、对象(OBJECT)或者数组(ARRAY)。这些结构可以嵌套。字符串(STRING)是由双引号包围的任意数量UNICODE字符的集合,使用反斜线转义。一个字符(CHARACTER)即一个单独的字符串(CHARACTERSTRING)。除去一些编码细节,以下描述了完整的语言。字符串(STRING)与C或者JAVA的字符串非常相似。除去未曾使用的八进制与十六进制格式,数值(NUMBER)也与C或者JAVA的数值非常相似。空白可以加入到任何符号之间。JSON和HTML的区别可读性JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。可扩展性XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。编码难性XML有丰富的编码工具,比如DOM4J、JDOM等,JSON也有JSONORG提供的工具,但是JSON的编码明显比XML容易许多。25客户端软件格式手机客户端格式,顾名思义就是手机软件的格式。目前手机客户端软件的格式主要包括JAR、JAD、SIS、SISX、CAB、MMPKG、APK共七种格式。其中,SIS是S60V1V2UIQ平台系统的客户端格式,SISX是S60V3平台系统的客户端格式,CAB是SMMARTPHONE平台系统的客户端软件格式,MMPKG是OSXPACKARE苹果操作平台系统的客户端软件格式,APK是GOOGLEANDROID平台系统。而本客户端的软件格式是基于J2ME平台开发的JAR格式。JAR格式支持四种手机平台,分别是SYMBIAN、JAVA、WINDOWS、OPHONE平台。第3章需求分析31系统设计概要无线旅游是指用户通过手机客户端软件进行旅游行程、线路、景点、规划以及加密下载,并通过手机实现导航或地图引导到景点,景点内自助导游的一款位置业务。那么作为这样一款软件,提供足够的信息量是前提。目前,无线旅游网站中省内景点已达到接近600多个,省内景点数量已超过同城网、携程网、旅评网、中国风景名胜网等国内位居前列的旅游类网站。除了信息量大以外,本软件还率先提供了将旅途行程、线路、景点加密成固定格式的文件并下发到手机的服务,并在手机中提供了同互联网上基本一致的展现效果。免去了客户用纸和短彩信等方式记录的不便,实现了旅途规划随身走。出发后全程地图指导和导航,用户使用手机中的无线旅游软件或WAP方式可以在旅途中查看使用地图导引行车路线或导航服务,这对自驾车客户非常方便。并且在用户进入景区后,景区内多个景点都有导游词介绍。无线旅游客户端适配275款机型,支持的平台有WINDOWS、SYMBIAN、JAVA、OPHONE四种手机平台,大部分适合的解析度是240320。全球通、动感地带、神州行的用户均可使用本软件。当然,对于个别特殊的机型,会做相应的调整和适配。32软件体系结构本系统是基于C/S模式开发的,即客户端/服务器结构,是20世纪80年代末逐步成长起来的一种模式,是软件体系结构的一种,C/S结构的关键在于功能的分布,一些放在客户端上执行,另一些放在服务器上执行。功能的分布在于减少计算机系统的各种瓶颈问题。如图31为软件总结设计的框架图图31设计框架图33软件功能模块设计与划分无线旅游是用户通过手机客户端软件进行旅游行程、线路、景点规划及下载,并通过手机实现导航或地图引导到景点、景点内自助导游的功能。本软件的功能分为五个模块,包括景点、线路、排行、搜索和评论等,每个模块完成自己的任务。各模块之间的划分遵从高内聚,低耦合的划分原则,有利于项目开发的更好完成。以下分别论述各个模块的功能。331景点模块景点模块主要是对景点的基本信息的介绍,用户可以查看该景点的图片、设施、线路、评论并且可以实现导航去景点的功能。以下是对景点模块功能的详细论述。景点文件下载应用程序启动后,在网站上订购的景点,将会自动开始下载。如果订购了多个景点,将按照顺序下载。景点下载完成后,将排列在“已下载”列表中,用户可以点击查看景点文件详情,对于下载队列中没有下载完成的文件,客户端提供断点续传功能。查看景点文件用户可以查看景点文件内包含的景点简介、景点下的所有景观、景点下的所有设施、景点下的所有游览线路、景点的图片、景点在地图上的位置、景点的评论。查看景观详情针对景点下的每个景观,可以查看景观的简介、景观图片和景观的评论。查看设施详情针对景点下的每个设施,可以查看设施的简介、设施的图片和设施的评论。景点内导游可以选择某条游览线路,查看该游览线路的导游图,并可以使用此游览线路进行导游,手工或自动切换到当前所在的景观,显示并朗读当前景观的文字介绍,并配有图片和评论。导航到景点用户可以使用导航功能导航或路径指引到此景点,关于导航功能的要求请参见地图功能部分。对景点、景观、设施进行评论用户可以对景点、景观、设施发表自己的评论。332线路模块对很多游客来说,提前规划好旅行线路至关重要。此模块可以实现线路文件下载和查看线路文件。以下是对线路模块功能的详细论述。线路文件下载应用程序启动后,在网站上订购的线路,将会自动开始下载。如果订购了多个线路,将按照顺序下载。线路下载完成后,将排列在“已下载”列表中,用户可以点击查看线路文件详情。对于下载队列中没有下载完成的文件,客户端提供断点续传功能。查看线路文件用户可以查看线路文件内包含的组成线路的所有景点详情、行程计划、行程亮点、食宿推荐、预估费用、贴心提示。333排行模块本模块共有四种排行机制,包括推荐排行、评论指数排行、最新发布排行、下载排行。对于感兴趣的景点,用户可以选择下载该景点,或者将该旅游景点加入收藏夹,以后希望下载的时候再从收藏夹中触发下载。334搜索模块用户可以搜索感兴趣的景点并下载使用。主要有两种搜索方式多种条件的复合搜索、根据景点名称或所在城市进行搜索。对于用户感兴趣的景点,用户可以选择下载该景点,或者将该旅游景点加入到收藏夹中,以后希望下载的时候再从收藏中触发下载。以下是对该模块功能的详细论述。用户可以在搜索结果列表中点击结果进行下载使用并付费。点击结果列表后,进入景点的内容索引页,列出有关景点的各项信息,包括景点的简介、景点内的景观数、设施数等。用户点击查看景点的景观、设施、游览线路、图片、及使用导航去景点功能,均将提示用户下载景点,并提示收费信息。用户选择“下载”后,进入景点下载页,开始下载景点。景点下载完成后,用户将收到一条计费通知短信。335评论模块用户可以对自己游览过的景点,设施等进行评价,包括自己的游玩感受分享给其他用户,也可以查看到其他用户的评论内容。336功能模块图本客户端软件的功能模块图如图32所示无线旅游手机客户端景点线路排行搜索评论查看景点文件查看景观详情查看设施详情景点内导游导航到景点线路文件下载查看线路文件推荐排行评论指数最新发布免费下载下载排行最近下载多种条件符合搜索用户输入搜索发表评论查看评论索图32功能模块图34客户端系统流程图本客户端软件流程图如下图33所示景点文件下载景点栏目页(默认是已下载TAB页)查看景点整体详细信息页景点栏目页(待下载TAB页)景点栏目页(好友推荐TAB页)景点栏目页(我的收藏TAB页)TAB切换TAB切换TAB切换点击列表中的项点击列表中的项查看景点基本介绍页点击列表中的项点击列表中的项下载景点弹出景点收费提示页查看导览图点击导览图查看景观信息查看设施信息点击景观点名称点击设施名称查看、发布评论点击评论信息图片列表浏览更多图片线路概览选择线路导航页面导航去景点查看、发布评论提交评论线路浏览页开始导游上一景观线路浏览页(内容为上一景观)线路浏览页(内容为下一景观)下一景观名称搜索周边搜索景点搜索结果列表搜索搜索点击列表中的项下载待下载景点完成图33软件流程图第4章数据需求分析41数据来源由于本软件是对客户端的开发,所谓客户端的开发主要工作集中在对服务器数据的请求,处理和显示。存储数据的服务器由中国移动客户提供。客户需求以文档的形式提供给客户端开发人员,文档内容是对终端与中国移动无线旅游平台之间的通讯协议进行定义和说明。42相关规定编码说明请求、应答中的汉字采用UTF8编码。发送方法所有请求均采用HTTPPOST方法。421HTTP请求格式在HTTP请求中,第一行必须是一个请求行(REQUESTLINE),用来说明请求类型、要访问的资源以及使用HTTP版本。紧接着是一个首部(HEADER)小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,在此之后可以添加任意的其他数据【称之为主体(BODY)】。并且,该需求文档提供了请求URL、请求参数、应答结果。422GET与POST区别HTTP定义了与服务器交互的不同方法,最基本的方法是GET和POST。GET与POST方法有以下区别(1)POST是被设计用来向上放东西的,而GET是被设计用来从服务器取东西的。在客户端,GET方式在通过URL提交数据,数据在URL中可以看到;而POST方式,数据放置在HEADER内提交。(2)GET方法由于受到URL长度的限制,只能传递大约1024字节;POST传输的数据量大,可以达到2M,而根据微软方面的说法,微软对用REQUESTFORM可接受的最大数据有限制,IIS4中为80KB字节,IIS4中为100KB字节。(3)安全性问题。使用GET的时候,参数会显示在地址栏,而POST不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用GET;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用POST为好。43接口实例由于在本软件开发过程中,本人主要参与搜索和评论两个功能模块的开发,以下列出实现这两个模块所需要的主要接口数据。431搜索(1)终端可以使用该接口获取符合查询条件的景点列表。(2)请求URLHTTP/IPPORT/TERMINAL/MSG/LANDSCAPELISTACTIONDO(3)请求参数,如表41所示表41搜索请求参数序号请求参数说明示例必填1CMD请求类型关键字VIEWHEARTSEARCHLISTCMDVIEWHEARTSEARCHLIST2CITYCODE指定城市CODE值,省市COCE值通过432接口获取或者附录57默认为全国CITY21013KEYWORD景点名称KEYWORD丽江4ISPARK是否有停车场,有26,没有27或者值信息通过433接口获取ISPARKIS5HOTELCO住宿消费水平,值信息通过434接HOTELCONSUMENSUME口获取516ENTERTAINMENTTYPE娱乐设施包括哪些,支持查询多个,多个以逗号分割,值信息通过433接口获取或者附录53ENTERTAINMENTTYPE10401,104027DISTANCE指定城市周边范围,通过433接口获取DISTANCE1008DIRECTION指定城市的方向数据,方向的选择项有东22|南23|西43|北44|东北45|西北46|东南47|西南48或者通过423接口获取,查询时,要用对应ID进行查询DIRECTION229INTEREST根据旅游目的爱好查询,爱好元数据值信息通过433接口获取或者参见附录54支持多个旅游目的爱好,使用”,”分割,且各旅游目的爱好之间是或的关系INTEREST301,302,30310CATEGORY根据景点分类进行搜索,值信息通过431接口获取或者参见附录56支持多个景点分类,使用”,”分割,且各景点分类之间是或的关系CATEGORY201,202,30311POS取得检索结果集的开始位置POS1012CNT取得检索结果集的件数,默认值10,最大500CNT1013PICMODE景点图标模式。0BASE64编码图片;1ID(缺省为1)PICMODE0(4)应答结果数据结构如表42所示表42搜索应答接口序号元素名称英文名称子元素数据类型长度相关解释0应答BODYBODY1|2|3OBJECT1景点信息VIEWS4|5|6|7|8|9|10OBJECT2符合条件总记录数SUMNUMBERNUMBER6符合条件总记录数3取得记录数GETNUMBERNUMBER6取得记录数4景点IDVIEW_IDSTRING30景点ID5景点名称VIEW_NAMESTRING50景点名称6景点所属城市CITY_NAMESTRING32景点所属城市7景点制作者CREATE_BYSTRING30景点制作者,昵称8景点评级GRADE_LEVELSTRING2景点评级9景点下载费用PRICESTRING6景点下载费用,单位元10景点图标VIEW_ICONSTRING景点图标ID或者BASE64码,根据请求中的PICMODE进行返回(5)应答实例在对服务器请求数据时,服务器将数据以JSON格式返回给用户,对这种数据交换格式中的符号解释如下A、以“名称/值”的形式提供B、多条记录用“”包含C、每条记录用“”包含D、记录间用“,”分割E、名称与值用“”分割F、如果多个值用“”分割以下是服务器对用户搜索请求所返回的JSON实例“SUMNUMBER“2,“GETNUMBER“2,“VIEWS“VIEW_ID“01204934“,“VIEW_NAME“棋盘山“,“CITY_NAME“沈阳”,“CREATE_BY“马力“,“GRADE_LEVEL“3“,“PRICE“2”,“VIEW_ICON“522011”,“VIEW_ID“01204935“,“VIEW_NAME“故宫“,“CITY_NAME“沈阳”,“CREATE_BY“马力“,“GRADE_LEVEL“4“,“PRICE“6”,“VIEW_ICON“3453453”432评论服务(1)该服务支持终端用户通过手机对景点发表评论及查询景点的评论信息。(2)请求URLHTTP/IPPORT/TERMINAL/MSG/COMMENTGETACTIONDO(3)请求参数如表43所示表43查看评论请求参数序号请求参数说明示例必填1CMD请求类型关键字COMMENTGETCMDCOMMENTGET2LANDSCAPEID标识所要获取评论的对象ID如果COMMTYPE字段选择NOT,该字段值填写NOTLANDSCAPEID012049343POS取得检索结果集的开始位置POS104CNT取得检索结果集的件数,默认值10,最大500CNT105COMMTYPE评论类别,如下选择V对景点评论S对景观评论F对设施评论C对城市评论INC在城市评论NOT随意评论以上不区分大小写,默认为VCOMMTYPEV(4)应答结果数据结构如表44所示表44评论应答接口序号元素名称英文名称子元素数据类型长度相关解释0应答BODYBODY1|2|4|5OBJECT1被评论对象IDVIEW_IDSTRING30被评论对象ID2评论信息COMMENTS3OBJECT3单条评论信息COMMENT6|7|8|9|10OBJECT4符合条件总记录数SUMNUMBERNUMBER6符合条件总记录数5取得记录数GETNUMBERNUMBER6取得记录数6评论IDSEQSTRING30否7评论内容COMMENT_CONTENTSTRING500不超过250个汉字。8评论时间COMMENT_TIMESTRING20格式YYYYMMDDHHMMSS9评论人COMMENT_BYSTRING30评论人的手机号码或者IP,显示形式例子“14188”或“1385425”或“小明”10评论类型COMMENT_TYPESTRING301景点2景观3设施4对城市5在城市6随意评论(5)应答实例对用户的查看评论请求,服务器做出如下应答“VIEW_ID“01204934“,“SUMNUMBER“5,“GETNUMBER“3,“COMMENTS“COMMENT_CONTENT“小鸡炖蘑菇吃起来还行,而且便宜“,“COMMENT_TIME“20090501123323“,“COMMENT_BY“马大力“,“COMMENT_CONTENT“确实不错“,“COMMENT_TIME“20090502123323“,“COMMENT_BY“小南瓜“,“COMMENT_CONTENT“山水也很值得一去,饭菜确实值得肯定哈“,“COMMENT_TIME“20090506123323“,“COMMENT_BY“大山“433提交评论(1)请求URLHTTP/IPPORT/TERMINAL/MSG/COMMENTPOSTACTIONDO(2)请求参数如表45所示表45发表评论请求参数序号请求参数说明示例必填1CMD请求类型关键字CMDCOMMENTPOST2LANDSCAPEID标识所要获取评论的对象ID,如果COMMTYPE字段选择NOT,该字段值填写NOTLANDSCAPEID012049343COMMENT评论内容,最多245个汉字COMMENT小鸡炖蘑菇吃起来还行,而且便宜4LEVEL评级别,可添项1|2|3|4|5,默认为4LEVEL15COMMTYPE评论类别,如下选择V对景点评论S对景观评论F对设施评论C对城市评论INC在城市评论NOT随意评论以上不区分大小写,默认为VCOMMTYPEV(3)应答结果应答信息概要,操作码在应答头第5章系统设计与实现当用户通过手机访问旅游信息时,即需要和服务器交互数据,HTTP协议的POST方式会将该请求的数据放在HEADER中,发给服务器,当服务器监听端口收到此请求时,会去处理该请求,并将要返回给用户的数据以JSON格式返回。客户端在收到这些数据后,需先解析这些数据,解析完成后将这些数据以基本业务类对象的形式封装起来,再通过UI界面将这些数据显示给用户。以下详细介绍本客户端软件的实现方法及过程。51数据请求511搜索以下主要是景点搜索所需的接口数据的解释,在编码时,各个参数也是按照这样的方式来命名的STARTINDEX取得检索结果集的开始位置COUNT取得检索结果集的件数,默认值10,最大500PICMODE景点图标模式。0BASE64编码图片;1ID缺省为1CITYCODE指定城市CODE值KEYWORD景点名称ISPARK是否有停车场IS有NOT无HOTELCONSUME住宿消费水平ENTERTAINMENTTYPE娱乐设施包括哪些,支持查询多个,多个以逗号分开DISTANCE指定城市周边范围DIRECTION指定城市的方向数据,方向的选择项有东22|南23|西43|北44|东北45|西北46|东南47|西南48,查询时,要用对应ID进行查询INTEREST根据旅游项目的爱好查询CATEGORY根据景点分类进行搜索,使用“,”分割,切各景点分类之间是或的关系PUBLICSTATICVOIDREQUESTSEARCHVIEWSINTSTARTINDEX,INTCOUNT,INTPICMODE,STRINGCITYCODE,STRINGKEYWORD,STRINGISPARK,STRINGHOTELCONSUME,STRINGENTERTAINMENTTYPE,STRINGDISTANCE,STRINGDIRECTION,STRINGINTEREST,STRINGCATEGORY,CALLBACKCBSTRINGURLBASEURL“LANDSCAPELISTACTIONDOCMDVIEWHEARTSEARCHLISTIFCITYCODENULLURL“IFKEYWORDNULLURL“IFISPARKNULLURL“IFHOTELCONSUMENULLURL“IFENTERTAINMENTTYPENULLURL“IFDISTANCENULLURL“IFDIRECTIONNULLURL“IFINTERESTNULLURL“IFCATEGORYNULLURL“REQUESTURL,CBREQUESTURL,CB函数的功能是执行请求,它带有两个参数。其中URL用于请求URL,CB用于回调。代码的具体实现如下PRIVATESTATICSYNCHRONIZEDVOIDREQUESTSTRINGURL,CALLBACKCBSENDREQUESTSRNEWSENDREQUESTURL,CBTHREADTHREADNEWTHREADSRCLIENTREQUESTSRSRTHREADSTART512评论获取评论列表,以下为各个参数的含义1LANDSCAPEID标识所要获取评论的对象ID如果COMMTYPE字段选择NOT,该字段值填写NOT,如LANDSCAPEID01204934(2)STARTINDEX取得检索结果集的开始位置(3)COUNT取得检索结果集的件数,默认值10(4)TYPE评论类别V对景点评论,S对景观评论,F对设施评论,C对城市评论(5)INC在城市评论,NOT随意评论(6)CB回调PUBLICSTATICVOIDREQUESTCOMMENTLISTSTRINGLANDSCAPEID,INTSTARTINDEX,INTCOUNT,STRINGTYPE,CALLBACKCBSTRINGURLBASEURL“COMMENTGETACTIONDOCMDCOMMENTGETREQUESTURL,CB发表评论参数含义介绍如下(1)LANDSCAPEID标识所要获取评论的对象ID,如果COMMTYPE字段选择NOT,该字段值填写NOT,如LANDSCAPEID0104934(2)CONTENT评论内容,最多245个汉字(3)LEVEL评级别,可添项(1|2|3|4|5),默认为4如LEVEL1(4)TYPE评论类别V对景点评论,S对景观评论,F对设施评论,C对城市评论,(5)INC在城市评论,NOT随意评论(6)CB回调PUBLICSTATICVOIDREQUESTCOMMENTPUBLISHSTRINGLANDSCAPEID,STRINGCONTENT,INTLEVEL,STRINGTYPE,CALLBACKCBSTRINGURLBASEURL“COMMENTPOSTACTIONDOCMDCOMMENTPOSTREQUESTURL,CB52数据解析521搜索搜索功能获取搜索列表,将解析结果以SEACHLIST对象存储起。PUBLICSTATICSEACHLISTGETSEARCHLISTBYTEDATASTRINGSTRTRYSTRNEWSTRINGDATA,0,DATALENGTH,“UTF8“IFSTRNULL|STRLENGTH0RETURNNULLSEACHLISTLISTNEWSEACHLISTTRYJSONOBJECTOUTERNEWJSONOBJECTSTRIFOUTERNULLLISTALLNUMOUTEROPTINT“SUMNUMBER“IFLISTALLNUM0RETURNNULLLISTGETNUMOUTERGETINT“GETNUMBER“JSONARRAYJAOUTERGETJSONARRAY“VIEWS“IFJANULLVIEWVIEWLISTVIEWSNEWVIEWJALENGTHFORINTI0IJALENGTHIVIEWNEWVIEWJSONOBJECTJBJAGETJSONOBJECTIVIEWIDJBOPTSTRING“VIEW_ID“VIEWNAMEJBOPTSTRING“VIEW_NAME“VIEWCITY_NAMEJBOPTSTRING“CITY_NAME“VIEWCREATERJBOPTSTRING“CREATE_BY“VIEWLEVELJBOPTSTRING“GRADE_LEVEL“VIEWPRICEJBOPTSTRING“PRICE“VIEWICONJBOPTSTRING“VIEW_ICON“LISTVIEWSIVIEWRETURNLISTCATCHJSONEXCEPTIONECATCHUNSUPPORTEDENCODINGEXCEPTIONERETURNNULL522评论获取用户评论列表的数据解析过程同搜索原理类似,同样是使用JSONOBJ直接接受解析出来的单子项,JSONARRAY用来解析嵌套的JSON,然后将解析完成的数据存储到COMMENT业务对象中。因此,此处代码略。53数据处理531搜索搜索结果列表SEARCHLIST类封装了当前所取得的搜索结果的记录数、符合条件的总记录数、景点列表属性信息。可以在解析完服务器返回数据后来存储这些数据。并且通过操作对象来将必要的信息显示在UI界面上。PUBLICCLASSSEACHLISTPUBLICINTGETNUMPUBLICINTALLNUMPUBLICVIEWVIEWSPUBLICSTRINGTOSTRINGSYSTEMOUTPRINTLN“ALLNUM“ALLNUM“,GETNUM“GETNUMIFVIEWSNULLFORINTI0IVIEWSLENGTHIVIEWSITOSTRINGRETURNSUPERTOSTRING532评论评论模块COMMENT类封装了评论ID、评论内容、评论时间、评论人的手机号码或者IP,显示形式例子1010XX/1385425XXXX以及评论类型。评论类型主要分为1、景点2、景观3、设施4、对城市5、在城市6、随意评论。PUBLICCLASSCOMMENTPUBLICSTRINGID“PUBLICSTRINGCONTENT“PUBLICSTRINGTIME“PUBLICSTRINGCREATER“PUBLICSTRINGTYPEPUBLICSTRINGTOSTRINGRETURNSUPERTOSTRING评论列表该对象封装了被评论对象ID、获取记录数、符合条件总记录数、评论集合等信息,用于在用户查看评论时显示符合条件的评论信息。PUBLICCLASSCOMMENTLISTPUBLICSTRINGVIEW_IDPUBLICINTGETNUMPUBLICINTALLNUMPUBLICCOMMENTCOMMENTSPUBLICSTRINGTOSTRINGIFCOMMENTSNULLFORINTI0ICOMMENTSLENGTHICOMMENTSITOSTRINGRETURNSUPERTOSTRING54UI显示对于界面的绘制采用的是这样的机制在基于J2ME的开发过程中,对于界面的管理和绘制是通过图层管理和画布来实现的,所有的绘图统一在MAINCANVAS进行管理。而对于UI的显示是通过调用REPAINT()函数实现的。该函数是有系统实现,不断的绘制。PUBLICVOIDRUNWHILEISRUNNINGTRYTHISSETFULLSCREENMODETRUEWIDTHTHISGETWIDTHHEIGHTTHISGETHEIGHTTHISREPAINTSYSTEMGCTHREADS

温馨提示

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

评论

0/150

提交评论