文档库 最新最全的文档下载
当前位置:文档库 › 基于Java技术的网上交易系统的开发(无代码)

基于Java技术的网上交易系统的开发(无代码)

学号: 1028322013

基于Java 技术的网上交易系统的开发

学院名称: 软件学院

专业名称: 软件技术

年级班别: 10级软件技术

姓 名 : 刘 洋

指导教师: 周 运

2012年4月

河南师范大学

专科毕业论文

基于Java技术的网上交易系统的开发

摘要随着信息高速公路的建立,Internt的普及,网络技术的迅猛发展,人类社会已经进入了一个信息化社会。

电子商务利用简单、快捷、低成本的电子通讯方式,买卖双方通过网络进行各种商贸活动的一种商业交易模式。随着互联网的发展,以及人们消费观念和生活方式的改变,这种新型的商业模式逐渐融入了人们的生活中。通过企业的门户网站,人们可以足不出户的寻找自己所需要的物品。通过对不同虚拟商城的访问,“顾客”可以找出性价比最高的商品,自己有极大的选择空间;通过下订单,你可以很快得到自己想要的物品,这给顾客节省很多时间和精力;对于厂家来说,可以极大地降低库存风险,可根据客户需要,按需采购和生产,大大地提高了效益。

本毕业设计的内容是设计并且实现一个基于web技术的在线交易系统。系统主要以j2EE作为开发基础,使用了struts+spring+hibernate等多种协议或技术,用eclipse作为开发工具,以Macromedia公司的Dreamweaver作为界面美化工具。基本实现了网上交易系统应有的主要功能模块,包括:管理员的登录,管理和维护;用户注册、登录、注销,个人信息的查询、修改;商品管理,购物车管理,订单管理。该系统界面简单、操作方便,容易维护。

关键词:电子商务j2EE struts + spring +hibernate

Development of an Online Trading System Based on Java Technology Abstract With the establishment of high way of information,the popularization of Internet and the rapid development of network technology,human society has entered society of information.

E-commerce is a new business transaction, through which both buyers and sellers can use a simple, fast and low-cost means of electronic and communication. With the development of the Internet, and people's consumption idea and the way of life changing, this new business model has gradually integrated into people's lives. Through the portal site of enterprise, people can look up the goods which they required without going out; through the different virtual mall visit,

people can find the most cost-effective products, and they have much self-choice; through orders, people can find the things which they need, and quickly get the products which they ordered. This new business modle can save a lot of time and energy for custormers, and greatly reduce inventory risk of manufaturers. The manufactures can procure and produce according to customer needs, this was called on-demand procurement and production, which greatly improved the efficiency.

The subject of this graduation project is designing a web-based online trading system. This system mainly uses j2EE as the basis of development, and also use the struts + spring + hibernate technologies and other orders. This project use eclipse as the development tools, and Macromedia's Dreamweaver as the interfaces landscaping tools. The basic functions of an online trading system have been implemented, which include administrator login, management and maintenance; user registration, login, write-offs personal information enquiries and amendments; commodity management, cart management, order management. Interface of the system is simple, it can be used and maintained easily.

Keyword: E-commerce j2EE struts + spring +hibernate

前言

随着当今世界进入信息时代,Internet的飞速发展和在全球的普及给人类生活带来革命性的改变。Internet将传统意义上的物理空间转变成电子空间,把人们带入了一个网络社会中。网络时代的到来,带给人们的不只是快捷、方便,它带来的是划时代的进步。在网络大家族中,电子商务则是一个热点,它的发展速度之快远远超过我们的想象,普及速度之快令人难以置信。我们完全有理由相信,全球性的电子商务热潮必将一浪高于一浪[1]。电子商务一个最基本体现就是电子购物网站,从一定程度上讲它就是网上超市,也就是一种网上交易。“网”字意味着它具有信息时代的快捷方便等特征。事实上电子商务的出现,给消费者的地位,消费观念带来了重要的变化。网上交易系统正是应这种变化而悄然崛起,并以惊人的速度发展着。通过网上交易系统,人们可以足不出户的寻找自己所需的物品,通过对不同虚拟商城的访问,“顾客”可以找出性价比最高的商品,自己有极大地选择空间,通过下订单,你可以很快得到自己想要的物品,这给顾客节省很多时间和精力,对于厂家来说,可以极大的降低库存风险,根据客户需要,按需生产和采购,大大的提高了效益。

1.系统需求分析和总体设计

1.1 系统功能需求

在本系统中主要阐述用户管理、购物车管理、订单管理、产品展示四个模块。

(1)购物车管理:实现添加商品、取消一个商品、数量修改、清空购物车功能。

(2)订单管理:实现提交订单、删除订单、查询订单功能。

(3)产品展示:实现产品列表、产品明细功能。

