基于jme平台的掌上网络商店-服务器端的开发—计算机毕业设计(论文)内容摘要:

T P J 2 M E 客 户 端S E R V L E TW E B 容 器 J 2 E E 应 用服 务 器数据库企 业 信息 系 统层 数 据 库 服务 器S Q L 语 句 结 果 集 图 1总体框架图 在支持 J2ME技术的 PDA,手机等移动设备终端, 可以利用它们支持的各种简档设计客户端程序,实现与用户的交互,同时,通过 HTTP、 HTTPS或 XML等标准的网络协议与 J2EE应用服务器实现数据传递。 Web层和企业信息系统层用于第 5 页 共 24 页 构建我的服务器端应用,其中 Web层用于实现与客户层的接口和交互,它使用Servlet程序处理客户端发 出的连接和请求,并通过 JDBC连接到企业信息系统层的数据库系统上。 数据库系统处理 SQL语句,会将处理结果以一个结果集的形式发送到业务逻辑层,业务逻辑层将接收到的信息提交给 Web层的 Servlet程序,Servlet程序再通过 HTTP、 HTTPS或 XML将响应信息返回到客户端。 系统设计关键技术 网络的连接 由于无线设备所能支持的网络协议非常有限,仅限于 HTTP, Socket, UDP等几种协议,不同的厂家可能还支持其他网络协议,但是, 规范规定,HTTP 是必须实现的协议,而其他协议的实现都是可选的。 因此,为了能在不同类型的手机上移植,我们采用 HTTP 作为网络连接的首选协议,这样还能重用服务器端的代码。 但是,由于 HTTP 是一个基于文本的效率较低的协议,因此,必须仔细考虑手机和服务器端的通信内容,尽可能地提高效率。 在登陆和注册的时候传输的数据量较少 ,选用 GET 方法在基于效率 上 考虑比较合适的。 在服务端对应的采用 DOGET 方法。 而对于在浏览和购买的时候传输的数据量大一些, POST 方法是不得不选用的,虽然其效率上比较低,但是它可以传输比较大的数据量, GET 方法传输给服务端的数据量是有限制的。 对应的服务端为 DOPOST 方法。 数据存 储 方式和数据的交换 由于有大量的数据,采用简单的文件系统显然不合适,采用数据库管理系统对于 设计来说是比较简单的 ,在系统设计中要存储用户的基本信息和商品的基本信息,这就需要用两张表来存储其中的数据。 设计表的时候要设置主键以加强数据的完整性。 而对于数据的交换格式,本系统则采用 XML 数据 格式 ,在定义 XML 数据格式,只要是 wellformed,而不需要定义其 DTD,以及显示样式表。 无论建立还是解析 XML,对于 JAVA 语言来说 JDOM 是必需的。 JDOM是在 Apache 许可证 下发布的开放源码 ,是 JAVA 语言中 XML 和 DOM 交互的API。 在设计实现中将用 JDOM 建立一个标准的 wellformed 的 XML 文档,也将用 JDOM 解析一个 XML 文档。 业务数据流分析 联网的流程 联网的时候按照如下的流程: 建立连接。 设置输出的文档 MIME 类型, 设置为 text/plain。 设置数据编码方式,打开输出流。 第 6 页 共 24 页 从 URL 字符串获取参数,判断参数是否合法,如果 OK 则开始接受数据并进行相应的处理。 经过处理的结果传输数据给客户端。 关闭连接和流。 访问数据库的流程 装入 JDBC 程序。 要使用 JDBC 访问数据库 ,首先必须加载 JDBC 驱动程序 , 只需一句代码()。 建立连接。 建立连接 的标准 方法是 (String url,String user,String password)。 执行 SQL 语句。 检索结果。 关闭连接。 在对象使用完毕后 ,应当关闭连接。 输入 XML数据解析 流程 由客户端发送过来的数据是 XML 的格式,首先 服务端要解析这些 XML 格式的数据得到所需要的信息。 而解析 XML 需要用的 JDOM。 JDOM 自身不包含解析器。 它通常使用 SAX2 解析器来解析和验证输入 XML 文档。 它包含一些转换器以将 JDOM 表示输出成 SAX2 事件流、 DOM 模型或 XML 文本文档。 解析的流程如下: 使用 JDOM 首先要指定使用什么解析器。 得到 Document。 得到根元素。 得到元素(节点)的集合。 轮循 List 集合。 取得元素的子元素(为最低层元素)的值。 DOM 结果处理 (输出 /保存 )。 输出 XML 文档建立 流程 向客户 端发送 XML 格式数据,首先要建立 XML 格式的文档数据。 这也将用到 JDOM。 在 JDOM 中, XML 元素就是 Element 的实例, XML 属性就是Attribute 的实例, XML 文档本身就是 Document 的实例。 因为 JDOM 对象就是像 Document、 Element 和 Attribute 这些类的直接实例,因此创建一个新 JDOM对象就如在 Java 语言中使用 new 操作符一样容易。 JDOM的使用是直截了当的。 建立 XML 文档的流程如下: 第 7 页 共 24 页 首先建立根元素。 然后用 root 创建 XML 文档对象。 创建元素,设置内容, 属性。 结果处理 (输出 /保存 )。 和客户端交互接口的约定 关于 URL 服务端和数据端的网络通讯采用 HTTP 协议。 购买 模块的 URL 地址为: 登陆 模块的 URL 地址为: 注册 模块的 URL 地址为: 浏览物品 模块的 URL 地址为: URL 参数 约定 规则 在注册模块和登陆模块中用户的帐号约定为 id;用户的密码约定为 pw。 在查询的模块中首先以书名为查询参数,参数约定为 name; 在登陆中如果登陆成功则返回给客户端 yes 返回失败返回 no。 接收和发送的 XML 文档格式的约定 在查询的模块中 往客户端 发送的 XML 格式的约定为 name元素的文本内容物品的名字, id元素文本内容为物品的 ID, press元素内容为产地, price元素内容为价格, description1元素内容为物品描述信息, quantity元素内容为数量。 如果根节点不为 wrong则表示查询失败 errorinfofmation返回的是失败信息。 查询成功 XML 式样如下: ?xml version = 39。 39。 encoding = 39。 UTF839。 ? courses namename/name idid/id pressauthor/press priceprice/price description1description/description quantityquantity/quantity /courses 查询失败 XML 式样如下: ?xml version = 39。 39。 encoding = 39。 UTF839。 ? wrong errorinformationthere is something wrong here/errorinformation 第 8 页 共 24 页 /wrong 在购买模块中 要 购买物品的 需要物品的 ID。 ID 约定为 元素 id的内容 ,购买数量约定为 quantity元素的内容。 接收的 XML 文档为: ?xml version = 39。 39。 encoding = 39。 UTF839。 ? courses idid/id quantityquantity/quantity /courses 数据库的分析与设计 注册用户基本信息表 user 表 user 包含 4 个字段,分别是 account, password, username, tele, 其中account 设置为主键 ,如表 1。 表 1 用户基本信息表 列名 数据属性 长度 是否为 NUL 是否主键 account char 8 否 是 password char 8 否 否 username char 8 是 否 tele char 8 是 否 商 品信息表 商 品信息表是物品 基本信息 的简单介绍,它 其中 包括 7 个字段,分别是name, id, press, descrption1, price, author, quantity 其中设置 id 为主键,如表 2。 表 2 商品信息表 列名 数据属性 长度 是否能为 NULL 是否主键 name char 8 能 否 id char 8 否 是 press varchar 1024 能 否 author varchar 1024 能 否 decrpiton1 text 8000 能 否 price money 4 能 否 quantity int 2 能 否 4 具体的设计流程和实现系统构架 系统主要工作流程 在客户端进入启动画面的时候, 对于 有账号用户 来说 可以首先选择是否登第 9 页 共 24 页 陆。 如果不想登陆也可以退出系统。 若用户没账号首先要申请帐号,如果不想申请帐号则 也 直接退出系统。 假设用户申请成功,则进入登陆流程,如果登陆成功。 用户就可以浏览物品,如果不想购买物品,也可以直接推出系统。 如果购买物品,若成功可以选择退出,或则继续浏览物品。 流程图如图 2。 开 始结 束有 没 有 帐 号登 录登 录 是 否 成 功查 询购 买是是注 册否注 册 是 否 成 功是否否退 出退 出 图 2 系统流程图 系统功能模块设计 数据库联网模块的设计 装入 JDBC 程序 : 要使用 JDBC 访问数据库 ,首先必须加载 JDBC 驱动程序 , 只需一句代码()。 建立连接 : 第 10 页 共 24 页 建立连接 的标准 方法是 (String url,String user,String,password).DriverManager 类用于处理驱动程序的调如并且对新的数据库连接提供支持 ,它位于 JDBC 的管理层 , 通过该类 , 能够连接到 URL 表示的数据库的驱动程序为了存取数据 ,还需要提供用户名和口令 程序的核心代码: public Connection getConnection() { try { ()。 con=(getConnectionUrl(),userName,password)。 if(con!=null) (Connection Successful!)。 } catch(Exception e) { ()。 (ErrorTracein getConnection(): ))。 } return con。 } 注册模块的设计 客户第一次使用系统的时候必须先进行注册。 在服务端的要的注册模块要完成的工作便是接受客户的注册资料然后与自己的数据库的已有客户资料进行比对,看看有没有账号和用户所的账号是否重复,如果重复在要返回提示信息就用户账号已经存在。 如果没有在把要把用户注册的资料插入的用户信息表,而后返回注册成功信息以及用户注册的名字和密码。 图 3 和图 4 显示了失败和成功的信息。 下面是程序要引用的包: import .*。 import .*。 import .*。 import .*。 import .*。 第 11 页 共 24 页 import .*。 import my.*。 import。 import。 import。 import。 使用 doGet() 方法来对应客户端的请求。 然后设置发送的文本样式(text/plain。 charset = UTF8)。 用 ()提取客户段发送的参数。 查询数据库的设计如下: /* *在数据库进行查询看看是否用户名已经存在,存在返回 true,否则返回false。 **/ private boolean DBConnection(String account) { Connection conn = null。 ResultSet rs = null。 Statement stmt = null。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。