1、 Web应用程序设计 综合实验报告题目: 网上购物系统 学生姓名: XXX 学 号: XXXXXXXXXXX 院 (系): XXXXXXX 专 业: XXXXXXXXXX 指导教师: XXXXXXXXXX 2014 年 7月 6 日1、选题背景随着计算机技术的发展和网络人口的增加,网络世界也越来越广播,也越来越来越丰富,网上商城已经成为网上购物的一股潮流。互联网的跨地域性和可交互性使其在与传统媒体行业和传统贸易行业的竞争中是具有不可抗拒的优势。在忙碌丰富的社会生活中,人们开始追求足不出户就能买到心仪的商品,是越来越多的上网爱好者实现购物的一种方式,对于企业来说,网络交易能大大提高交易速度、节约
2、成本。在这种形势下,传统的依靠管理人员人工传递信息和数据的管理方式就无法满足企业日益增长的业务需求,因而开发了这样一个具有前台后台的网上商城系统,以满足购物者和企业的需求。因此这次毕业设计题目就以目前现有的网上商城系统为研究对象,研究一般的网上商城的业务流程,猜测其各个功能模块及其组合、连接方式,并分析其具体的实现方式,最后使用Java加web服务器和数据库完成一个网上商城系统的主要功能模块。通过这样一个设计,可以提高自己Java编程的水准,也练习了怎样构建一个完整的系统,从系统的需求分析到设计,直至编码、测试并运行,熟悉并掌握一个完整的Web开发流程,为今后工作打下基础。 1.1设计任务从以
3、下几个方面实现网络商城的基本功能:1、用户部分: (1)用户的登录和注册,用户必须注册才能购物,注册时系统会对注册信息进行验证,进入系统或是结账时,用户可以进行登录,登录时,如果密码错误,系统会进行验证并提示错误。 (2)浏览商品,实现用户可以在网络商店中随意浏览商品,商品按类别分类,方便用户查找不同类别的商品 (3)购物车管理,能实现添加商品、删除商品、更新商品的功能。 (4)生成订单,查看购物车后单击下一步则生成订单信息表,一旦提交订单,则购物车就不能被改变。 2、管理员部分: (1)修改管理员密码,修改管理员进入后台的登录密码。若果密码或用户错误,则系统会进行验证并提示错误。 (2)用户
4、信息管理,能够查看所有用户的基本新信息,并可以对用户进行删除操作。 (3)商品管理:可以添加以及删除商品的类别,并在不同的类别下添加或删除商品。 (4)订单管理,可以查看不同用户对应的订单信息,并可以对订单进行操作,包括查看订单明细、受理订单、删除订单。 1.2总体设计思路 本项目的主要研究对象是网上商城系统,研究网上商城一般的业务流程,还有网上商城的结构和模块,各个模块的功能等等。整个项目从如何来分析一个网上商城系统的业务流程和它的结构以及模块,再到对开发工具的选择,以及对前面分析出来的结果进行初步的设计(这里我们设计的是使用Java的web开发技术来实现这个网上商城系统),对网上商城系统分
5、析和设计完成之后,就进入到实际的代码编写阶段,在这个阶段就可能对前面的设计进行一定的修改或是完善。在开发阶段,我将采用的是螺旋递增式的开发,每次只完成一部分功能,然后就立即对这些功能进行测试,接着进入下一个开发阶段,然后继续测试,直到所有的功能全部实现后,再对整个系统进行一个完整的测试,看其是否达到了先前的设计要求。 1.3设计目的及意义 与传统方式销售相比在线销售有很多的优点如下: (1)检索便捷: 在线销售提供了多种检索途径,可以从分类、新品、特价等途径进行检索,快捷准确。 (2)信息量大 与传统销售方式相比,在线销售能够提供海量产品信息,并用数据库储蓄。 (3)成本低,风险小,无地域限制
6、 网络销售最突出的优点是:不再限制消费者的购买时段,扩大和巩固了客户群,从而增加了企业的核心竞争力,节省实际开店时需要投入的成本和租用费用。2、系统分析与设计 2.1 功能需求分析 2.1.1总体系统功能模块 2.1.1.1总体系统功能模块结构图 2.1.2系统划分的模块的划分及功能描述 随着计算机技术的发展和网络人口的增加,网络世界也越来越广播,也越来越来越丰富,网上商城已经成为网上购物的一股潮流。互联网的跨地域性和可交互性使其在与传统媒体行业和传统贸易行业的竞争中是具有不可抗拒的优势。在忙碌丰富的社会生活中,人们开始追求足不出户就能买到心仪的商品,是越来越多的上网爱好者实现购物的一种方式,
7、对于企业来说,网络交易能大大提高交易速度、节约成本。在这种形势下,传统的依靠管理人员人工传递信息和数据的管理方式就无法满足企业日益增长的业务需求,因而开发了这样一个具有前台后台的网上商城系统,以满足购物者和企业的需求。因此这次毕业设计题目就以目前现有的网上商城系统为研究对象,研究一般的网上商城的业务流程,猜测其各个功能模块及其组合、连接方式,并分析其具体的实现方式,最后使用Java加web服务器和数据库完成一个网上商城系统的主要功能模块。通过这样一个设计,可以提高自己Java编程的水准,也练习了怎样构建一个完整的系统,从系统的需求分析到设计,直至编码、测试并运行,熟悉并掌握一个完整的Web开发
8、流程,为今后工作打下基础。从以下几个方面实现网络商城的基本功能:1、用户部分: (1)用户的登录和注册,用户必须注册才能购物,注册时系统会对注册信息进行验证,进入系统或是结账时,用户可以进行登录,登录时,如果密码错误,系统会进行验证并提示错误。 (2)浏览商品,实现用户可以在网络商店中随意浏览商品,商品按类别分类,方便用户查找不同类别的商品 (3)购物车管理,能实现添加商品、删除商品、更新商品的功能。 (4)生成订单,查看购物车后单击下一步则生成订单信息表,一旦提交订单,则购物车就不能被改变。 2、管理员部分: (1)修改管理员密码,修改管理员进入后台的登录密码。若果密码或用户错误,则系统会进
9、行验证并提示错误。 (2)用户信息管理,能够查看所有用户的基本新信息,并可以对用户进行删除操作。 (3)商品管理:可以添加以及删除商品的类别,并在不同的类别下添加或删除商品。 (4)订单管理,可以查看不同用户对应的订单信息,并可以对订单进行操作,包括查看订单明细、受理订单、删除订单。 本项目的主要研究对象是网上商城系统,研究网上商城一般的业务流程,还有网上商城的结构和模块,各个模块的功能等等。整个项目从如何来分析一个网上商城系统的业务流程和它的结构以及模块,再到对开发工具的选择,以及对前面分析出来的结果进行初步的设计(这里我们设计的是使用Java的web开发技术来实现这个网上商城系统),对网上
10、商城系统分析和设计完成之后,就进入到实际的代码编写阶段,在这个阶段就可能对前面的设计进行一定的修改或是完善。在开发阶段,我将采用的是螺旋递增式的开发,每次只完成一部分功能,然后就立即对这些功能进行测试,接着进入下一个开发阶段,然后继续测试,直到所有的功能全部实现后,再对整个系统进行一个完整的测试,看其是否达到了先前的设计要求。 与传统方式销售相比在线销售有很多的优点如下: (1)检索便捷: 在线销售提供了多种检索途径,可以从分类、新品、特价等途径进行检索,快捷准确。 (2)信息量大 与传统销售方式相比,在线销售能够提供海量产品信息,并用数据库储蓄。 (3)成本低,风险小,无地域限制 网络销售最
11、突出的优点是:不再限制消费者的购买时段,扩大和巩固了客户群,从而增加了企业的核心竞争力,节省实际开店时需要投入的成本和租用费用。 1、用户模块分析用户模块是为商城的前台展示所设计的,用户模块可以划分为如下子模块:(1) 用户注册模块(2) 用户登录模块(3) 用户信息修改模块(3) 商品展示模块(4) 购物车模块(5) 查看订单模块 2、管理员模块分析管理员模块是为管理员管理商城事物所设计的,管理员模块又可以初步划分为以下子模块:查看系统属性模块商品类别管理(3) 商品管理模块(5) 订单处理模块(6) 管理员修改密码(1)普通用户用例图 出于安全性的考虑,普通用户只有浏览商品和商品查询、商品
12、购买等功能,其他的删除修改功能都没有设计,因为普通用户最主要关心的就是商品信息的更新和查询等功能,普通用户用例图如图2.1所示: 浏览商品 按类别查询商品 网站首页 添加商品到购物车 在线下单 普通用户 图2.1.2.1普通用户用例图(2)管理员用例图管理员是系统的核心用户,涉及到七大功能模块,管理员对系统的所有信息有着操作的权限,能够及时动态的更新系统的各项信本商品交易系统在管理权限上要严格进行控制,具体要求如下:1.要想管理本系统的商品信息,必须先要凭用户名和密码登陆到系统中,没有权限的用户不能通过任何方式登录系统查看系统的任何信息和数据,以确保系统的严密性和安全性。2.在具体实现中设定不
13、同权限,不同权限用户登录到系统后,不能越级操作,管理员可以使使用所有模块;普通用户用户只能在线浏览信息,比如,查询商品信息、在线购买、下订单等功能。 2.1.3系统用例图登录系统页修改密码品 商品类别管理品商品信息更新订单管理 有权限的管理人员 会员管理 系统公告管理 系统管理图2.1.2.2管理员用例图2.2 性能需求分析 2.2.1系统的安全性 2.2.2数据的完整性 1.各种记录信息的完整性,信息记录内容不能为空 2.各种数据间相互联系的正确性 3.相同数据在不同记录中的一致性 2.2.3模块功能的完整性 系统分为两个模块:用户模块和管理员模块,完成的系统应当按照需求分析和模块功能表的设
14、计,将实现的功能进行对照,确保每个模块功能完整性。2.3 系统开发及运行环境(1)客户端及服务器端的开发语言及工具如下表所示:开发语言: java语言工具:MyEclipse8.0表2.3.2开发语言及工具(2)在服务器端运行系统所需环境如下表所示:软件环境: JDK 1.6.0_13Tomcat6.0版本MySQL5.5数据库硬件环境:操作系统版本Windows Vista 6.1 表2.3.2服务器端配置(3)在客户端运行系统所需环境如下表所示:软件环境: Windows 7IE6.0浏览器表2.3.3客户端配置2.4 系统体系结构利用MVC设计模式,主要三部分组成:模型、视图、控制器。视
15、图简单定义为用户可以看到并且能和它交互的一种界面。模型可以为多个视图提供数据。控制器是视图和模型的桥梁,控制器本身并不做处理,对于前台的命令它可以调用模型和视图去完成需求。设计该系统基于SSH框架,SSH框架由三个部分组成:struts,hibernate,springStructs是MVC的一种实现,通过标记可以让Servlet成为实现的一部分。在Structs中,承担MVC中Controller角色的ActionServlet.它是一个通用的控制组件,它截取并发送请求到相应的动作类(Action子类),动作类再把控制权传给JSP文件生成视图。所有逻辑利用Sructsconfig.xml文件
16、配置。 MVC三层体系结构图2.5 系统总体业务流程下面的图是一个简单的业务流程图,大致描述了网站的购物流程。客户进入网站浏览商品,选择感兴趣的商品,了解详细的相关信息。用户可以将商品加入购物车,可以在购物车里对所有商品进行结算。在支付或者结算之前,如果用户没有登录,则需要登录,没有注册的用户则需要注册后再登录。用户填写或修改收货人地址,选择付款方式,提交订单。选择支付方式后进行支付,整个交易的支付过程就结束了。图2.5.1系统总体业务流程图系统接口设计:用户:使用该系统的所有者。注册:把用户注册的信息写入服务器。登录:获取用户输入的信息,发送给服务器端。服务器:对登录模块传来的用户信息进行验
17、证。网上系统:服务器对登录模块传来的用户信息验证成功。数据库 注册成功 获取用户信息, 用户 服务器 注册 用于验证 注册失败 验证信息 验证结果 网上购物系统 登录 验证成功,进入系统图2.5.2系统接口设计 2.6 数据库设计 2.6.1 数据库逻辑结构设计数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则: *每一个实体要转换成一个关系*所有的主键必须定义非空(NOT NULL)*对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。根据以上对
18、数据库的需求分析,并结合系统概念模型的特点及建立方法,建立E-R模型图。性别姓名 年龄密码联系方式用户名普通用户图2.6.1.1普通用户E-R图类别介绍是否删除类别名称商品类别图2.6.1.2 商品类别信息实体E-R图商品介绍商品图片商品价格商品名称类别ID商品信息图2.6.1.3商品信息实体E-R图登陆账号登陆密码用户ID管理员图2.6.1.4 管理员信息实体E-R图送货地址付款方式图片总金额下单时间绍订单编号会员ID订单信息图2.6.1.5 订单信息实体E-R图 根据E-R模型,普通用户公寓管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明:普通用户表主要是记录了普通用户基本信息。表
19、结构如表3.1所示。列名数据类型长度允许空是否主键说明user_idint4否是 用户IDuser_namevarchar50否否 用户名user_pwvarchar50否否 用户密码user_realnamevarchar50否否姓名user_sexvarchar50否否性别user_telvarchar20否否联系方式user_addressvarchar20否否住址表3.1普通用户表(t_user)商品类别信息表主要是记录了商品类别的基本信息,表结构如表3.2所示。列名数据类型长度允许空是否主键说明catelog_idint 4 否 是类别IDcatelog_namevarchar50否
20、否类别名称catelog_miaoshuvarchar50否否类别介绍表3.2商品类别信息表(t_catelog)商品信息表主要是商品的相关信息,其中ID是主键,表结构如图3.3所示。列名数据类型长度允许空是否主键说明goods_idInt4否是商品IDcatelog_idInt4否否类别IDgoods_namevarchar50否否名称goods_miaoshuvarchar50否否介绍goods_picvarchar50否否商品封皮表3.3商品信息表(t_goods)管理员信息表主要记录了管理员的账号信息,包括用户名和密码,表结构如列名数据类型长度允许空是否主键说明userIdint4否是
21、编号userNamevarchar50否否用户名userPwvarchar50否否密码表3.4管理员信息表(t_admin)订单信息表主要记录的会员的订单的信息,包括订单编号、下单时间等,表列名数据类型长度允许空是否主键说明order_idint4否是编号order_datevarchar50否否下单时间order_zhuangtaivarchar50否否订单状态songhuodizhivarchar50否否送货地址fukuanfangshivarchar50否否付款方式jinevarchar50否否总金额user_idint4否否会员ID表3.5订单信息表(t_order) 图1 数据库关系
22、图3 系统详细设计 本次我主要负责的部分是订单部分的处理 ,主要包括用户订单的生成,查看 ,以及管理员对于订单的查看和处理。3.1页面设计页名功能说明 方法Kahao.jsp获得用户卡号信息Html,Script,javamyOrder.jsp我的订单部分的显示Html,Script,javaorderDetial.jsp订单详情的展示Html,Script,javaorderQuery.jsp订单确认时显示的部分Html,Script,javaorderSubmit.jsp订单提交成功后订单情况的显示Html,Script,java3.2模型数据实体数据访问TOrderTOrderDao关于
23、数据库的连接,保存删除查看等TOrderIterm TOrderItermDao生成订单时订单对象 TOrderDao:关于数据库的连接, save()保存订单信息到数据库 Delete()从数据库删除订单信息 findById()通过Id查找订单 findByExample()通过订单实体查找订单 findByProperty() indAll() 查找所有的订单 merge ()利用HibernateTemplate的 merge()方法实现刷新的效果attachClean()attachDirty()getFromApplicationContext() 3.3截图及说明 1. 用户购物
24、车提交的订单信息 2.订单发货信息的填写 3.用户信息的显示4.删除信息时显示的提示 5管理员查看订单情况6后台管理员订单信息的管理,包括用户信息的查看,订单的删除,受理等7.管理员订单明细的查看 3.4代码 TOrderDAO : protected void initDao(); public void save(TOrder transientInstance); public void delete(TOrder persistentInstance); public TOrder findById(java.lang.Integer id);public List findByExa
25、mple(TOrder instance)public List findByProperty(String propertyName, Object value)public List findByOrderBianhao(Object orderBianhao)public List findByOrderDate(Object orderDate)public List findByOrderZhuangtai(Object orderZhuangtai)public List findByOrderUserId(Object orderUserId)public List findAl
26、l()public TOrder merge(TOrder detachedInstance)public void attachDirty(TOrder instance)public void attachClean(TOrder instance)public static TOrderDAO getFromApplicationContext(ApplicationContext ctx)TOrderItemDAO : protected void initDao()public void save(TOrderItem transientInstance)public void de
27、lete(TOrderItem persistentInstance)public TOrderItem findById(java.lang.Integer id)public List findByExample(TOrder instance)public List findByProperty(String propertyName, Object value)public List findByOrderBianhao(Object orderBianhao)public List findByOrderDate(Object orderDate)public List findBy
28、OrderZhuangtai(Object orderZhuangtai)public List findByOrderUserId(Object orderUserId)public List findAll()public TOrderItemr merge(TOrder detachedInstance)public void attachDirty(TOrderItem instance)public void attachClean(TOrderItem instance)public static TOrderItemDAO getFromApplicationContext(Ap
29、plicationContext ctx) 4 总结这次实验,我们组员都很用心,虽然在开始的时候,有好多不会的东西,比如,MVC结构,model模式,ssh框架,等都很不理解,经过两周的研究跟学习,开始熟悉网页的设计,通过本次设计我锻炼了自己的自学、研究能力,也从中学到不少在学校在课堂上学不到的东西.通过实践我也深刻的体会到软件开发的艰辛及问题解决后的喜悦心情,培养我的独立思考问题的能力,同时也增强了我的理论联系实际的能力,这为自己以后的工作奠定了良好的基础。但是对于要做出精美的网站我们还是缺少经验的,对于页面的好多设计技巧还是不太懂,这次设计有借鉴别人的页面,进行完善,加入自己的想法,也可能是时间太少,希望自己能够在以后的空余时间能够完善这个网页设计,让它展现出自己的风格。5 参考文献3 陈轶.姚晓昆编著.Java程序设计实验指导.北京:清华大学出版社,20064 杨昭编著.二级Java语言程序设计教程.北京:中国水利水电出版社,20065 赵文靖编著.Java程序设计基础与上机指导.北京:清华大学出版社,20066 柳西玲.许斌编著.Java语言应用开发基础.北京:清华大学出版社