网上购物系统论文
网上购物系统
专 业
班 级 学生姓名 学 号 指导教师
2015年 11 月8日
网上购物系统
摘要:伴随着计算机技术在各行各业日益广泛和深入的应用,互联网购物早已深入人心。电子商务在各行各业的发展战略中占据了重要的位置,成为各大商家的必争之地。商品的流通已不仅仅局限于传统渠道,网络平台已成为商家展示自己,提升自身形象的舞台。商家通过建立网站,将产品、资源等各方面信息展现在互联网上。而计算机和互联网技术本身所具备的信息透明度、信息高速传播和快速管理等特征,不仅可以改进商家原有经营方式与经营效率外,也为商家带来了更高的效益。因此,对于商家来说,拥有一个属于自己的购物网站是至关重要的。
本网站是基于J2EE 开发的B2C 电子商务网站,主要完成网站的整体设计以及各个功能的实现。采用JSP 作为顶层表示技术,struts 式的架构,运用spring 整合系统, 即目前较流行的SSH 框架,开发出一个具有良好扩展能力的J2EE 商城网站。使用MyEclipse 作为代码开发工具,在Windows XP 操作系统平台下,采用MySQL 作为数据库服务器,Tomcat 作为解析服务器。
本论文以系统的开发为线,从软件设计的角度对系统的理论基础、系统整体布局及系统具体设计进行了详细研究,其中某些功能,如电子支付功能,由于局限于条件,只做理论分析。
关键字:B2C ,j2ee ,MySQL ,SSH ,MVC ,电子商务,网上购物
目 录
前言 . ........................................................................................................................................ 1
1.1 问题定义及内容简介 . .................................. 1
1.1.1目的与意义 .................................................................................................... 1
1.1.2研发背景 ........................................................................................................ 2
1.1.3可行性分析 .................................................................................................... 2
1.1.4各章节内容简介 ............................................................................................ 3
2系统需求分析 ...................................................................................................................... 4
2.1 需求背景分析 .......................................... 4
2.2功能需求分析 ........................................... 4
2.3 业务流程分析 .......................................... 5
3 系统设计 ............................................................................................................................. 8
3.1 系统总体结构分析 . ...................................... 8
3.2 数据库设计 ............................................ 9
3.2.1数据库的设计思想 ..................................... 9
3.3系统的开发技术简介与运行环境 .......................... 14
3.3.1 Struts+Hibernate+Spring的技术原理 .................. 14
3.3.1.1 Struts技术原理 ................................... 14
3.3.1.2 Hibernate技术 .................................... 16
3.3.1.3 Spring技术 ....................................... 17
3.3.2 Tomcat互联网服务器技术 ............................. 19
3.3.3 MySQL数据库技术 .................................... 20
3.3.1运行环境 ...................................................................................................... 21
4 主要模块详细设计 ........................................................................................................... 21
4.1系统体系结构 .......................................... 21
4.2主要子模块的详细说明 .................................. 22
4.2.1用户注册和登录模块 .................................................................................. 22
注册页面,用户正确填写相关信息之后,后台自动创建新用户。................ 22
4.2.2 产品信息模块 ........................................................................................... 25
4.2.3 分类管理模块 ............................................................................................. 27 编辑分类页面可以添加该分类的一些属性,如CPU, 内存,硬盘等等的参数均
在此添加,页面设计如下: ............................................................................... 28
在分类列表页面可直接删除分类信息。删除后直接跳转回列表页面。 . ....... 28
4.2.4 购物车模块 ............................................................................................... 29
4.2.5 订单模块 ..................................................................................................... 30
4.2.6 优惠信息模块 ............................................................................................. 33
4.2.7 反馈信息模块 ............................................................................................. 34
4.2.8 物流信息模块 ............................................................................................. 35
4.2.9 用户信息模块 ............................................................................................. 35
5使用说明书 ........................................................................................................................ 37
5.1运行环境简介 .......................................... 37
6 软件测试 . .......................................................................................................................... 37
7 结束语 . .............................................................................................................................. 38
参考文献 . .............................................................................................................................. 39
前言
近年来,随着Internet 的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起网络商店,向消费者展示出一种新颖的购物理念。 最新发布的中国网上购物消费者调查报告2011显示,2010年度我国网上购物继续高速发展,全年网 购规模达到4980亿元,占到了全国社会商品零售总额的3.2%,网购人数达到1.85亿,网上购物在网民中的渗透率为40.6%。上海和北京的网购规模 分别突破400亿元和300亿元,杭州、广州、深圳和苏州4个城市的网购规模突破百亿元大关。调查显示,京东商城和凡客在2010年度表现突出,市场份额 分别比上一年度提升了1.1和0.8个百分点。
由此可以看出当前网上购物的迅猛发展以及今后网上购物的发展模式,即使以商城为主导的中大型B2C 网站发展模式。本论文将为客户设计较为先进性的网站系统。设计方案立足当前流行的变成技术,以先进的观点和设计思路实现商城的服务性,实用性和便利性。
1.1 问题定义及内容简介
1.1.1目的与意义
建立网上商城可以提高商业交易的效率、范围, 网上商城 以在线交易、客户服务为核心。降低人工、经营本钱,这对于全面推进商家的信息化网络化具有重要意义。
1 网上商城 有利于树立和提高企业形象。提高商家对客户的服务水平及客户服务效率,同时大幅提高商家员工的信息化水平。
2 网上商城 能很好地为客户提供在线咨询及反馈。增强客户与商家交流与沟通的能力,协助商家以更快的速度了解客户需求,同样客户也能从 网上商城 快捷地获得商家对产品的售前及售后服务。
3 网上商城 一个重要的目的就是提供在线交易服务。为客户与商家之间形成互通及企业内部办公自动化,最终构建企业“电子商务”打下坚实基础。
4 信息网络正在生长为 “ 第四媒体 ” 将成为人们获得信息的实现社会多种功能的主要载体。可以改变企业的信息化建设、产品销售和客户
服务在激进方式下人力资源的比重失调,极好地体现企业在行业领域的知名度及企业的信息资源。
5 网上商城有助于行业建议产品及信息资源的市场价值。从而带动商家产品在业界的品牌与地位,营造有利于商家生存与发展环境,加速企业信息化发展。
1.1.2研发背景
互联网技术的飞快发展给人们的生活带来了巨大的变化,电子商务的发展催生了一种新的购物方式——网上购物,它以快速的信息更新,方便快捷的购物方式,实惠的商品定位吸引了越来越多的人参与其中。
相比传统零售行业,网上购物具有许多无可比拟的优势。首先,以商铺销售或商场销售等为代表的零售行业因受地域限制,其影响范围仅限于较小的区域,而借助四通八达的互联网,消费者可以通过网上商城浏览和获取世界各地商家的商品信息;其次,通过网上购物渠道,消费者可以足不出户地进行购物;再次,同样是管理商品信息和统计,传统零售行业需要花费大量劳动力才能完成,而销售网站许多信息都可以轻松地进行自动化管理,极大的降低企业的管理成本;最后,建立自己的网上购物系统,有利于提升企业和商家的企业形象,提高服务质量,展示企业的信息化水平。
虽然网上购物具备以上的诸多优点,但由于该行业刚刚兴起不久,目前发展程度较低。据互联网统计机构统计,截止2010年底,网络购物销售份额只占到零售业销售总额的0.6%,由此数据可知,该行业的发展潜力巨大,研究和开发优秀的网上购物商城系统,对推动行业的发展,提高网上销售综合竞争力有着重要的意义。本课题的目的在于通过对网上商城开发,初探当前互联网编程的一些流行框架和技术,同时通过参考当前较为成功的商城网站的设计,探寻更佳的购物体验和更高效的产品信息管理,实现更轻松快捷的购物体验,降低传统商户进行网上交易的门槛。
1.1.3可行性分析
经济可行性
本系统最大的特色是用的开源的软件开发工具MyEclipse 。应用服务器
用的是tomcat 这些都是免费的。而且结合JA V A 的跨平台性,使该系统能稳定的运行与所有常见的WINDOWS,UNIX ,FreeBSD,Linux 操作系统上, 这样整个系统的软件成本得到很大程度的节约,只需要投入人力成本和硬件成本。
由于本系统无平台的限制,与其它的系统相比,本系统独立性相当强,这样只需要投入较少的资金就可以达到预期的要求。在系统运行环境中,软硬件都无需做巨大投资,只利用现有计算机设备即可。因此在经济上可行的。
● 技术可行性
本系统采用JSP+Struts+Hibernate+Spring为网站实现技术,建立基于MySQL 数据库的核心动态网页,这些技术已近相当成熟,具有平台无关性且安全可靠的特点,完全适合作为面向Internet 的开发工具,目前的此技术已成为所有大型电子商务项目的必然选择。本系统总共有两部分组成:前台开发和后台数据库的调用,从技术上讲前台用的MyEclipse 开发工具,功能比较强大,结合JAVA WEB技术进行开发。对于数据库部分我们用的是MySQL ,采用Hibernate 将关系数据库封装成对象,真正体现面向对象编程,易于进行数据库连接,因此本系统的开发在技术上具有可行性。 ● 操作可行性
从目标系统使用难易程度上来看并不复杂,界面设计亲切,容易使用,系统管理员要有一定的数据库方面的知识,但只需专业人事做短期的培训就可以拥有熟练使用系统的能力。最后,就是需要操作员对本系统的各部分功能有全面的了解。因此,本系统在操作上是完全可行的。
1.1.4各章节内容简介
第1章是绪论, 讲述考试报名系统的开发背景,国内外研究现状,以及论文的组织结构。
第2章是系统需求分析。主要内容是系统功能需求分析,业务流,数据流等。
第3章是系统设计部分,主要内容是系统的总的体系结构的设计,这部分设计是从数据流导出的;系统数据模型设计,包括E-R 图,关系模型
和数据表;系统开发和运行环境的确定。从第四章开始介绍了各个主要模块的设计。
第4章介绍的是系统实现,包括系统六个模块的体系结构设计,各个子模块功能,界面设计,详细设计,以及在设计时所遇到的问题及解决方案。
第5章是用户使用手册,主要内容有系统功能简介、运行环境简介。
第6章是软件测试。介绍一般大型软件系统的基本测试步骤步骤。
第7章是附录,在附录内收录了一些主要的参考文献、系统代码和致谢语。
2系统需求分析
在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围和定义时所要做的所有的工作。需求分析是软件工程中的一个关键过程。
2.1 需求背景分析
电子商务近几年在国内的高速发展加速了为电子商务服务的软件行业的发展,随之诞生了许多与之密切相关的网店和网上商城系统。对于网上商城的实现技术,从开源的到商业的,目前非常之多。本课题研究的网上商城系统,指的是支持商户自身面对消费者的卖场模式,也就是一般指的B2C 网站。目前大部分商城系统都是基于PHP 语言开发,如淘宝商城和shopex ,大部分企业和商户都有自己的网站或者POS 系统,而且这些系统大多都基于JAVA 技术。开发采用JAVA 和J2EE 技术的系统,可以更方便的实现客户内部各个系统的集成。
因此,根据上述分析,在系统框架方面使用当前流行且稳定的J2EE 框架spring+struts+hibernate开发。在保证系统稳定的同时尽可能提高系统的安全性和可扩展性。
2.2功能需求分析
本系统主要应实现以下各个功能:
1. 页面展示
1)商城首页
2)产品列表
3)产品类别检索
4)产品详情
5)优惠活动
6)购物车
2. 会员管理
1)个人信息维护(会员资料,安全资料等)
2)交易详情
3)订单管理
4)客户反馈
5)支付功能
3. 后台管理
1)会员信息管理
2)产品信息管理(价格,分类,库存等)
3)产品信息录入
4)订单管理
5)反馈处理
6)统计报表(销售统计,盈亏统计)
7)物流管理
2.3 业务流程分析
在对系统的组织结构和功能进行分析时,需从一个实际业务流程的角度将系统调查中有关该业务流程的资料都串起来作进一步的分析。业务流程分析可以帮助我们了解该业务的具体处理过程,发现和处理系统的调查工作中的错误和疏漏,修改和删除原系统的不合理部分,在新系统基础上优化业务处理流程。
业务流程图(transaction flow diagram,简称TFD ), 就是用一些规定的符号及连接来表示某个具体的业务处理过程,它是用尽可能少、尽可能简单的方法来描述业务处理过程的方法,由于它的符号简单明了,所以非常易于阅读和理解业务流程。所以说,绘制业务流程图是分析业务流程的重要步骤。
数据流程分析把数据在组织内部的流动情况抽象地独立出来,舍去了具体组织机构、信息载体、处理工作、物资、材料等,单从数据流动过程
来考察实际业务的数据处理模式。数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。现有的数据流程分析多是通过分层的数据流程图(data flow diagram ,简称DFD )来实现的。其具体的做法是:按业务流程图理出的业务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图,一边绘图,一边核对相应的数据和报表、模型等. 通过以上的系统需求分析,下面各个模块其流程分析可表示为: 其流程分析可表示为:
(1) 后台管理功能示意图:
图1 管理员业务流程图 (2)用户功能示意图:
图2 用户业务流程图
2.4 数据流分析
数据流程分析把数据在组织内部的流动情况抽象地独立出来,舍去了具体组织机构、信息载体、处理工作、物资、材料等,单从数据流动过程来考察实际业务的数据处理模式。数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。现有的数据流程分析多是通过分层的数据流程图(data flow diagram ,简称DFD )来实现的。其具体的做法是:按业务流程图理出的业务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图,一边绘图,一边核对相应的数据和报表、模型等, 可以得 到的数据流图如下:
图3 数据流程图(DFD)
3 系统设计
3.1 系统总体结构分析
该系统总体结构设计如下:
图4系统总体结构
3.2 数据库设计 3.2.1数据库的设计思想
数据库(DataBase ,简记为DB ) 是长期储存在计算机内的、有组织的、统一管理的相关数据的集合。DB 能为各种会员共享,具有较小冗余度、数据间联系紧密而又有较高是数据独立性等特点。
数据库设计(Database Design,简称DBD )是指对于给定的软、硬件环境,针对现实问题,设计一个较优的数据模型,建立DB 结构和DB 应用系统。
几乎所有的WEB 项目都是基于数据库的,这使得数据的设计在整个项目中的地位举足轻重。相关研究表明,在数据应用系统的开发中,项目成功50%靠数据库的设计。良好的数据设计往往能够减少开发的负担。
数据库设计是指对于一个给定的应用环境,通过合理的逻辑设计和有效的物理设计来构造较优的数据库模式,建立数据库极其应用系统,满足会员的各种信息需求。
数据库设计(Database Design,简称DBD )是指对于给定的软、硬件环境,针对现实问题,设计一个较优的数据模型,建立DB 结构和DB 应用系统。
计算机信息系统以数据库为核心,为现实世界的信息流计算机化,并对计算机化的信息进行各种操作,就是如何利用数据库管理系统,将会员的要求转化成有效的数据结构,并使数据库结构易于适应会员新的要求的过程,这个过程称为数据库设计。 3.2.2 数据库简介
本系统采用MySQL 作为后台管理数据库。
MySQL 是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun 公司收购。而2009年,SUN 又被Oracle 收购。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL 的SQL “结构化查询语言”。SQL 是用于访问数据库的最常用标准化语言。MySQL 软件采用了GPL (GNU 通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL 作为网站数据库。 3.2.3 数据库需求分析
通过对整个系统的分析,依据网上商店的处理需求,对应数据表设计及功能如下。
● 商品基本信息表:存放网上商店所销售商品的基本信息。 ● 商品类别信息表:存放网上商店所提供商品大的分类信息。 ● 会员信息表:存放网上商店用户的基本信息。
● 游客信息表:存放非注册会员的相关信息。 ● 订单信息表:存放与用户相关的订单基本信息。
● 信息显示表:存放用于主页和各种分类页面显示的产品信息。 ● 物流信息表:存放物流相关数据。
● 反馈信息表:存放用户投诉反馈和购买商品后评论的信息。 ● 反馈信息类别表:存放反馈信息类别。 ● 商城广告信息表:存放商店的广告信息。 3.3.4 数据库关系模型
根据需求分析生成的数据库关系模型图如下:
图5 E-R图
根据选用的数据库管理系统为MySQL ,网上商城系统数据库中的各个表字段定义如下所示:
1) user 为用户信息表, 主要保存用户和管理员的的注册信息,如表
5-1:
表5-1
2)shopcar 表,主要存储用户的购物车信息,见表5-2
3)product 表,主要保存产品信息,见表5-3
表5-3
4) order 表,储存订单信息,见表5-4
表5-4
5)feedback 表,保存用户反馈信息,见表5-5
表5-5
6)express 表,保存物流信息,见表5-6
表5-6
表5-7
discount 表,保存优惠信息信息,见表5-7
7)category 表,保存产品类别信息,见表5-8
表5-8
3.3系统的开发技术简介与运行环境 3.3.1 Struts+Hibernate+Spring的技术原理
3.3.1.1 Struts技术原理
● Struts 的由来和发展
Struts 框架工具是 Apache 基金会 Jakarta 项目中推出的一个子项目。 Struts 在英文中是支架、支撑的意思,这也体现出 Struts 在开发 Web 应用程序过程所起到的重要作用, Struts 为 Web 应用提供了通用的框架,让开发人员可以把主要精力集中在如何解决实际业务问题上,与此同时 Struts 框架也允许开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。采用 Struts 可以简化遵循 MVC 设计模式的 Web 应用的开发工作,很好地实现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发挥 JSP/Servlet 优点、并具有强可扩展性的 Web 应用。
● MVC 简介
模型-视图-控制器(MVC )是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。
1、模型(Model ):模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.
2、视图(View ):视图是应用程序中用户界面部分,是用户看到并与之交互的界面。
3、控制器(controller) :控制器工作就是根据用户的输入,控制用户界面数据显示和更新model 对象状态。
MVC 式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。
尽管MVC 设计模式很早就提出,但在Web 项目的开发中引入MVC 却是步履维艰。主要原因:一是在早期的Web 项目的开发中,程序语言和HTML 的分离一直难以实现。CGI 程序以字符串输出的形式动态地生成HTML 内容。后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在HTML 内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML 分离。二是脚本语言的功能相对较弱,缺乏支持MVC 设计模式的一些必要的技术基础。直到基于J2EE 的JSP Model 2问世时才得以改观。它用JSP 技术实现视图的功能,用Servlet 技术实现控制器的功能,用JavaBean 技术实现模型的功能。
一般情况下,Struts 框架的,模型是由JavaBean 或EJB 构成,视图是由Jsp 页面组成,控制器是由ActionServlet 和Action 实现,图2.1展示了MVC 框架的基本结构。
图2.1 Struts的工作原理图
3.3.1.2 Hibernate技术
Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思想来操纵数据库。
Hibernate 的工作原理是通过文件(一般有两种:xml 文件和properties 文件)把值对象和数据库表之间建立起一个映射关系。这样,我们只需要通过操作这些值对象和Hibernate 提供的一些基本类,就可以达到使用数据库的目的。例如,使用Hibernate 的查询,可以直接返回包含某个值对象的列表(List ),而不必向传统的JDBC 访问方式一样把结果集的数据逐个装载到一个值对象中,为编码工作节约了大量的时间。Hibernate 提供的HQL 是一种类SQL 语言,它和EJBQL 一样都是提供对象化的数据库查询方式,但HQL 在功能和使用方式上都非常接近于标准的SQL. 图2.2展示了Hibernate 的工作原理。
图2.2 Hibernate工作原理图
3.3.1.3 Spring技术
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。它由两个大的模块组成:Spring 面向方面编程(AOP )和控制反转 (IOC ) 容器。Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。
图2.3 Spring框架架构图
组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:
∙
核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory ,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC ) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
∙
Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI 、EJB 、电子邮件、国际化、校验和调度功能。
∙
Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP 。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。
∙
Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异
常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。
∙ Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO 、Hibernate 和 iBatis SQL Map 。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。 ∙ Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
∙ Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP 、Velocity 、Tiles 、iText 和 POI 。
● IOC 容器
Spring 设计的核心是 org.springframework.beans 包,它的设计目标是与 JavaBean 组件一起使用。这个包通常不是由用户直接使用,而是由服务器将其用作其他多数功能的底层中介。下一个最高级抽象是 BeanFactory 接口,它是工厂设计模式的实现,允许通过名称创建和检索对象。BeanFactory 也可以管理对象之间的关系。
BeanFactory 支持两个对象模型。
∙ 单态 模型提供了具有特定名称的对象的共享实例,可以在查询时对其进行检索。Singleton 是默认的也是最常用的对象模型。对于无状态服务对象很理想。
∙ 原型 模型确保每次检索都会创建单独的对象。在每个用户都需要自己的对象时,原型模型最适合。
bean 工厂的概念是 Spring 作为 IOC 容器的基础。IOC 将处理事情的责任从应用程序代码转移到框架。正如我将在下一个示例中演示的那样,Spring 框架使用 JavaBean 属性和配置数据来指出必须设置的依赖关系。
● BeanFactory 接口
因为 org.springframework.beans.factory.BeanFactory 是一个简单接口,所以可以针对各种底层存储方法实现。最常用的 BeanFactory 定义是 XmlBeanFactory ,它根据 XML 文件中的定义装入 bean 。
3.3.2 Tomcat互联网服务器技术
Tomcat 是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache 、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。
与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的 Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你
运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 这里的诀窍是,当配置正确时,Apache 为HTML 页面服务,而Tomcat 实际上运行JSP 页面和Servlet 。另外,Tomcat 和IIS 、Apache 等Web 服务器一样,具有处理HTML
页面的Tomcat 处理静态HTML 的能力不如Apache 服务器。目前Tomcat 最新版本为7.0.22 Released 。
本系统使用的TOMCAT
版本是6.0.22。
TOMCAT 的访问和编译流程大致如下图所示:
图3.3.2-1
3.3.3 MySQL数据库技术
MySQL 是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun 公司收购。而2009年,SUN 又被Oracle 收购。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL 的SQL “结构化查询语言”。SQL 是用于访问数据库的最常用标准化语言。MySQL 软件采用了GPL (GNU 通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL 作为网站数据库。
系统特性:
1.使用C 和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
2.支持AIX 、FreeBSD 、HP-UX 、Linux 、Mac OS、NovellNetware 、OpenBSD 、OS/2 Wrap、Solaris 、Windows 等多种操作系统
3.为多种编程语言提供了API 。这些编程语言包括C 、C++、Python 、Java 、Perl 、PHP 、Eiffel 、Ruby 和Tcl 等。
4.支持多线程,充分利用CPU 资源
5.优化的SQL 查询算法,有效地提高查询速度
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
7.提供TCP/IP、ODBC 和JDBC 等多种数据库连接途径
8.提供用于管理、检查、优化数据库操作的管理工具
9.可以处理拥有上千万条记录的大型数据库
10.支持多种存储引擎
与其他的大型数据库例如Oracle 、DB2、SQL Server等相比,MySQL 自有它的不足之处,如规模小、功能有限(MySQL Cluster 的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL 提供的功能已经绰绰有余,而且由于MySQL 是开放源码软件,因此可以大大降低总体拥有成本。
本系统采用的MySQL 版本是5.0.22。
MySQL 的架构和应用图如下所示:
图3.3.3-1
3.3.1运行环境
本次设计采用的软件环境为:
1. 平台:J2EE
2. 数据库:MySQL
3. WEB 服务器:Tomcat
4. 操作系统:Windows xp
5. 浏览器:google chrome
硬件环境:
服务器配置:
a.CPU :core i7 2600K
b. 内存:4096M
c. 硬盘:2T
4 主要模块详细设计
4.1系统体系结构
Shopmall 网上商城系统建立在SSH 的框架上,通过spring 整合系统功能模
块之间的关系。系统之间的关系通过三个配置文件来实现:
1) src/applicationContent.xml
2) web/WEB-INF/struts-config.xml
3) web/WEB-INF/web.xml
详细内容可见附件源代码。
系统的主界面如下图:
4.2主要子模块的详细说明
4.2.1用户注册和登录模块
注册页面,用户正确填写相关信息之后,后台自动创建新用户。
在登录页面中,填写的信息经过初步合法性验证之后,提交验证,如果合法,则判断用户权限,如果为管理员则转向管理员主页,如果为用户则转回主页,同时将用户信息保存在session 里以便在后来的权限验证中使用。如果不合法,则返回登录页面。
注册页面设计如下图:
登陆页面设计如下图:
管理员主页:
用户主页:
主要实现代码:
4.2.2 产品信息模块
产品信息模板可分为用户模块和管理员模块,用户只能查看你产品信息,管理员可以编辑或删除产品信息。管理员最新发布的产品信息会在主页上优先显示,产品详情页面有加入购物车按钮,让用户将产品快捷的加入购物车。
产品信息模块的主要后台代码和页面如下:
/src/org/zjz/shopmall/struts/action/ProductAction.java
/src/org/zjz/shopmall/struts/form/ProductForm.java
/src/org/zjz/shopmall/model/ Product.java
/src/org/zjz/shopmall/dao/ ProductDAO.java
/src/org/zjz/shopmall/dao/ ProductDAOImpl.java
/web/product/*.jsp
产品列表页面设计如下:
增加产品页面设计如下:
产品详情页面设计如下:
产品删除后直接跳回列表页面。
主要代码实现见附件源代码。
4.2.3 分类管理模块
产品必须归属于某个分类,因此本模块主要用于管理产品分类的信息,该模块只针对管理员,普通用户无权限操作。主要包含列表,编辑和删除功能。
分类列表页面设计如下:
增加分类页面设计如下:
编辑分类页面可以添加该分类的一些属性,如CPU, 内存,硬盘等等的参数均在此添加,页面设计如下:
在分类列表页面可直接删除分类信息。删除后直接跳转回列表页面。
4.2.4 购物车模块
用户通过产品详情页面的加入购物车链接,可以将自己想买的产品加入购物车,并在购物车中编辑产品数量。
购物车列表页面设计如下:
通过“去结算”链接可以到达下订单页面。 主要代码时间如下:
4.2.5 订单模块
用户通过购物车选择自己需要的产品和数量之后,可以提交订单,在订单页面上,用户需要填写自己的收货信息。提交订单成功之后,用户可以查看订单的详细情况,而管理员则可以编辑订单信息,让订单的状态改变。
填写订单页面设计如下:
订单提交成功后,可查看订单列表。设计如下:
点击订单号可以查看订单详情,同时可以添加反馈信息,页面设计如下:
在用户提交完订单后,管理员可以查看订单列表,编辑订单信息等。当管理员将订单状态修改为“已发货”时,需要填写物流信息。
订单列表页面设计如下:
订单编辑页面设计如下:
物流信息填写页面:
代码实现请看附件源代码。
4.2.6 优惠信息模块
网站管理员可以根据不同的节日添加优惠信息,优惠信息模块同样具备增删改查的功能。
优惠列表页面:
增加优惠信息页面:
编辑优惠信息页面:
删除优惠信息后直接跳转回优惠信息列表。
4.2.7 反馈信息模块
用户可能对某个订单有意见,这时候可以通过订单详情页面输入反馈信息,提交后管理员就可以通过反馈信息模块查看到这些信息。反馈信息只能查看,不能删除或编辑。
反馈信息列表页面:
反馈详情页面:
4.2.8 物流信息模块
该模块可以查看已发货订单的物流信息。当订单的状态发生改变时,该物流信息将会被删除。物流信息模块只有查看功能。
列表页面设计如下:
4.2.9 用户信息模块
该模块是针对管理员开发的,可以实现对用户信息的查看和编辑功能,当删除用户时,如果该用户有未成交或未关闭的订单,系统将提示无法删除。 用户信息列表页面设计如下:
编辑用户信息页面设计如下:
删除用户的提示:
代码实现请参考附件源代码。
5使用说明书
5.1运行环境简介
运行环境简介:
硬件环境要求:
服务器端:一台配置为512M 内存,CPU 为 800MHZ,硬盘容量为80G 的微机.
服务端:奔腾以上的微机处理器 软件环境要求: 1.服务器端:
a. 前台编译环境:Tomcat b. 数据库:MySQL
d. 操作系统为:Windows xp 2. 客户端
操作系统使用Windows9X/2000/NT/XP
浏览器:IE,Firefox,Chrome
6 软件测试
在开发大型软件系统的过程中,需要面对错综复杂的问题,人的主观认识不可能完美无缺,因此,在软件生存周期的每个阶段都不可避免地会产生错误。在软件生命周期的每个阶段都不可避免地回产生差错。我们力求在每个阶段结束之前通过严格的技术审查,尽可能早地发现并纠正差错。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。
软件测试是为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了至今为止尚未发现的错误的测试。
与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前
一个步骤地继续。大型软件系统通常由若干个子系统组成,每个子系统又由许多模块组成。因此,大型软件系统的测试基本上有下述几个步骤组成:
1、模块测试:在这个测试过程中所发现的往往是编码错误和详细设计的错误。
2、子系统测试:这个步骤着重测试模块的接口。
3、系统测试:在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。
4、验收测试:在这个测试步骤中发现的往往是系统需求说明书中的错误。
对于以上的几个步骤,分别要完成功能测试、强度测试及性能测试、可用性测试等。
5、功能测试:测试是否满足开发要求,是否能够提供设计所描述的功能,是否用户的需求都得到满足。功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。例如:在登录注册模块的测试中,针对要求输入合法和不合法的用户名及口令进行测试,反复几次,若无错误,则保证基本正确。
6、强度测试及性能测试:测试系统的能力最高实际限度,即软件在一些超负荷情况下功能实现的情况。如要求软件某一行为的大量重复、输入大量的数据或大数值数据、对数据库大量复杂的查询等。测试软件的运行性能,这种测试常常与强度测试结合进行,需要事先对被测软件提出性能指标,如计算的精度、记录的精度、响应的时限和恢复时限等。
7、可用性测试:测试用户是否能够满意使用。具体体现为操作是否方便,用户界面是否友好等。 因为在软件编辑时听取了用户的意见。因此,用户界面的设计上并没有太大的问题。
7 结束语
本次毕业设计到此已经顺利结束,在整个设计的过程中,可谓酸甜苦辣样样皆有,每时每刻都让我有新的体验,新的感受,新的收获,现在回想起过去的点点滴滴,感慨良多。通过这次的毕业设计, 我学到了很多。在
大学这几年内我学习了很多的编程语言,但始终处于理论知识的掌握阶段,并没有真正应用于实践,所以对知识的掌握还不够全面和熟练。通过这次设计我感觉到编程经验是在实践过程中不断积累起来的。回想这一个月是艰苦的一个月,也是收获的一个月。我不仅系统的学习了ASP 技术,而最重要的是树立了正确的意识,积累了经验, 尤其是指导老师给我们的细致的指导, 让我学到了跟多的相关知识. 通过这次设计我发现工作过程中遇到困难的时候要学会换一个角度去思考这个问题。在设计的过程中,遇到过很多的问题,有时候一个问题要调试好久,这些问题有一些是技术上的,还有一些是方法上的,还有一些是策略上的,对于不同的问题要采用不同的解决方案,这个解决方案行不通的要换另一个方案来解决,从另一个不同的角度去审视这个问题,一定可以得到一些全新的认识,我觉得很有收获的第三点就是不论做什么是要有不怕困难的精神,要有持之以恒的毅力,无论做什么事情都不可能一帆风顺,顺顺利利的,都要遇到很多或大或小的困难,如果一遇到困难就选择退步,那么就永远不会成功,永远也不可能达到自己的目标。
总体说来,在这次一个学期的毕业设计中,我学到了很多在课堂内学不到的知识。整个开发的过程对我来说是一次能力真正提高的过程;是将以前所学知识充分利用的过程;是一次将理论应用于实践的过程。我觉得这次毕业设计是一次很有收获的实践.
参考文献
[1] 王珊 萨师煊. 《数据库系统概论》[M].北京:高等教育出版社,2007.11.
[2] (美)Bunck Woody 著 顾小波 译. 《SQL Server 2005》[M]. 北京:清华大学出版社,2007.1.
[3] 龙马工作室. 《ASP+SQL Server》人民邮电出版社2003.6.
[4] 王慧芳 毕建权. 《软件工程》 浙江大学出版社 2007.2
[5] 丁宝康. 《数据库原理》[M] . 北京:经济科学出版社, 2000.3.
[6] Shari L Pfleeger.Software Engineering Theory and Practice[M]. Second Edition. Prentice Hall, 2000.
[7] (美) Allen,C.,Chatwin,S ,Creary,C.A. 《关系数据库和SQL 编程》[M].北京:清华出版社
[8] 《SQL Server2000实用培训教程》[M].北京:清华大学出版社,2003.
[9] 苗雪兰. 《数据库系统原理及应用教程》[M].北京:机械出版社,2004.3.
[10] 石志国 尹浩 薛为民. 《ASP 精解案例教程(修订本) 》[M].北京:清华出版社,2006.11.
[11] 郭瑞军主编.ASP 数据库开发实例精粹 [M]. 电子工业出版社,2005,120-150.
[12] 赵池龙、杨林. 《实用软件工程》(第2版) [M].北京:电子工业出版社,2006.7.
[13] 廖信彦主编.Active Server Pages应用大全[M]. 清华大学出版社,2000,50-60.
[14] 赵松涛 《中文版SQL Server2000 应用及实例集锦》 人民邮电出版社 2002
[15] 黄雷主编.ASP+HTML+Dreamveaver+Access开发动态网站实例荟萃[M]. 机械工业出版社,2006,250-285.