(4)用户管理:实现用户注册、用户信息修改、用户删除、用户查询功能。

1.2 系统角色及其功能分析

系统的3个角色:

(1)注册用户

(2)管理员

(3)普通的网站浏览者(即游客)

系统角色的功能

(1)普通用户

网站的普通浏览者(即游客)只能浏览商品。

(2)注册用户

普通浏览者只要注册为网站用户后,获得自己的帐号,设置自己的密码就具有以下功能:登录,登出,向购物车中添加商品,生成并提交订单。添加或修改个人明细资料。

(3)管理员

拥有注册用户的所有功能,还可以对用户进行管理,包括添加新用户、修改用户密码、删除用户。

1.3 总体设计思想概述

本系统是基于B/S架构下的多层结构应用系统。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier 结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)[15]。

在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。推荐的分层式结构一般分为三层,从下至上分别为:数据访问(持久)层、业务逻辑层(或称为领域层)、表示层[16],如图3-2:

总的来说,采用分层结构的设计思想,可以让每个层由一组相关的类或组件构成,共同完成特定的功能。层与层之间存在自上而下的依赖关系,上层组件会依赖下层组件的API,而下层组件则不依赖于上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。并且每个层对对上层公开API,但具体的实现细节对外透明。当某一层发生变化,只要API不变,不会影响其他层的实现。

在本系统中,使用开源的mysql数据库,持久层用到spring所集成的Hibernate技术,业务逻辑层用普通javabean实现,表述层运用基于struts的MVC设计模式(struts用来做C层,spring实现V层与C层的解耦以及C层与M层的解耦)。

1.4 数据库设计

数据表的设计

下面列出了设计过程中所用到的数据库表及其结构:

1.orders表用来保存客户的订单信息,如表:

列名类型长度描述

orderid int 11 订单ID

totalprice NUMBER 16 总价钱

orderstate NUMBER 1 订单状态

payinfo DATE 付款方式

Createtime DATE 创建日期

userid VARCHAR2 20 用户ID

User_item_id NUMBER 8 用户明细ID

2.orderline表用来保存客户订单中的订单项信息,如表:

列名类型长度描述

User_item_id NUMBER 16 订单条目ID

Productid NUMBER 16 商品对象ID

Orderid VARCHAR2 20 订单对象ID

quality NUMBER 8 数量

num NUMBER 8 商品数量

3.orderstatus表用来保存订单状态,如表:

列名类型长度描述

statusid int 11 状态ID

name varchar 30 状态名description varchar 100 描述

https://www.wendangku.net/doc/4f3821779.html,ers表用来保存用户个人信息,如表:

列名类型长度描述

User_id int 11 用户ID password varchar 15 用户密码5.contactinfo表用来保存用户个人明细,如表:列名类型长度描述

Contact_id int 11

User_id varchar 30 用户ID

Street1 varchar 64 住址1

Street2 varchar 64 住址2

city varchar 32 城市

province varchar 32 省份

County varchar 32 国家

zip varchar 20 邮编officephone varchar 50 办公室电话cellphone varchar 20 手机

email varchar 20 电邮homephone varchar 12 家庭电话6.product表用来保存商品,如表:

列名类型长度描述

productid int 11 产品

modle varchar 30 产品型号

name varchar 15 品牌名company varchar 20 出品公司

weight double 50 产品重量

price double 20 价格

state varchar 20 产品状态createtime date 出厂日期Categoryid Int 10 产品类型description varchar 1000 产品描述7.category表用来保存商品类型,如表:

列名类型长度描述categoryid int 11 类型ID name varchar 30 类型名

description varchar 100 描述

8.payway表用来保存权限信息,如表:

列名类型长度描述

paywayid int 11 ID

payStyle varchar 30 名

1.5 系统的类设计

DAO类,DAO 进行数据库操作。

POJO类,这些实体类将通过hibernate映射到数据库中

过滤器类,编码过滤器类,通过他可保证页面不出现乱码问题。

登陆安全过滤器类,通过它来达到控制访问权限的功能。

监听器类设计,“CartSessionListener”启动时把购物车信息初始化到内存中,提高系统性能。“ProductContextListener”启动时把商品信息初始化到内存中,提高系统性能。1.6系统的用例

总体用例分析

总体用例:用户管理、购物车管理、订单管理、产品展示四个模块构成了本网上交易系统。User是指系统用户,包括注册用户和匿名用户两种,匿名用户只可以浏览商品,匿名用户通过用户管理模块注册后就可以使用购物车和下订单。

用户管理用例分析

用户管理模块主要包括:用户登陆、用户注册、用户信息修改、用户删除、用户信息查询五个功能组成。

购物车管理用例分析

购物车管理模块主要包括:添加商品、取消一个商品、数量修改、清空购物车四个功能组成。

订单管理用例分析

