




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于J2ME手机网络商店的设计与实现(客户端的开发).txt遇事潇洒一点,看世糊涂一点。相亲是经销,恋爱叫直销,抛绣球招亲则为围标。没有准备请不要开始,没有能力请不要承诺。爱情这东西,没得到可能是缺憾,不表白就会有遗憾,可是如果自不量力,就只能抱憾了。 本文由conanfish9贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 基于 J2ME 手机网络商店的设计与实现(客户端的开发) 手机网络商店的设计与实现(客户端的开发) 论文作者姓名: 申请学位专业: 申请学位类别: 指导教师姓名 职称) (职称) : 论文提交日期: 基于 J2ME 平台的掌上网
2、络商店客户端的开发 平台的掌上网络商店 摘 要 根据 SUN 的定义, J2ME 是一种以广泛消费性产品为目标的高度优化的 Java 运行时环境, 它包括寻呼机、 移动电话、 可视电话、 数字机顶盒和汽车导航系统。 J2ME 具有显著的优势,它对移动设备的智能化和多样化提供了革命性的解决方 案,并因其具有“Write Once, run anywhere”的 Java 特性提高了开发效率。 随着移动通信市场竞争的逐渐加剧, 移动通信运营商将逐步把战略投资方向转移 到种类繁多的无线数据业务上面来,因此 J2ME 无线数据应用具有较为广泛的商 业前景。目前,网上购物系统具备的 24×7
3、服务模式与即时互动方式,大量吸引 了广大购物者的注意力,具有很大的市场潜力。 本论文选择的是基于 J2ME 平台来研究无线网络模式下的网络商店,论文首 先介绍了 J2ME 相关的基础技术与理论,随后研究了在线销售系统的若干关键技 术,重点是对客户端部分的结构和具体功能做了较为详细的阐述。最后,根据自 己的设计思路和方法实现了基于 J2ME 平台的掌上网络商店客户端系统的开发, 并与负责服务端开发的同学进行了验证、配合测试,达到了预期成果。 关键词 关键词:J2ME;XML;无线应用;网络商店 The Palm Platform of e-Shop Based on the J2ME Clien
4、t Development Abstract According to Suns definition, J2ME is an optimized Java functioning environment oriented in massive consumption products. And it includes: pagers, mobile phones, video phone, digital set-top boxes and car navigation systems. As a result, it provides a revolutionary solution fo
5、r mobile devices and intelligent diversification, and improves the developing efficiency for its "Write Once, run anywhere "Java properties. Meanwhile, as the competition of mobile communications market increases, mobile communications operators will gradually shift the strategic direction
6、 of the investment business to a wide variety of wireless data services to their superiors, So J2ME wireless data applications with a wider range of business will prospect. Currently, online shopping system with a 24 x 7 service, which is an immediate interactive mode, not only attracts a lot of cus
7、tomers, but also has great market potential. Based on that, this paper chooses J2ME-based network shop to study the wireless network model. At first, this paper introduces and analyzes the J2ME related basic technology and theory. And then it studies some key technologies of the online sales system.
8、 Still this paper surveys the details of the client part of the structural analysis and specific functions. Finally, according to the ideas and design method based on the J2ME platform for handheld shops network client system, and with the help of the classmate who was in charge of the server develo
9、pment, this paper achieves the expected results. Key words: Java 2 Micro Edition; XML; Wireless application; Network store 目 1 录 论文总页数:26 页 引言 1 1.1 1.2 选题背景及目的 1 手机软件现状 1 2 相关技术及开发环境介绍 2 2.1 2.2 2.3 2.4 2.5 J2ME 概况 2 J2ME 体系结构 3 联网机制 5 数据交换技术 7 开发环境 8 关于 WIRELESS TOOL KIT 2.5 9 ECLIPSE 下面的 2.5.1 2.
10、5.2 3 J2ME 环境配置 9 需求分析与设计方案 9 3.1 3.2 3.3 需求分析 9 设计方案 10 J2ME 客户端需要完成的任务 12 4 程序流程与具体实现 13 4.1 4.2 4.3 4.4 4.5 4.6 程序涉及到的若干类 13 XML 的解析 13 登陆系统实现 17 注册系统实现 18 查询系统实现 20 购买系统实现 21 5 系统开发测试中的问题 22 5.1 5.2 屏幕跳转 22 事件处理机制 23 论 24 结 参考文献 24 致 声 谢 25 明 26 1 引言 选题背景及目的 1.1 选题背景及目的 近几年,由于微处理器性能的大幅提升,加上无线通讯技
11、术的突破,手持式 移动设备开始受到大众的青睐。短短几年内,手机已经升级了几代产品,普及率 逐年攀升, 生产效率不断上升, 产品价格比个人电脑的摩尔定律有更惊人的下调, 以至手机是大多是城市居民不可缺少的一件随身设备。 继短信、 彩信等服务之后, 中国移动提供基于 Java 的百宝箱业务,应用产品遍及商务应用、信息获取、英 汉互译、游戏娱乐等多媒体领域。根据官方公布的统计数据,我国移动电话用户 已突破 3 亿。依托这样的市场,一旦无线 Java 应用大规模开展起来,将会创造 出比短信业务更为惊人的利润。Java 语言原先的开发目的与市场的需求不谋而 合,并且也已经成为手机应用程序开发的标准,国际
12、大公司如 Nokia、Motorola 及 Siemens 等所设计的手机内都加入 Java 程序的支持, 可见在不久的将来, Java 将会成为移动设备上最热门的语言。 手机中将 Java 语言引入,作为一种通用的开发标准, 并将向市场推广普及仅 仅短短几年,中文资料除台湾出版过相关书籍外,国内相关介绍资源很有限, 国内 J2ME 开发商也屈指可数,名声较响的 Digital-Red 公司也仅成立于 1999 年。本 文可算是对新技术的一些尝试,代表对无线平台应用程序推广的一些努力。 而本次研究的目的就在于: 在设计 J2ME 网络商店-客户端中, 仔细研究 J2ME, 掌握基本的 J2ME
13、 开发技术、网络编程技术,XML 解析技术等知识。 1.2 手机软件现状 Java 手机软件平台采用的基本 Java 平台是 CLDC (Connected Limited Device Configuration)和 MIDP (Mobile Information Device Profile),是 J2ME (Java 2 Micro Edition)的一部分,在中国一般称为“无线 Java”技术。此前, 有人把它叫做“K-Java”;其实,K-Java 的叫法只是 Sun 公司在开发 KVM Java 虚拟机时的项目代号, 在该技术被正式命名为 KVM 后, 就不再用 K-Java 了
14、。 KJava 即 J2ME(Java 2 Micro Edition) ,是 Sun 公司专门用于嵌入式设备的 Java 软 件。以 KJava 编程语言为手机开发应用程序,可以为手机用户提供游戏、个人信 息处理、电子地图、股票等服务程序。J2ME(Java 2 Micro Edition)是致力于消 费产品和嵌入式设备的最佳解决方案。J2ME 在设计其规格的时候,遵循着“对 于各种不同的装置而造出一个单一的开发系统是没有意义的事”这个基本原则。 于是 J2ME 先将所有的嵌入式装置大体上区分为两种:一种是运算功能有限、电 力供应也有限的嵌入式装置(比方说 PDA、 手机); 另外一种是运算
15、能力相对较佳、 并且在电力供应上相对比较充足的嵌入式装置(比方说冷气机、电冰箱)。因为这 两种区分,所以 Java 引入了一个叫做 Configuration 的概念,然后把上述运算 第 1 页 共 26 页 功 能 有 限 、 电 力 有 限 的 嵌 入 式 装 置 定 义 在 Connected Limited Device Configuration(CLDC)规格之中;而另外一种装置则规范为 Connected Device Configuration(CDC) 规 格 。 也 就 是 说 ,j2me 先 把 所 有 的 嵌 入 式 装 置 利 用 Configuration 的概念区
16、隔成两种抽象的型态。 Java 技术的开放性、 安全性和庞大的社会已有资源,以及其跨平台性, 即“编 写一次,到处运行”的特点,使 Java 技术成为智能手机软件平台的事实标准。采 用 Java 技术后,编写应用程序和提供服务的人就不必关心接受其服务的手机采 用的是什么操作系统和芯片,只要按照 Java 的要求去写程序就好了;同样,生产 手机的厂商也不必顾虑将来谁来提供增值服务。可以看出,采用 Java 技术,可以 建立完整、高效的无线数据增值服务产业链,从而为用户提供灵活、个性化、内 容方式多样的服务。 2 相关技术及开发环境介绍 相关技术及开发环境介绍 及开发环境 2.1 J2ME 概况
17、虽然 Java 已经被用到许多企业级软体上,可是其实骨子里面还是非常适合 用在嵌入式系统之中。 Java 平台演进到 Java2 后,Java 平台分别针对不同领域的需 J2SE、 J2ME 以及 JavaCard(其结构示意图见图 1)。 求被分成四个版本,亦即 J2EE、 其中 J2ME 定位在消费性电子产品的应用上。 这个版本针对资源有限的电子消费 产品的需求精简核心类库, 并提供了模块化的架构让不同类型产品能够随时增加 支持的能力。 这个版本的应用层面相当广泛,会是未来 Java 平台发展的重点项目。 J2ME 在设计其规格的时候,遵循着 “对各种不同的装置而造出一个单一的开发系 统是
18、没有意义的事”这个基本原则。 图 1 Java 平台的结构 于是 J2ME 先将所有的嵌入式装置大体上区分为两种:一种是运算功能有 限、电力供应也有限的嵌入式装置(比方说 PDA 、手机);另外一种则是运算能 力相对较佳、 在电力供应上相对比较充足的嵌入式装置 (比方说冷气机、 电冰箱、 电视机上盒 (set-top box)。因为这两种型态的嵌入式装置,所以 Java 引入了一 个叫做 Configuration 的概念,把上述运算功能有限、电力有限的嵌入式装置定 义在 Connected Limited Device Configuration(CLDC)规格之中;而另外一种装置 第 2
19、页 共 26 页 则规范为 Connected Device Configuration(CDC)规格。也就是说,J2ME 先把所有 的嵌入式装置利用 Configuration 的概念区隔成两种抽象的型态。J2ME 平台被认 为是最杰出的手机游戏平台,它为开发者、设备制造商、网络通信公司和消费者 广泛接受。它有一些非常重要的特征对所有组织都有益。因为 J2ME 应用在不同 设备上都是便携式的,他们常常可在网络上下载和执行。如果没有正确的防范, 它则为用户和无线通信公司冒着无数个安全的风险。幸运的是,Java 被设计成一 种安全的语言。所有字节码应用在执行之前都要校验;JVM 在执行过程中监督
20、 应用的安全性和存储违反问题。MIDP v2 运行时间包括一个完全特征化的、基 于域的安全管理员,它在应用的数字签名者鉴别的基础上赋予应用 API 级许可。 2.2 J2ME 体系结构 J2ME 体系结构是基于设备的系列和类别的。一个类别定义了一个特定种类 的设备:移动电话、简单寻呼机和电脑记事本都是单独的类别。对存储器和处理 能力有相近需求的若干类别的设备构成设备的一个系列。移动电话、简单寻呼机 和简单个人电脑记事本一起就是占用资源很小的设备的一个系列。 图 2 定义了在 J2ME 上下文环境中设备的系列和类别之间的关系。 图 2 设备的系列(family)和类别(category) 为了支
21、持资源受限设备系列所要求的那种灵活性和可定制部署,人们将 J2ME 体系结构设计成模块化的和可伸缩的。 J2ME 技术在一个完整的应用程序运 行时模型中定义了这种模块性和可伸缩性,在该模型(图 3 所示)中的四个软件 层都构建在设备的主机操作系统上。 Java 虚拟机层(Java Virtual Machine Layer):这一层是 Java 虚拟机的 一个实现,它是为特定设备的主机操作系统定制的,而且支持一个特定的 J2ME 配置(configuration) 。 配置层(Configuration Layer) 配置层定义了 Java 虚拟机功能的和特定 : 第 3 页 共 26 页 类
22、别设备上可用的 Java 类库的最小集。 从某种程度上说, 一个配置定义了 Java 平台功能部件和库的共同性, 开发者可以假设这些功能部件和库在属于某一特定 类别的所有设备上都是可用的。用户不太会见到这一层,但它对框架(profile) 实现者非常重要。 框架层(Pro) :框架层定义了特定系列设备上可用的应用程序编 程接口(API)的最小集。框架在一个特定的配置上面实现。应用程序是针对特 定的框架编写的,因此可以移植到支持该框架的任何设备上。一个设备可以支持 多个框架。用户和应用程序供应商看到最多的就是这一层。 MIDP 层:移动信息设备框(Mobile Information Devic
23、e Pro) ) 是一个 Java API 集合,它处理诸如用户界面、持久存储和联网这样的问题。 Java 虚拟机层(Java Virtual Machine Layer) 、配置层(Configuration Layer)和框架层(Pro)一起构成了连接限制设备配置(Connected Limited Device Configuration(CLDC)。MID 框架(MID Profile)和 CLDC 提 ) 供了一个标准的运行时环境, 这个环境允许把新的应用程序和服务动态地部署在 终端用户设备上。 图 3 J2ME 体系结构 用 MIDP API 进行 J2ME 编程:构件 CLDC
24、和 MIDP 组合起来为创建移动电话 和简单双向寻呼机上的应用程序提供了完整的环境。 MIDP 框架的核心是一个 MIDlet 应用程序。这个应用程序继承了 MIDlet 类,以允许应用程序管理软件对 MIDlet 进行控制、从应用程序描述符检索属性 以及对状态变化进行通知和请求。 所有 MIDlet 都继承 MIDlet 类 运行时环境(应用程序管理器)MIDlet 应用程序代码之间的接口。MIDlet 类提供了用于调用、暂停、重新启动和终止 MIDlet 应用程序的 API。 应用程序管理软件可以在运行时环境内管理多个 MIDlet 的活动。此外, 第 4 页 共 26 页 MIDlet
25、可以自己发起一些状态变化,并把这些变化通知给应用程序管理软件。 MIDP API 类的完整集合可以分为两个类别: 1、用于用户界面的 MIDP API:设计这些 API 是为了能以一系列屏幕显示 为基础与用户进行交互操作,每一屏幕显示把适量的数据显示给用户。命令以每 屏幕为基础提供给用户。这些 API 应用程序决定下一屏显示什么、执行什么计 算和使用网络服务的何种请求。 2、用于处理数据库的 MIDP API:这些 API 负责组织和操作设备数据库, 这个数据库由在 MIDlet 的多个调用之间跨越时保持持久的信息组成。 底层的 CLDC API 用于处理字符串、对象和整数。还提供了 Java
26、 2 API 的 一个子集,用于处理 I/O 和网络通信。 图 4 定义了 J2ME 的构件。 图 4 J2ME 的构件 2.3 联网机制 通用联网框架(图 5)在 J2ME 平台中扮演着十分重要的角色,如果没有它, 我们写的应用程序对外人来说只能说“神秘”, 而应用了通用联网框架进行联网 的程序就显得“神奇”了。这里我将对通用联网框架进行整体的分析,由于移动 信息设备的资源受限特性,所以 和 java.io 包不适合在这里使用。现 实世界中使用着各种各样的网络通信协议,这使得设计好这个框架非常不容易, 至少我是这么认为的。 然而当我们分析 GCF 的时候可以清楚地发现它有如下几个 特性:基于
27、接口设计,便于扩展、提供创建连接的工厂方法、使用标准 URL 简化 了程序员的工作。 当我们察看 CLDC1.1 的 API 的时候可以发现其中定义了 8 个接 口、一个 Connector 类和 ConnectionNotFoundException 异常。在 MIDP2.0 中进 第 5 页 共 26 页 行了扩展,提供了 HttpConnection、HttpsConnection 接口,这样使得 MIDlet 具 备 了 通 过 Http 或 者 Https 协 议 与 server 通 信 的 能 力 , 提 供 了 SocketConnection、ServerSocketConn
28、ection、UDPDatagramConnection 接口, 使得 MIDlet 能够在 TCP/IP 层通过 socket 进行通信或者使用数据报进行通信的 能力。 结合 GCF 的接口层次图来了解通用联网框架是最好的办法, 下面我们看看它 的层次结构。 最上层的接口是 Connection,其他的接口都从他那里继承。在 Connection 中只定义了一个方法 close()。在我们的现实世界中通常使用的是分组数据交换 和电路交换,所以在网络框架中有 DatagramConnection 和 StreamConnection。 由于在基于流传输中我们需要对输入流和输出流通是具有操作的能
29、力。因此 StreamConnection 扩展了 InputConnection 和 OutputConneciton, 我们经常使用 的 Conn.openInputStream(),conn.openOutputStream()方法都是在这两个重要 的接口中定义的。StreamConnectionNotifier 接口定义了连接监听器应该具备 的能力,它的方法 acceptAndOpen()方法返回一个 StreamConnection 类型的连 接,ServerSocketConnection 继承了 StreamConnectionNotifier 接口,这样如 果你做 socket
30、 server 的时候就可以通过使用这样的 URL,socket:/:port 在你 的设备上建立监听端口等待连接。SocketConnection 继承 StreamConnection 正 好可以和 ServerSocketConnection 交相辉映。UDPDatagramConnection 则是为 了分组数据交换中使用而继承了 DatagramConnection 接口。 ContentConnection 接 口 中 只 定 义 了 三 个 方 法 getEncoding(),getLength() 和 getType() , HttpConnection 就是他的子类,在 Ht
31、tpConnection 中定义了大量的操作。 图 5 通用联网框架 而 GCF 的是使用非常简单,主要集中在 Connector 的 open()方法上。我们要 做的是提供一个标准 URL 给 open 方法, 例如需要得到 HttpConnection 我们应该 第 6 页 共 26 页 写类似下面的代码: String url = “”; HttpConnection httpConn = (HttpConnection)Connector.open(url); 我在这里只列入它的基本格式:scheme:targetparms,针对不同 的网络通信方式,我要做的就是写出不同的 URL,并
32、通过强制转换得到你需要的 连接类型。 2.4 数据交换技术 本章主要介绍在 J2ME 中客户端和服务器端的数据交换技术,由于移动设备 有限的处理器能力和内存,不支持一些像 JavaRMI 或 JAX-RPC 复杂的客户端/服 务器通信机制, 而必须选择一种较为轻量级通信机制。 一般通信方式有:基于 HTTP 的通信方式、基于 SOCKET 的通信方式和基于数据包的通信方式等。 但是基于 SOCKET 或数据包方式目前不是所有的 MIDP 设备都支持, 而且可能 无法穿越防火墙,而基于 HTTP 的通信方式却不存在此类问题,大多数企业的防火 墙都对 80 端口上的向外 HTTP 请求没有限制或做
33、少量的限制,对大多数应用,以 HTTP 作为通信协议基础完全可以胜任。而且所有的 MIDP 设备都支持 HTTP 网络, 因此使用 HTTP 网络的应用程序跨平台性很好。另外,Java 网络 API 为 HTTP 通信 提供了编程接口。 HTTP 请求 移动设备 客 户端 HTTP 响应 Servlet 图 6 基于 HTTP 的 MIDP 客户端和服务器端 下面阐述基于 HTTP 的 MIDP 客户端和 Servlet 之间的基本通信方案(如图 6 所示)。 一、基于 HTTP 的 MIDP 客户端和 Servlet 之间的通信步骤为: 1.首先,MIDP 客户端将请求消息编码并将其打包成一
34、个 HTTP 请求,设置 Content_type 头 内 容 , 将 其 设 置 为 text/plain( 文 本 内 容 请 求 ) 或 application/octet-stream(二进制请求)等等,以确保网关对该请求的正确处 理。 2.然后,Servlet 接收 HTTP 请求包,并将其解码,然后 Servlet 或一些代 理(如企业 bean)执行该请求任务。 3.接着,Servlet 将响应消息编码并将其打包成一个 HTTP 响应包,同样设 置 Content_type 和 Content-Length 的头内容。text/plain 针对文本内容响应, 第 7 页 共 26
35、 页 image/png 针对 PNG 图片响应,而 application/octet-stream 用来指定二进制 响应。 4.最后,MIDP 客户端接收 HTTP 响应并将该响应解码,然后 MIDP 客户端应用 程序执行相应的任务。 本系统采用的通讯方式即为如上所述的传统的 HTTP 方式。但是这种通信方 式在移动商务系统的应用的过程中也有一些弊端,比如:在服务器端响应的过程 中,客户端异常关机或超出了网络服务范围,这样数据将丢失。 二、Servlet 之间的基本通信方案: 目前有效的数据交换格式有两种:二进制格式和 XML 格式。 XML 是一种更复杂的数据交换格式。 使用 XML 数
36、据格式存在如下的不利因素: 1.将额外的库加载到 MIDP 应用程序中,额外地要占有一定的内存,这对于 有线内存的移动设备来说可能是不可取的。 2.使用 XML 格式的数据比较大,必将增加了网络的传输负担,而对有限带宽 的无线网络来说将会产生更长的延迟。 二 进 制 格 式 是 最 简 单 的 数 据 交 换 格 式 , 它 通 过 DataInputStream 和 DataOutputStream 提供的一些方法读写数据,如 DataInputStream.readUTF 和 DataOutputStream.writeUTF 读写 UTF-8 码的字符串等。 虽然二进制格式没有自我 描述
37、的功能, 客户端和服务端的数据格式必须一致, 但是使用二进制数据对移动设 备非常有效。因为二进制数据是紧压缩的,而且二进制数据的大小比 XML 小得多, 没有复杂的描述,数据量小,这对有限资源的移动设备是特别重要的,不但可以节 省存储空间,而且可以加快数据传输速度。 当然随着以后系统处理器和存储功能的增强以及无线网络的改进,采用 XML 格式作为数据交换格式是非常可取的。 2.5 开发环境 目前流行的开发 J2ME 的工具有 JBuilder、Eclipse、WTK 等三种方式,其 中前面两者都是集成开发环境,在编程上比较方便,有智能联想等功能, WTK 相 而 对只提供了手动编译和打包,并且
38、没有 Debug 功能。但 WTK 不需要多余的配置, 对各种模拟器可以说是即插即用,而且在 WTK 下的程序目录简洁明了,方便查询。 这几种开发环境各有长短处,根据我自身的实际情况我选择了 Eclipse 3.2 做为 我的开发工具,以下罗列了本论文的主要开发环境: 1 2 3 4 操作系统: 程序语言: 开发包: Sun Micro: Microsoft Windows XP Java 2 Java(TM) 2 Standard Edition 1.5 J2ME Wireless Tool Kit 2.5 第 8 页 共 26 页 5 IDE: Eclipse 3.2 2.5.1 关于 W
39、ireless Tool Kit 2.5 WTK(Wireless Tool Kit)是 Sun 公司针对 J2ME 推出的用于手机和 Palm 等移 动设备的开发包,是除手机厂商的专用开发包外唯一的手机模拟器开发包。它通 用性高,开发出的应用程序可保证能运行在大部分设备上,而不像专用厂商具有 一定的不兼容性。虽然它没有强大的功能和完善的调试手段,但它提供运行模拟 器的最基本组件,是其他 IDE 需集成采用的必备元素。 2.5.2 eclipse 下面的 J2ME 环境配置 一、需要下载的软件包括: JDK 1.5;Eclipse 3.2;Eclipse 3.2 汉化包;EclipseMe 1
40、.6.6;WTK 2.5。 二、配置过程 1安装 JDK。 2安装 Eclise 3.2。 3安装汉化包和 EclipseMe。 4安装 WTK2.5。 5设置 EclipseME。 到此,基本上 J2ME 基本环境结束了。 3 需求分析与设计方案 3.1 需求分析 当今网络技术不断的发展,在将来的无线通信时代中,大量的网络应用程序 将被开发出来去满足无线移动通讯的要求, 而要充分的发挥无线移动通讯设备的 通信能力,J2ME 网络编程就变得尤为重要。现在以淘宝,易趣等网络支付平台的 24×7 的网络商店,技术相对较为成熟已经逐步受到人们的关注,市场潜力非常巨 大。 但是, 只有网络的
41、支持而没有用户手中的无线通信设备也是无法实现无线通 信的。 手机是最常用的无线设备, 因此通过手机进行无线数据业务服务前景广阔, 而且随着手机硬件的不断发展,其在无线移动商务方面的前途更是不可限量。移 动商务主要是指消费者借助无线网络,通过手机或 PDA 等手持设备,进行有形货 物或无形劳务的具有货币价值的交易, 或执行数据采集的工作更好地推进商务的 发展等活动。人们使用手机进行数据采集、地理信息查询、股市交易如今都已经 成为了现实,因为现有的 J2ME 技术已经做到了这一点。因此,基于 J2ME 平台来 研究无线网络模式下的网络商店是具有一定的市场潜力的。 图 7 是本论文的总体架构模型,客
42、户端(移动设备)部分根据用户需求发送 第 9 页 共 26 页 请求信息给 Web Server,转到后台进行处理,而服务器端则通过判断客户端发送 过来的信息,来安排需要做什么具体的操作,有可能需要数据库内的数据, 这时就 会启动和 DB Server(数据库服务器),而绝大多数的网络应用都是将数据信息保 存到 DB Server(数据库服务器),通过 Web Server 协调各种客户端的请求与响应, 存取数据库中的数据。 数据库服务器和 Web 服务器可能是网络中的 1 台或多台的 设备;客户端可以通过网际中的通用协议(如 http 协议)对服务器端进行访问,因 此移动设备只要能支持网络通
43、讯的协议就应该能够正确获取服务器端的资源。 servlet REQUEST RESPONSE DB Server Web Server 图 7 系统架构模型 图 7 的虚线框内的为本毕业设计的主要内容,为了规范的管理,我们设定只 有合法的用户才能登陆到系统上。因此我们设计了完整的注册和登陆系统,在注 册系统中杜绝了相同用户名多次注册的问题和注册信息不齐全就可以注册的问 题。 而在登陆系统中,用户登陆所需要的帐号和密码,保存在服务器端的数据库中, 每次登陆的时候和服务器端中数据库内的数据进行比较,只有在数据库内有相关 信息的用户才能被系统判断为合法用户。做为一个用户,登陆进入一个网络商店 的目的
44、就是购买商品,而在购买商品之前,做为用户来说需要了解到商品的详细 信息(名字、价格、产地等等) ,于是我们为用户制作了商品查询系统和商品购 买系统,让用户可以在移动设备中享受到移动购物的乐趣。 基于上述的需求分析得出:本论文就是将基于 J2ME 平台技术的网络商店应 用与无线通信设备中,设计出由 4 大功能模块(注册模块、登陆模块、查询模块、 购买模块)组成的完整客户端系统,充分发挥无限通讯设备的通信能力和网络商 店的实时交互的能力,让购物变得更加便利。 3.2 设计方案 根据图 8 的系统总体流程图进行具体的分析: 系统从欢迎界面开始进入登陆界面,在这个地方有 2 种情况发生: 1.用户登陆
45、成功则进入主菜单 这里需要进行联网,将用户输入的用户名和密码发送给服务器,服务器接受 第 10 页 共 26 页 以后将信息和数据库里面的信息进行比较,如果数据库里有用户信息确认完毕, 把信息返回给客户端,由客户端程序根据返回的信息来进行判断,成功后用户就 可以进入主菜单了,进入具体商品的查询。 欢迎界面 登陆界面 帮助界面 主菜单 错误显示界面 查询界面 购买界面 服务端对比数据资料 进行联网 进行联网 注册界面 进行数据库操作 发送购买信息 联网发送注册信息 得到相关数据 数据库操作 是否成功 是 将数据发送回 将数据发送回 成功界面 否 失败界面 查询显示界面 查询显示界面 图 8 程序
46、总体功能流程 2.用户登陆不成功进入错误显示界面 首先为了防止用户的错输入,在错误显示界面中考虑到 2 种情况一种是返回 登陆界面,而另外一种是进入注册界面。 注册界面中,注册过的帐号不能进行注册,用户输入的用户名会发送给服务 器进行判断来得出结果,如果服务器进行查询后发现数据库内有了这个用户名, 这时就返回注册失败的错误信息,客户端会显示出这些返回的错误信息,如果在 第 11 页 共 26 页 数据库内没有发现一样的帐号, 就把用户输入的帐号和密码插到服务器端的数据 库内进行保存,返回给客户端注册成功的信息,此时注册好的帐号和密码就可以 在登陆界面上进行登陆了。 登陆成功后进入商店的主菜单,
47、在主菜单上有 3 个选项分别是: 1 查询商品 用户可以根据不同的分类来选择一个大的分类方向,例如计算机类,这个就 是告诉服务器在计算机类这个相关表格里面进行数据查询操作,选择了以后屏幕 就跳转到了,关键字查询界面,这个屏幕是用户根据自己输入的关键字来确定商 品,这里需要将用户的输入的数据发送给服务器端,用的仍然是 GET 方法, 由服务 器端来进行数据处理。 如果用户输入的关键字在服务器的数据库里有相关的记录, 那么服务器将返 回商品的一些信息详细,客户端就需要将这些服务器返回的数据显示出来。 2 购买商品 用户查询完了以后对喜欢的商品会购买,根据查询商品得到的 ID 号来购买 商品,然后将
48、用户输入的商品 ID 和商品数量发送给服务器,服务器端接收以后, 先是查找出商品,然后对数据库进行相关的更新操作,最后将服务器的得到的返 回信息显示给用户看。 3 使用帮助 帮助用户快速的上手本系统,解决一些常见的问题。 3.3 J2ME 客户端需要完成的任务 本程序是 C/S 结构,而客户端需要做的就是和用户的交流,将用户的信息发 送给服务器,将服务器的信息反馈给用户, 因此一个完整的基于 j2me 的掌上网络 商店应该具备以下的功能: 1注册功能:用户的注册分为注册成功与注册失败(用户名存在) ,新用户 必须使用注册功能以后才可以进行其他操作。 2. 登陆功能:用户的登陆是将用户输入的帐号
49、和密码发送给服务器, 由服务 器来进行判断,是否在数据库呢存在,如果存在则跳转到主菜单,否则跳转到注 册系统。 3 查询功能:用户进入系统后需要了解各种各样的商品,那么就需要对分类 进行查询,查询分为 2 个部分来进行,首先用户需要确定一个大的方向也就是告 诉服务器端应该在数据库的什么地方进行查找,缩小了查找的范围,然后需要用 户输入关键字进行查询,更加准确定位商品的具体信息。 4. 购买功能:看好了商品若是用户喜欢就涉及到一个购买的过程了,用户需 要输入商品的 ID 号(通过查询得到),和购买的数量。如果购买成功会 第 12 页 共 26 页 这些都是 J2ME 网络商店需要完成的任务 4
50、程序流程与具体实现 程序流程与具体实现 4.1 程序涉及到的若干类 一个 J2ME 程序可以没有其他类,但不能没有 MIDlet 类,只要有一个完整的 主类,便是一个完整的 J2ME 程序。比如非常精典的"HelloWorld",便只有一个 MIDlet。 而本程序的主类就是 ShopMIDlet 就是一个设计为可使应用管理软件通过次 接口运行和控制的类。它主要通过 startApp,pauseApp,destroyApp,3 个抽象方 法来实现。从他们的名字上可以非常简单的看出它们分别在启动、暂停和销毁时 被调用。在主类的基础上,陆续设计出了各个功能类。 表 1 列举了一
51、下本程序的各个类以及对各个类的功能进行简单的说明 表 1 程序各功能类说明 ShopMIDlet MainMenu Denglu DengluThread Cuowu DHScreen Fenlei Goumai Help MIDPConnector OkScreen ResultScreen UpDataUserData Screen UpDataUserData Thread 和服务器连接的一个线程,用于与服务器中的信息进行验证 程序的主类 程序的欢迎界面 可以选择进入登陆界面或者退出 程序的登陆界面 判断用户是否合法 具体实现和服务器相连接代码部分的一个线程 显示登陆时用户的输入不完整的
52、信息 用户输入关键字和服务器连接在数据库中进行查找 用户可以根据跳出菜单,进行选择。例如书籍,时装等等。 购买界面,需要用户输入商品的 ID 号和数量。 为了让用户可以快速上手,做的一个帮助界面 把和服务器连接的代码 封装成一个类,以后直接调用 显示商品购买成功的情况 显示查询的结果,包括商品的详细信息 用户注册类,需要用户输入用户名和密码 4.2 XML 的解析 目前,XML 已经广泛应用于数据交换领域,XML 是基于纯文本的,具有优秀的 跨平台特性。本节将讲述如何在 J2ME 中解析 XML 进行数据传输。 XML 写法比较简单,而且非常便于人来阅读。但是必须在客户端和服务器端 有 XML
53、 的解析器才可以正常通信,由于初期的移动信息设备内存和处理器上的不 足,所以在 MIDP1.0 中并没有提供对 XML 的支持。随着内存和处理器的提高,对 第 13 页 共 26 页 XML 的支持成为了可能。在 JSR182 中提供了 XML 的解析器,但是这并不是标准 MIDP 中的 API 需要特定的实现才可以支持。 幸运的是有第三方的 API 对解析 xml 提供了支持,比较有名的是 kxml 和 nanoxml。我们选用的是 KXML。 使用 XML 之前,你必须考虑好是不是必须用它来传输数据,因为解析 xml 是 比较耗费资源的,尤其是在 CPU 和内存的资源都很宝贵的条件下。如果
54、我们能使 用 DataInputStream 和 DataOutputStream 传输的话就尽量不要使用 XML。 的 XML 解析器有两种,一种是确认性的,他在解析之前会对 xml 的文档进行有效性的验 证,确保这是应用程序需要的。另一种则是非确认性的,他不做验证工作直接进 行解析,无疑这样的速度会快。kxml 和 nanoxml 都是这样的解析器。它们也存在 差别,kxml 是增量解析器他会一点一点的解析,这样在解析大的文档的时候会效 率比较高。nanoxml 是一步解析器,一次就把文档解析完,如果文档很大的话, 这无疑会耗费很大的内存。 要使用 kxml,你必须首先得到一个 XmlPa
55、rser 实例,它用 Reader 作为构造 器的参数: try Reader r = ; XmlParser parser = new XmlParser( r ); catch( java.io.IOException e ) / handle exception 如果你的 XML 文档存储在 String 内的话你可以使用 ByteArrayInputStream 和 InputStreamReader: String xml = "some xml" ByteArrayInputStream bin =new ByteArrayInputStream( xml.ge
56、tBytes() ); XmlParser parser = new XmlParser( new InputStreamReader( bin ) ); 当从网上接收数据的时候可以这样: HttpConnection conn = ; InputStreamReader doc = new InputStreamReader( conn.openInputStream(); XmlParser parser = new XmlParser( doc ); 得到 parser 实例后我们就可以调用 read 方法进行解析了,read 方法会返回 一个 ParseEvent,通过判断他的类型我们
57、就可以解析 xml 了. 第 14 页 共 26 页 try boolean keepParsing = true; while( keepParsing ) ParseEvent event = parser.read(); switch( event.getType() ) case Xml.START_TAG: / handle start of an XML tag break; case Xml.END_TAG: / handle end of an XML tag break; case Xml.TEXT: / handle text within a tag break; cas
58、e Xml.WHITESPACE: / handle whitespace break; case Xml.COMMENT: / handle comment break; case Xml.PROCESSING_INSTRUCTION: / handle XML PI break; case Xml.DOCTYPE: / handle XML doctype break; case Xml.END_DOCUMENT: / end of document; keepParsing = false; break; catch( java.io.IOException e ); 这样我们就可以解析一个 XML 文档了, 而就本程序来说我们需要做的首先是 将 XML 文档发送给服务器, 在服务器端接收以后需要通过解析器将 XML 文档解析 出来,以下给出发送 XML 文档的代码: Ht
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年国际金融理财师考试身心准备试题及答案
- 畜牧师职称考试全新理念试题及答案
- 2024畜牧师职称备考模式试题及答案
- 2025年国际金融理财师考试考官对于考生能力的考察要素试题及答案
- 2025年银行从业资格证核心考点解析试题及答案
- 遇到难题如何应对特许金融分析师考试试题及答案
- 2024小语种语法重点复习试题及答案
- 新兴市场投资的机会与挑战试题及答案
- 2025年国际金融理财师考试的网络资源有效搜索方法试题及答案
- 学习心得2025国际金融理财师试题及答案
- 学习解读《关于进一步强化食品安全全链条监管的意见》课件(2025年3月)
- 支气管哮喘防治指南(2024年版)解读
- 北京海淀区2023-2024学年八年级下学期期中考试物理试题(解析版)
- 居室空间设计 课件 项目八厨房空间设计
- 腹胀中医护理方案
- 小学生常用礼貌用语课件
- 2025年济源职业技术学院单招职业技能测试题库汇编
- 航空发动机控制知到智慧树章节测试课后答案2024年秋中国民航大学
- 广东省2025年高三高考模拟地理试卷试题(含答案详解)
- 湿法厌氧消化副产物资源化-深度研究
- 2025年中国华电集团公司招聘笔试参考题库含答案解析
评论
0/150
提交评论