
网上商城的设计与实现
一、需求分析
随着Internet的迅速发展,电子商务开始流行起来,越来越多的商家在网上建起网上商城,向消费者展示出一种新颖的购物理念。网上商城是为了精简商业活动中场所带来的成本以及地理位置所带来的商业活动不便而开发的,依托互联网来进行商业活动的平台。它提供一套基于互联网的商品采购与交易模式,打破商城和用户之间由于场所带来的购物不便,为商家提供一个有效的管理平台,为顾客提供一个简单有效的搜索与发布信息的平台,操作要求尽量简单、高效。同时,它能够降低商场场地所带来的成本,将更大的实惠反馈给购买者。从而为购买者和商家开辟一条共赢的道路。
(一)系统需求
网上商城类似于现实世界当中的商店,差别是利用电子商务的各种手段,达成从买到卖的过程的虚拟商店,从而减少中间环节,消除运输成本和代理中间的差价,造就对普通消费,和加大市场流通带来巨大的发展空间。分析本系统为系统参与者提供的功能操作:用户可以通过登陆快速找到自己满意的商品信息,也可以购买自己喜欢的商品,获得商品的报价及简介;网站管理人员可以对网站进行维护,包括商品信息的管理,会员信息的管理等,使网站始终处于最新状态;考虑到用户的需求,本系统特增加商品信息展示的功能,为商家提供有效的宣传平台。对于典型的数据库管理系统,尤其是对像电子商务这一类的数据流量特别大的网络管理系统,必须要满足使用方便、操作灵活等设计需求。本系统在设计时应该满足以下几个要求:
◆采用人机对话的操作方式,界面设计美观友好、信息查询灵活、方便、快捷、准确、数据存储安全可靠
◆全面展示商城内所有商品,并可展示最新商品及特价商品。
为顾客提供一个方便、快捷的商品信息查询功能。通过输入的关键字,采用模糊查询查询数据。
◆会员可以随时修改自己的会员资料。
◆实现网上购物。
◆商品销售排行,以方便顾客了解本商城内的热销商品及帮助企业领导者做出相应的决策。
◆查看商城内的公告信息。
◆用户随时都可以查看自己的订单。
◆对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。
◆系统最大限度地实现了易维护性和易操作性。
◆系统运行稳定、安全可靠。
网站前台:商品销售排行,新品展示,特价商品展示,查看订单,查看及修改购物车信息,修改用户注册信息,查看网站公告信息,注册用户及管理员登录
网站后台:维护商品类别,维护商品信息,订单的管理,公告的管理,系统用户管理。
1.1前台功能描述模块
前台用户购物模块主要针对用户,按功能分为以下几大模块。
1、注册用户:用户要购买商品,得先注册成为会员才能有此功能。
2、登录:在输入账号与口令后,系统将验证账号与口令是否正确,如果验证成功,用户将处于登录状态;否则,系统提示账号或密码错误的信息。
3、会员资料修改:当会员资料改变时,会员可以修改以前注册过的信息。
4、特价商品:登录此网站的用户可以进入特价区查看特价商品的相关信息。
5、商品分类:显示某一分类下的商品列表。
6、商品销售排行:登录此网站的用户可以查看商品的销售排行。
7、新品上架:登录此网站的用户可以查看新添加的商品。
8、查看订单:注册过会员的用户可以查看自己以前下过的订单,同时可以查看订单中的商品。
9、查看及修改购物车:登录到此网站的用户可以查看自己的购物车信息,显示当前选购商品列表,查看以及修改购买过的商品,当确认购买后可以下订单。
10、查看网站公告:用户可以查看管理员公布的一些重要信息。
1.1.1顾客在网上销售系统购买商品用例图
图1.1.1
1.2后台功能描述模块
管理员模块针对管理功能,包括商品管理、品牌管理、分类管理、会员管理和订单管理,具体模块如下。
1、登录系统:需要输入管理员账号与口令,系统将验证账号与口令是否正确,如果验证成功,则进入管理员界面;否则,系统提示账号或密码错误的信息。
2、商品管理:可以查看所有的商品,可以增加商品、修改商品信息、删除商品,以及查看商品信息。
3、分类管理:可以查看所有的分类,可以增加分类,修改分类信息,以及删除分类。
4、会员管理:可以查看所有的会员,可以增加会员,修改会员信息,以及删除会员。
5、订单管理:可以查看所有的订单,可以增加订单,修改订单信息,以及删除订单。
6、维护公告:管理员可以对公告进行增、删、改、查。
7、推出后台:管理员进行维护管理后,可以选择退出后台。
根据以上描述,系统的主要角色包括会员与管理员,系统用例图如下:
1.2.1 后台主要模块
通过对佳美购物网站功能需求的分析,我们定位了三种参与者:普通用户、注册用户、系统管理员。现对参与者描述如下:
(1)普通用户
描述:可以下载文件、查看商品信息、浏览资讯和简介信息等。
示例:没有登陆的想要购买商品的人。
(2)会员管理
描述:不仅可以下载文件、查看商品信息、浏览资讯和简介信息,而且还能查看购物车,并且可以购买商品等。
示例:已经登陆的会员。
(3)系统管理员
描述:管理员的权限包括上传文件、管理会员信息和会员账号以及进行商品简介和留言板的管理操作等。
示例:佳美网站的后台管理员。
1.2.2系统用例的活动图
(1)系统后台管理员进行管理活动图:
(2)系统后台管理员进行管理活动图
(3)用户注册活动图
(4)用户登录活动图
(5)用户修改信息活动图
(6)在线购物活动图
(7)系统后台管理员进行网站管理用例图
二、系统分析
(一) 网上购物系统的现状
随着互联网在我国的第一步普及应用,网上购物逐渐成为人们的消费行为之一, 目前在国内购物系统的开发,PHP与ASP技术应用最为广泛。而JSP由于是一种较新的技术,国内采用的较少。但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。
JSP应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用JSP/Servlet。比较出名的如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere;西方另外一个非常著名的电子商务软件提供商Intershop,它原来的产品Intershop1 ,2, 3, 4占据了主要的电子商务软件份额。它们都是通过CGI来提供支持 的。但去年10月后它推出了Enfinity,一个采用JSP/Servlet的电子商务Application Server,而且声言不再开发传统软件。
(二)可行性分析
使用JSP技术开发的Web应用是跨平台的,即能在windows下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和 scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
(三) 系统实现的目标
目前流行的网上购物系统不仅要有漂亮的网页,更要有严谨的规划,注重每一个细小的环节,这样才能使得在电子交易时避免不必要错误的发生。我们将使用HTML、JSP等技术来编辑网页,并运用JDBC技术把数据库和动态网页相关联。传统的管理信息系统信息获取方法是由专业文字录入人员将信息输入到管理系统的数据库中,这种方法在数据量不大时有很多的应用场合。当数据量比较大,并且有较强的专业性时,录入的费用和出错的可能性都相应上升。本设计在实际应用中的解决方案是建立网站, 以及自己的数据库,使得所需商品信息可以及时的保存、更新,可以更好的及时了解商品买卖的情况。
(四)系统类图及包图
通过对淘宝、拍拍等网上购物的认识和分析,我对网上购物有了基本的了解,我觉得该系统至少应该具有以下的一些基本功能:
(1)注册管理:能够对用户名,密码的简单验证;能够对电子邮箱,Email进行有效性验证;能够防止利用页面刷新重复注册,以及已经注册的用户不能重复注册。
(2)商品浏览:分类显示商品;显示商品详情,提供购买链接;可以对商品进行模糊查询。浏览商品时不要求用户登录,但下订单前用户必须登录,对于浏览过的商品有历史记录。
(3)购物车管理:欲购买商品可以增添到购物车;也可以从购物车退回商品,清空购物车;对于同一件商品的多次购买只能在原来的商品上增添数量,还可以修改购物车中某个商品的数量,统计商品总金额。
(4)订单管理:只有登录的用户可下订单;用户可以查看自己的订单。管理员可以修改订单的状态。
(5)商品管理:管理员可以增添商品分类;修改商品基本信息;增添商品时候可以上传图片。
(6)注册用户管理:管理员可以通过查询指定用户,并管理用户的启用,冻结。
(7)公告管理:管理员可以通过公告的形式向顾客告知本商城的近期动向,如:打折信息、维护信息等。
根据以上描述,系统类图如下:
包图如下:
三、系统设计
(一) 设计目标
使用JSP + JavaBean技术,实现网上商城系统在设计满足:采用人机对话的操作方式,界面设计美观友好、信息查询灵活、方便、快捷、准确、数据存储安全可靠;全面展示商城内所有商品,并可展示最新商品及特价商品;为顾客提供一个方便、快捷的商品信息查询功能。采用模糊查询查询数据;会员可以随时修改自己的会员资料;实现网上购物;商品销售排行,以方便顾客了解本商城内的热销商品及帮助企业领导者做出相应的决策;查看商城内的公告信息;用户随时都可以查看自己的订单;对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误;系统最大限度地实现了易维护性和易操作性;系统运行稳定、安全可靠。
(二)系统功能模块图
(三)数据库设计
E-R设计
3.3.1 tb_Shop()
| 字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
| Subid | varchar | 50 | 是 | 类别ID |
| Warename | varchar | 50 | 类别名称 | |
| Price | bigint | 8 | 商品价格 | |
| Wsum | bigint | 8 | 商品数量 | |
| Wcount | bigint | 8 | 数量统计 |
| 字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
| Lname | varchar | 50 | 是 | 链接名称 |
| Laddress | varchar | 50 | 链接地址 | |
| Ldatetime | Datetime | 8 | 链接时间 |
| 字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
| Test | text | 16 | 是 | 推荐商品展示 |
| Dattime | datetime | 8 | 消费额 |
| 字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
| ID | bigint | 8 | 是 | ID号 |
| orderID | bigint | 8 | 与tb_Order表的OrderID字段关联 | |
| goodsID | bigint | 8 | 商品ID |
| 字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
| Sub | bigint | 50 | 是 | 订单编号 |
| Username | varchar | 20 | 用户名 | |
| Tname | varchar | 50 | 真实姓名 | |
| Spdate | datetime | 8 | ||
| varchar | 50 | 邮政编码 | ||
| Address | varchar | 80 | 电话 | |
| Post | varchar | 50 | 付款方式 | |
| payment | char | 50 | 运送方式 | |
| Tel | varchar | 30 | 折扣 | |
| Carry | varchar | 30 | 订货日期 | |
| Spif | int | 4 | 是否执行 | |
| Other | text | 16 | 备注 |
| 字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
| Userid | int | 4 | 是 | 会员ID |
| username | varchar | 50 | 用户名 | |
| Rname | varchar | 40 | 真实姓名 | |
| Userpass | varchar | 16 | 密码 | |
| varchar | 50 | 邮箱 | ||
| Address | varchar | 100 | 联系地址 | |
| Tel | varchar | 30 | 电话 | |
| Question | varchar | 50 | 问题 | |
| Resullt | varchar | 50 | 证件类型 | |
| Dattime | Datetime | 8 | 注册日期 |
| 字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
| ID | int | 4 | 是 | ID号 |
| Admin | varchar | 30 | 管理员名称 | |
| Adminpass | varchar | 30 | 管理员密码 |
3.3.8 tb_Ware(商品信息表)
| 字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
| Warebid | int | 4 | 是 | 商品ID |
| Warename | varchar | 50 | 商品名称 | |
| Wareprice | bigint | 8 | 商品价格 | |
| Waretype | varchar | 20 | 商品类型 | |
| Wareintro | text | 16 | 商品简介 | |
| Wareimage | varchar | 8 | 商品图片 | |
| Wareif | int | 4 | 是否有商品 | |
| Dattime | datetime | 8 | 录入时间 |
| 字段名 | 数据类型 | 长度 | 是否主键 | 描述 |
| Textid | int | 4 | 是 | ID号 |
| Username | varchar | 20 | 用户姓名 | |
| varchar | 50 | 公告内容 | ||
| Dattime | datetime | 8 | 评论时间 | |
| Textname | varchar | 50 | ||
| Textgut | text | 16 |
(四)客户管理
4.1注册账号时序图
客户注册账号时,首选进入注册页面,然后填写账号、密码等相关信息,注册界面做
初步的检查,检查是否合法,正确后提交给系统,保存客户信息,注册完成。如图4.2.1所示:
图4.2.1 注册帐号时序图
4.2登录系统时序图
客户登录系统时,首先进入登录界面,然后输入账号和密码,登录界面做初步的检查,检查是否合法,正确后提交到系统,系统检查账号和密码的正确性,正确后登录完成,如图4.2.2所示:
图4.2.2 登录系统时序图
(五)前台管理
5.1搜索商品时序图
客户搜索商品时,首先进入购物界面,然后输入所要搜索商品名得关键字,点击搜索
提交到系统,系统搜索到该商品信息取出返回给客户,搜索商品完成,如图4.3.1所示:
图4.3.1 搜索商品时序图
5.2添加商品到购物车时序图
客户添加商品到购物车时,首先进入该商品的信息界面,点击添加到购物车后,输入商品数量,界面检验客户所输入商品数量是否合法或是否超过架上商品数量,正确后提交到系统,系统保存信息到购物车,添加商品到购物车完成,如图4.3.2所示:
图4.3.2 添加商品到购物车时序图
5.3修改购物车内商品数量时序图
客户修改购物车内商品数量时,首先购物车界面,修改商品数量后,界面检查客户输入商品数量是否合法或是否超过架上商品数量,无误后提交到系统,系统保存信息到购物车,修改购物车内商品数量完成,如图4.3.3所示:
图4.3.3 修改购物车内商品数量时序图
5.4生成订单时序图
客户生成订单时,首先进入购物车界面,点击生成订单,界面生成一份订单预览,确认无误后确定提交到系统,系统保存信息到订单,生成订单完成,如图4.3.4所示:
图4.3.4 生成订单时序图
(六)后台管理
6.1删除订单时序图
商户删除订单时,首先进入订单列表界面,选中要删除的订单点击删除,界面提示是否确认删除该订单,确认后提交到系统,系统删除该订单信息,保存删除后信息到订单,删除订单完成,如图4.4.1所示:
图4.4.1 删除订单时序图
(七)系统状态图
7.1网上购物状态图
状态图用来描述一个特定对象的所有可能状态及引起其状态转移的事件。大多数面向对象技术都用状态图表示单个对象在起周期中的行为。一个状态图包括一系列的状态以及状态之间的转移。在这里我以购物车为例对它的状态进行分析,首先观察购物具有两个状态,车内有商品、车内无商品。然后再分析他的活动,如果选择商品,可添加到购物车内,可以继续选择商品。如果选够了商品,就从一个状态进入了另一个状态,一个状态可以加进五种信息:活动、进入操作、退出操作、事件和状态历史。活动是对象在特定状态时进行的行为。进入操作是对象进入某个状态时发生的行为。退出操作与进入操作相似,但它在退出某个状态时发生。如下图4.5.1所示:
图4.5.1购物车状态图
7.2网上商城购物车活动图
活动图显示 动作及其结果,它即可用来描述操作(类的方法)的行为,也可以描述用例和对象内部的工作过程。活动图是由状态图变化而来的,它们用于不同的目的。活动图主要强调的是动作。与状态图不一样,活动图中的动作状态之间的迁移于是靠事件触发的,当动作状态中的活动完成时迁移就触发,活动图中一个活动结束后将立即进入下一个活动。在下图描述了网上购物系统中购物车的活动图。和购物车的状态图相比它的活动图包含状态以外还包括了购物车的几个活动,象添加商品、删除商品和结帐等等接个活动。我感觉状态图就好象活动图的整体设计,状态图可以包含几个活动图,也就是说一个状态可以引发出接个动作来。但是状态图和活动图不能想时序图与协作图之间可以相互转换。图4.5.2所示的就是网上购物系统中购物车的活动图。
图 4.5.2
以上分别以购物车为例,说明了购物车的活动图和状态图。下面将分别介绍其它部分的状态图,在这里就详细描述了,如图4.5.3所示:
图4.5.3
图4.5.4
图4.5.5
四、系统实现
通过对系统的分析和设计,实现了一个网上商城网站。该系统添加了Struts框架,遵循了MVC的设计模式,采用JSP+SQL Server 2000数据库技术,同时利用了JavaBean、JavaScript、JDBC-ODBC桥接器等技术实现完成了各个功能模块的实现。各个模块之间相互,降低了模块之间的耦合度,表示层和业务逻辑部分分层实现,有利于后期的维护和系统升级。
(一)开发环境
操作系统:Windows XP;
数据库:SQL Server 2000
开发工具包:JDK 1.5;
JSP服务器:Tomcat 6.0;
浏览器:IE5.0及以上版本,推荐使用IE6.0;
分辨率:最佳效果1024×768。
(二)系统逻辑结构
图4.1为系统开发时使用的逻辑结构图。
com.flydo.shop.commerce放置struts的commerce
com.flydo.shop.db放置连接数据库的类。
com.flydo.shop.dao放置DAO层处理业务逻辑和数据库操作的相关类。
图4.2系统逻辑结构目录
(三)系统界面设计
3.1 网站前台首页设计
在电子商城的首页中,用户不但可以在第一时间内掌握商城推出的特价商品、上架新品、最新公告等,还可以查看销售排行、搜索指定商品、商品分类查询等。电子商城前台首页的运行结果如图4.2.1所示。
图4.2.1
3.2登录后界面
用户登录后,原登录框的位置变为用户欢迎信息。登录后的用户可以查看自己的用户信息,可以通过安全注销的方式推出登录状态。登录后的用户可以使用购物车进行结账。网页有一个购物车状态栏,现在用户的购物车状态信息。方便了用户的操作。图4.2.2为用户登录后的网站首页界面。
3.3商品信息浏览界面
用户可以通过检索和分类查找浏览商品,也可以直接点击网站首页的广告查看广告中的商品。浏览信息商品的过程中可以将商品添加到购物车。商品信息浏览的界面如图4.3.3所示。
图 4.3.3
3.4购物车界面
购物车是本系统的重要功能模块,点击商品购买后,商品就被添加到购物车中,此时的页面转到购物车页面,该页面显示当前用户的购物车详细信息。购物车中描述了用户欲购买商品的名称,价格,数量等信息。购物车提供了移除商品,清空购物车和生成订单等操作。(如图4.3.4)
图4.3.4
3.5 新品上架模块设计
新品上架模块也有两个入口,一个是网站导航条中的【新品上架】导航按钮,另一个是网站前台的居中位置,列出了商城中上架新品中的最新上市的4条商品信息,单击新品上架展区中的“More…”超链接可以进入到新品上架页面,在该页面中将列出商城中的全部上架新品。主要包括商品图片、名称、现价等信息。同时设置了【购买】按钮和【查看详细信息】按钮,分别用于将商品信息添加至购物车和查看商品详细信息。下面只以首页中的新品上架为例进行介绍。新品上架模块在网站首页中的设计效果如下图所示。
3.6 商品分类模块设计
为了方便用户查询所需商品信息,在网站中设置了商品分类显示模块。在网站首页的右侧以树状菜单的形式列出了商品的大、小分类信息,用户单击大类别结点可以显示出该类的所有小类信息,单击小类结点可以进入到分类商品显示页面查看该类别的全部商品信息,在分类商品显示页面中,单击商品名称可以查看相应商品的详细信息。如果用户已经登录,还可以直接将商品信息添加至购物车中。商品分类模块的页面设计效果如图4.2.6所示:
图4.2.6
实现以树状菜单的形式显示商品的大、小分类信息的关键是获取商品的大分类信息,并分别查询出每个大类所对应的小分类信息,再通过标记和JavaScript自定义函数实现结点的显示和隐藏。
3.7管理员登录界面
管理员登录入口不同于普通用户登录入口。管理员通过登录可以实现对网站信息的维护。(如图4.2.7)
3.8商品管理界面
商品管理属于后台管理功能,管理员登录后台后可以对商品信息进行管理,包括商品的添加,修改和删除操作。商品管理的界面如图4.8和图4.9所示。
图4.8商品信息维护界面
图4.9删除商品界面
3.9商品类型管理界面
管理员登录系统后台后,可以对商品的类别进行管理,包括添加商品类别,对现有的商品类别进行修改,删除商品类别等操作。商品类别管理界面如图4.10所示
图4.10商品类型管理界面
3.10订单管理界面
管理员登录系统后台后,可以查看所有订单,并对订单进行管理。管理员对订单的管理界面如图4.11所示。
图4.11订单管理
3.11销售排行模块设计
销售排行页面主要是将订单视图中的数据按GoodsName、GoodsID字段分组并统计销售数量,再按统计后的销售数量降序排列,最后再使用SQL语句中的top关键字取出销售量最高的前6种商品。
商品销售排行页面运行结果如图所示
(四)系统构件图
(五)系统部署图
总结
通过这次课程设计,我学到了很多的知识。在整个设计过程中,出现过很多的难题,但都在老师和同学的帮助下顺利解决的,在不断的学习过程中我体会到:
课程设计是一个不断学习的过程,从最初对电子商务问题的模糊认识到最后能够对该问题有深刻的认识,我体会到实践对于学习的重要性,以前只是明白理论,没有经过实践考察,对知识的理解不够明确,通过这次的做,真正做到理论与实践相结合。
总之,通过这次课程设计,我深刻体会到要做好一个完整的事情,需要有系统的思维方式和方法,对待要解决的问题,要耐心、要善于运用已有的资源来充实自己。同时我也深刻的认识到,在对待一个新事物时,一定要从整体考虑,完成一步之后再作下一步,这样才能更加有效。
参考文献
1.王国辉、王易著:《JSP数据库系统开发案例精选》,人民邮电出版社,2006.3
2.万峰科技编著:《JSP网站开发四“酷”全书》电子工业出版社,2006.1
3.王夕宁、王晓平著:《JSP通用模块及典型系统开发》人民邮电出版社,2006.2
4.[美]Rogers Cadenhead、Laura Lemay著:陈武、袁国忠译:《21天学通Java 2》第三版(专业参考版),人民邮电出版社,2004.5
5.余晨、李文炬编著:《SQL Server 2000 培训教程》清华大学出版社,2004.8
6.李争、陆正中编著:《JBuilder 精髓》电子工业出版社,2005.1
7.[美]Harvey M.Deitel、Paul J.Deitel 著:袁兆山、刘宗田、苗沛荣等译:《Java程序设计教程》机械工业出版社,2004.7
8.王国辉、李文立、杨亮编著:《JSP数据库系统开发完全手册》人民邮电出版社,2005.7
9.飞思科技产品研发中心编著:《JSP应用开发详解》第二版,电子工业出版社,2006.5
10.博思创作室、贺斌著:《Dreamweaver电脑美术基础与实用案例[M]》,北京清华大学出版社,2007.4