订单管理模块主要包括:订单提交、删除订单、订单明细三个功能组成。

产品展示用例分析

产品展示用例,商品展示模块主要包括:产品列表、产品明细两个功能组成。

2.系统的详细设计

2.1数据库与POJO映射的实现

Hibernate可以通过一个XML的mapping文件把一个POJO(Plain old java object)和数据库中的表对应起来,在这个XML文件(一般命名为*.hbm.xml)中,我们可以配置好Object 和数据库中表的映射关系,然后把这个mapping加入到hibernate.cfg.xml中,这样Hibernate在启动时就可以加载这些mapping,并可以根据配置文件对对象实现自动的加载,并且可以对这些Object实习自动的维护。

由于Spring提供了对Hibernate的集成,所以我们可以不配置hibernate.cfg.xml文件,而通过在applicationContext.xml文件中进行相关配置来达到同样的目的。

1、user.hbm.xml文件配置了user类的相关信息。

2、mappingResources属性中囊括了所有我们需要的mapping文件。

2.2 主要模块的设计说明

用户管理模块

用户管理模块主要包括用户注册,登录,退出3个部分.

(1)用户注册

当用户第一次登录时首先要注册,成为会员后,才可以购买物品.用户可以通过单击首页的注册按键来打开注册页面进行会员注册操作.

如果用户的注册信息不符合要求,系统会提示用户

当用户确认所提按信息无误后,单击“注册“按钮,跳转至注册页面,

在注册成功后,会跳转到注册成功界面

(2)用户登录

网站首页在用户第一次访问时会判断用户是否登录,未登录则显示用户登录窗口,提示用户登录或注册.对于已经登录的用户,在用户登录窗口将显示用户的相关信息.

首页主要是根据保存用户名信息的Session参数来判断用户是否已经登录的,

在会员登录窗口中单击登录按纽后,系统将对用户名和密码进行验证,判断用户是否是已注册用户,如果已注册,则更新用户在网站中的状态,如果没有注册,则拒绝用户的登录操作。

(3)用户退出

当用户决定退出网站时,只要点击当前页面上的“退出”按钮,就会回到首页。

(4)管理员登录

系统设置了一个默认的管理员admin,只要通过此用户名登录就可进入管理员界面,

2.3购物车管理模块

购物车管理模块主要功能有如下几个部分:

(1)创建购物车

当客户登录后,系统会给客户创建一个购物车放入服务器的Session会话中。使客户在整个会话中都拥有一个相同的购物车。这里主要运用了Http协议中的会话机制,将购物车保存在客户的会话中,这样在整个客户游览不同页面商品的过程中,都会使用同一个购物车对象。

具体执行步骤:

(1)从客户的请求对象中获取Session会话对象

(2)从会话对象中获取购物车对象

(3)判断是购物车对象是不是空的,如果是空就创建一个

(2)向购物车中添加一个商品项

客户在查看网页上的一个商品时,当向服务器发送一个“添加到购物车”的请求时,会执行这个功能。

功能执行过程:

(1)从客户请求对象中获取商品的ID

(2)调用业务层的方法根据商品ID去数据查询商品的信息,返回商品对象

(3)从商品对象中获取商品名,商品价格,来构建一个商品项对象

(4)从Session会话中获取购物车对象

(5)调用业务层的方法来根据购物车对象和商品项对象来执行添加操作

(6)将些商品项对象放入到购物车中

(3)修改购物车中一个商品项

在客户查看购物车时,想修改自己的购买商品时,会执行这个功能。由于商品的名称和价格都是系统管理人员设置的,所以客户都不可以修改,客户只能修改他/她所购买商品的数量。修改所选购的商品数量时,相应的商品项的小计和购物车的总计都会保持实时的更新。

功能的执行步骤:

(1)将ActionForm转换为ItemForm对象

(2)从ItemForm对象中获取商品ID

(3)从Session会话中获取购物车对象

(4)根据商品ID去调用业务层的方法去修改商品项

(5)修改小计

(6)将些商品项对象放入到购物车中

(4)查看购物车

客户选取了所有的商品后,来向服务器发送“购物车”请求时,会执行此功能,系统根据会话中的购物车中的商品项,来获取客户所选选商品的一个集合,在JSP页面上对这个集合中的商品项进行显示。

功能的执行步骤:

(1)从客户的请求对象中获取购物车对象

(2)从购物车对象中获取所有的商品项

(3)将所有的商品项对象加载到请求对象中发送给客户端

(5)删除购物车中的一个商品项

客户在查看购物车时,当向服务器发送一个“删除商品项”的请求时,会执行这个功能。删除商品项时,系统会自动更新购物车的总计值:

功能执行过程:

1从客户请求对象中获取商品的ID

2调用业务层的方法根据商品ID去数据查询商品的信息,返回商品对象

3从Session会话中获取购物车对象

4调用业务层的方法根据商品ID去删除购物车对象中的商品项

5将购物车重新加入到Session会话中,来更新Session会话中的购物车对象

部分代码实现:

(6)清空购物车

客户在查看购物时不要想要所有所选的商品时,向服务器发送“清空购物车”请求时会执行此功能。

执行此功能的步骤:

(1)从请求对象中获取Session会话

(2)从Session会话中获取购物车对象

(3)将购物车对象传给业务层的方法去清空购物车中的所有商品项

2.4 定单模块

生成订单是网上购物商城的最终目的,前面的所有的功能的实现都是为最后生成一个用户满意的订单做基础,在此要生成一个可以供用户随时查询订单号,还要保存用户订单中所购买的商品信息。当用户确认对购物车不再改变后,就可以到收银台结帐并生成订单。结帐的流程是:从购物车中读取商品名称,商品数量,商品价格信息,生成唯一的一个订单号,同时也把用户注册的基本信息读取出来,形成一个完整的订单写入数据库中。

1、创建一个订单

客户选好了所有的商品时,并确认要买时,会向服务器发送一个“生成定单”的请求;此时用户可以添加收货人的地址,点击用户信息“修改”,会弹出一个页面,在此修改收货人地址等信息;

用户确认无误后点击“提交订单“,会出现订单列表:

2.查看定单

客户确认了所有的订单选项后,可以向服务器发送“查看定单明细”的请求:当用户点击了“明细”按钮后,可查看菜单明细:

3. 系统的测试

测试是软件开发必不可少的环节,每个开发者都应该养成良好的测试习惯,一个系统的完善就是通过不断地测试与维护来完成的。

测试的意义有以下几点[18]:

(1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;

(2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性;

(3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。

测试一般有两种方法:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;如果知道产品内部工作过程,可以通过测试来检验产品的内部动作是否按照说明书的规定正常运行。前一个方法称为黑盒测试,后一个称为白盒测试。

对于本系统,我采取第一个方法,即黑盒测试。做完一个模块,就进行测试,看所做的模块能不能实现所需要的功能。经过了先期的模块测试和后期的综合测试,本系统达到了预期的要求。

参考文献

[1] 景玉建.电子商务的发展与前景[J].《职业时空》,2005年第13期,P10-11

[2] 张孝祥.深入Java Web开发内幕——核心基础[M].北京:电子工业出版社.北京.2006.10

[3]什么是JSP,https://www.wendangku.net/doc/4f3821779.html,/resource/R01/Internet_1012.htm

[4] 百度百科JavaBeans,https://www.wendangku.net/doc/4f3821779.html,/view/1006495.htm

[5] 百度百科J2EE,https://www.wendangku.net/doc/4f3821779.html,/view/1507.htm

[6] struts简介,https://www.wendangku.net/doc/4f3821779.html,/view/25603.htm

[7] 张桂元,贾燕枫. Struts开发入门与项目实践:软件工程师Java技术[M].北京:人民邮电出版社.2005.08

[8] 百度百科spring, https://www.wendangku.net/doc/4f3821779.html,/view/23023.htm

[9] 林信良.Spring2.0技术手册[M]. 北京:电子工业出版社.2007.04

[10] 百度百科 hibernate, https://www.wendangku.net/doc/4f3821779.html,/view/7291.htm

[11] 百度百科 mysql, https://www.wendangku.net/doc/4f3821779.html,/view/24816.htm

[12] 黄杰湘制作,《mysql中文参考手册》,网络电子书,https://www.wendangku.net/doc/4f3821779.html,

[13] Tomcat简介, https://www.wendangku.net/doc/4f3821779.html,/n/4836985010002yg

[14] Jason Brittain & Ian F.Darwin Tomcat:The Definitive Guide O’Reilly Media,Inc. 2003,P11-39

[15] 百度百科 B/S,https://www.wendangku.net/doc/4f3821779.html,/view/1477348.html

[16] 百度百科 3-tier,https://www.wendangku.net/doc/4f3821779.html,/view/687468.html

[17] 张孝祥,张红梅编著.JavaScript 网页开发——体验式学习教程. 北京:清华大学出版社.2004.11

[18] 百度百科软件测试,https://www.wendangku.net/doc/4f3821779.html,/view/16563.htm

致谢

毕业设计完成之际,我由衷地感谢指导老师的大力帮助和支持,感谢我的同学与朋友,在我遇到各种各样复杂问题的时候,给与我鼓励和帮助,使我的分析问题和解决问题能力有了很大的提高。

设计期间,指导老师严肃的科学态度、严谨的治学精神、精益求精的工作作风深深地感染和激励着我。从课题的选择到项目的最终完成,都始终给予我细心的指导和不懈的支持。

刘洋

2012年4月于河南师范大学

相关文档