资源描述:
《网上购物商城系统的毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
网上购物商城系统的毕业论文目录摘要…………………………………………………………………………………………(1)前言…………………………………………………………………………………………(2)第1章开发技术简介及环境配置………………………………………………………(4)1.1开发技术简介………………………………………………………………………(4)1.1.1JSP简介……………………………………………………………………(4)1.1.2Servlet简介…………………………………………………………………(4)1.1.3MySql简介…………………………………………………………………(5)1.1.4MyEclipse简介……………………………………………………………(6)1.2开发环境的配置…………………………………………………………………(7)1.2.1JDK的安装与配置…………………………………………………………(7)1.2.2Tomcat的安装与配置……………………………………………………(7)第2章需求分析…………………………………………………………………………(9)2.1需求分析…………………………………………………………………………(9)2.2可行性分析………………………………………………………………………(9)第3章总体设计………………………………………………………………………(11)3.1系统功能模块……………………………………………………………………(11)3.1.1前台模块…………………………………………………………………(11)3.1.2后台模块…………………………………………………………………(12)3.2数据库设计………………………………………………………………………(12)3.2.1系统概述…………………………………………………………………(12)3.2.2数据库表设计……………………………………………………………(13)3.3主要业务流程分析………………………………………………………………(16)第4章详细设计………………………………………………………………………(18)4.1前台功能模块……………………………………………………………………(18)4.1.1用户注册模块……………………………………………………………(18)4.1.2用户登陆模块……………………………………………………………(18)4.1.3商品展示模块……………………………………………………………(19)2 4.1.4商品详情模块……………………………………………………………(20)4.1.5购物车模块………………………………………………………………(20)2 4.1.4订单页面模块……………………………………………………………(21)4.2后台功能模块…………………………………………………………………(21)4.2.1后台登陆模块……………………………………………………………(21)4.2.2商品管理模块……………………………………………………………(22)4.2.3用户管理模块……………………………………………………………(22)4.1.4订单管理模块……………………………………………………………(23)第5章系统评价,测试与维护………………………………………………………(24)5.1系统评价…………………………………………………………………(24)5.2系统测试…………………………………………………………………(24)5.3系统维护…………………………………………………………………(25)总结……………………………………………………………………………………(26)致谢……………………………………………………………………………………(27)参考文献…………………………………………………………………………………(28)附录………………………………………………………………………………………(29) 基于JSP的网上购物商场系统的设计与开发摘要:本论文研究的内容就是网上商城系统的具体功能及实现。近年来计算机技术的发展已经非常成熟,网络已经深入千家万户。网络在各行各业的发展中占据了重要位置,网上购物这几年更是风靡。普通的购物已经不能满足人们的消费。网上购物以其诸多优势,获得人们的青睐。本系统实现了商品查询、商品管理、商品显示、购物车、订单管理、用户管理等功能。基本上实现了网上购物商城的基本功能和购物流程。其开发主要包括:数据库的建立,前台Web页面设计,后台管理。本系统采用MySql数据库和Tomcat服务器实现。关键词:网上商场,JSP,MySql数据库OnlineShoppingSystemBasedOnJSPAbstract:TheresearchcontentsofthisthesisisthespecificfunctionandrealizationoftheOnlineShopping。Inrecentyearsthedevelopmentofthecomputertechnologyhasbeenverymature,networkhasalreadygonedeepintothousandsofhouseholds。Thenetworktakesanimportantpositioninthedevelopmentofallwalksoflife,Onlineshoppingispopularinrecentyears。Theordinaryshoppinghasbeenunabletomeetthepeople'sconsumption。Onlineshoppingtoitsmanyadvantages,getthefavourofpeople。Toquerythecommodities,commoditymanagement,commoditydisplay,shoppingcart,ordermanagement,usermanagement,etc。Basicallyrealizedthebasicfunctionsofonlineshoppingmallandtheshoppingprocess。Itsdevelopmentmainlyincludes:theestablishmentofthedatabase,Webpagedesignatthefrontdeskandbackgroundmanagement.ThissystemUSEStheMySqldatabaseandTomcatserverimplementation.KeyWord:onlineShopping,JSP,MySqldatabase 前言随着信息技术的不断发展和Internet互联网技术的日益普及,人们越来越意识到电子商务对国家经济、企业管理和个人生活所带来的巨大影响。它满足企业、商人和消费者对提高产品和服务的质量、加快服务速度、降低费用等方面的需求,也帮助企业和个人通过网络查询和信息检索为企业下一步的发展方向提供支持。借助电子商务,企业和个人,企业和企业可以通过网络进行交易和全过程的服务。电子商务代表着未来贸易方式的发展方向,其应用和推广将给社会和经济带来极大的效益。具有强大生命力的现代电子交易手段己越来越被人们所认识,发达国家在这方面有很多年的发展历史,发展中国家也正在加紧制定总体发展战略,大力促进电子商务在国民经济各个领域的应用,力争在越来越激烈的国际竞争中占据有利的地位。因此,对于网上购物技术的研究和实现,以及搭建一个实用的网上商店是很重要的。无论在国内还是在国外,电子商务都还处于起步阶段。最近几年电子商务得到了迅速的发展。尽管各个国家具体情况不同,但是基于对国家经济发展的预测,各国政府都很重视电子商务,并且积极地发展电子商务。在发达国家,电子商务的发展非常迅速,通过Internet进行交易己成为一种潮流。基于电子商务所连带出的商品交易方案、电子结账方案和信息安全方案等,已逐步成为国际信息技术市场竞争的焦点。随着电子商务的日益发展,产生了虚拟银行、网络营销、网上购物、网络广告等新兴信息产业,从侧面反应了电子商务正在对社会和经济产生着深刻的影响。在电子商务过程中,通过人与电子通讯方式的结合,极大地提高了商务活动的效率,减少了不必要的中间环节。同时,电子商务的发展也将转变政府的行为。在电子商务逐渐变的流行的时代里,当企业应用电子商务进行经营,银行实现金融电子化,以及消费者实现网上消费的同时,也将对政府管理行为提出新的要求,国外在这方面有很好的法律法规加以约束,防止商业欺诈行为。国内在这方面做的就没有国外的好,没有一定的规范加以约束,我们经常可以看到一些消费者在网上购买的东西和实际不一样,发现上当后我们也无能为力。在国外,XML技术已经在电子商务领域里得到广泛应用。由于它具有自描述性、内容与显示相分离、独立于平台等特点,并且提供了一套跨平台、跨网络、跨程序语言的数据描述方式,已逐渐成为科学与业务应用中数据表示及Web应用中数据交换的标准格式。 同时,国内外对Java技术的研究已经形成了热潮,纷纷研究如何利用JavaBean+JSP(JavaServerPages)架构及其相关工具来开发功能强大的新型应用程序。相对而言,国内的研究工作要滞后一些。主要表现在国内大部分的研究仍停留在较单一的层面上,单纯研究如何以JSP生成动态网页,对于如何将其与数据库技术及XML技术结合,生成真正的电子商务方案的研究却比较少,而很多国外的资料中已经在研究如何利用.NET技术生成真正的电子商务方案。为此,用JSP技术来实现一个网上商店是很有必要的。网上购物以其方便,快捷,高效,高选择性等优点,迅速得到了广大网友的喜爱与青睐,现在的网上购物已经非常普及。本系统设计就是为了满足广大网友的这些需求,改变传统的交易模式,通过互联网完成查看商品,购买商品等完成网上交易。方便消费者,同时对商家的商品信息进行管理,便于商家的商品数据分析。本系统为消费者提供了网上浏览商品,登陆,注册,搜索商品,加入购物车,购买商品。满足消费者的网上购物的基本活动,极大的方面了用户。为商家提供了,管理注册用户,管理商品信息,增加、删除商品等功能。从商家的方面考虑,为商家节约了成本,方便了管理。 第1章开发技术简介及环境配置1.1开发技术简介1.1.1JSP简介JSP即Java Server Page,是Sun公司推出的动态网页技术标准图1-1JSP的流程图JSP的特点:(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVABEANS组件来实现复杂商务功能。 1.1.2Servlet简介Servlet是在服务器上运行的小程序。这个词是在Javaapplet的环境中创造的,Javaapplet是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。Servlet的主要功能在于交互式的浏览和修改数据,生成动态Web内容。它的执行过程:客户端发生请求到服务端;服务端讲请求信息发送到Servlet;Servlet生成响应内容并将其传给服务器,响应内容动态生成,通常取决于客户端的请求;服务器将响应返回给客户端;Servlet的优点:(1)功能强大在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。(2)可移植性好Servlet用Java编写,ServletAPI具有完善的标准。因此,为IPlanetEnterpriseServer写的Servlet无需任何实质上的改动即可移植到Apache、MicrosoftIIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet。(3)节省投资不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。1.1.3MySql简介MySQL名字的来历:MySQL是一个小型关系型数据库管理系统MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL的特性:(1)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性; (2)支持AIX、FreeBSD、HP-UX、Linux、MacOS、Novell Netware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统; (3)为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等; (4)支持多线程,充分利用CPU资源; (5)优化的SQL查询算法,有效地提高查询速度; (6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名; (7)提供TCP/IP、ODBC和JDBC等多种数据库连接途径;(8)提供用于管理、检查、优化数据库操作的管理工具;(9)可以处理拥有上千万条记录的大型数据库。1.1.4MyEclipse简介MyEclipse,是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate。在结构上,MyEclipse的特征可以被分为7类:(1)JavaEE模型 (2)WEB开发工具 (3)EJB开发工具 (4)应用程序服务器的连接器 (5)JavaEE项目部署服务 (6)数据库服务 (7)MyEclipse整合帮助 对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。1.2开发环境配置1.2.1JDK的安装与配置(1)下载JDK并安装。(2)进行JDK的环境变量的配置:第一步:右击“我的电脑”,点击“属性”:第二步:选择“高级”选项卡,点击“环境变量”:第三步:在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH,若已存在则点击“编辑”,不存在则点击“新建”:第四步:JAVA_HOME设为JDK的安装路径(如C:ProgramFilesJavajdk1.6.0_10),此路径下包括lib,bin,jre等文件夹;Path使得系统可以在任何路径下识别java命令,设为:%JAVA_HOME%bin;%JAVA_HOME%jrebinCLASSPATH为java加载类(classorlib)路径,只有类在classpath中,java命令才能识别,设为:.;%JAVA_HOME%lib;设置完成后在cmd中输入java-version出现java的版本信息,证明jdk安装成功。1.2.2Tomcat的安装与配置(1)Tomcat简介Tomcat服务器是一个免费的开放源代码的Web应用服务器。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。(2)Tomcat的安装下载并安装tomcat7.0。进入bin目录,双击startup.bat执行文件后启动Tomcat服务器,打开浏览器,键入http://localho st:8080,如果成功进入到Tomcat服务器的主页面,则表示安装成功。1.3数据库环境配置在Oracle中文网站http://www.oracle.com/cn下载MySql并安装。下载MySql的JDBC驱动程序,把它放在开发路径的WebRootWEB-INFlib下面即可。 第2章需求分析2.1需求分析系统的实际应用就是为广大的网民提供一个高效,快捷,方便,实惠的网上购物环境。电子商务发展非常迅速,人们追求的是简捷、方便、省时,通过网上购买商品,不必再像以前一个去到处逛街,坐在电脑前就可以买到称心的商品,符合人们的需求。本系统的关键是在具备基本功能的基础上要保证操作简单,界面美观,同时还需要考虑交易的安全性。其基本功能是,用户能够通过该系统浏览商品信息,以及进行购物,而管理员要能对网站做必要的管理,因此必须要有针对用户和管理员的前台用户操作功能和后台管理员操作功能。其中前台操作功能包括:(1)普通用户可以通过系统浏览商品;可以查看所有的商品及类别。(2)普通用户可以通过系统搜索商品(按类别、价位、日期等);用户可以通过类别,名称,价位,排行榜搜索商品(3)普通用户可以注册成为会员;用户可以注册成为会员,并可以登陆进入网站实现更多功能。(4)会员可以浏览和检索商品;(5)会员可以加入购物车;购物车必须会员才可以操作,(6)会员可以浏览并且管理自己的购物车;(7)会员可以购买商品;(8)会员可以浏览并且管理自己的订单;(9)会员可以管理自己的信息:(i)修改密码(ii)修改送货地址(iii)修改联系方式等2.2可行性分析 随着计算机的普及,Internet的发展,网购已经成为人们生活消费中一大部分。一个网上购物系统可以为消费者提供软件条件,使其可以更加快捷,方便,实惠的选择商品,而商家也可以更好的管理商品,节约成本,两全其美。所以构建一个网上购物商城在运行上是完全可行的。此次开发使用JSP作为开发语言,采用Servlet技术,Tomcat7.0座位Web服务器,采用MySql作为数据库,这几种技术及工具的方便,快捷,免费大大的缩短了开发的时间,减少了开发的成本。并且使得开发更方便安全,更利于后期的维护。网上购物服务系统给人们带来了方便,成为一种全新的商务模式。因此,不用出门就可以在家购物的新时尚已经到来,构建一个网上购物服务系统在经济上是完全可行的。综上所述:开发本系统是完全可行的。 第3章总体设计3.1系统功能模块功能模块图:系统总体分为前台模块和后台模块。前台模块包括:注册会员,浏览商品,搜索商品,购买商品,购物车管理等。后台模块包括:登陆模块,用户管理,商品管理,订单管理等。图3-1系统功能模块图3.1.1前台模块(1)用户注册:用户可以以游客身份浏览本系统,但是不可以购买商品。可以通过注册成为会员。注册时,填写基本信息,包括:姓名,性别,家庭住址,电子邮件,邮编等,方便购买商品后邮寄。系统检测输入的合法性。(2)用户登录:注册为会员后可登录系统进行购买,购物车,个人信息等相关操作,系统向服务端发送请求并判断用户名密码是否正确。(3)商品浏览:用户进入系统首页后可以浏览商品以及商品详细信息,选中商品可添加至购物车或者直接购买。(4)商品查询:用户可在搜索栏中输入商品名称,类别等进行搜索查询自己想要的商品信息。 (5)购物车:先判断用户是否登陆,没有登陆会跳转到登陆界面,已经登录,则进入购物车。购物车保存用户放入购物车中的商品,显示用户购买商品的名称,单价,数量以及总价等信息。用户可对购物车中商品修改购买数量,删除某个商品或清空购物车。(6)生成订单:让用户确认商品信息,确认提交订单。并且核对用户收货地址,练习电话等信息。最后是呢工程订单(7)个人信息管理:用户登陆后可以进入个人信息管理。可以查看修改自己的信息。3.1.2后台模块(1)后台登陆模块:后台管理员可以选择权限来登陆后台。(2)商品管理:管理员可对商品进行管理:添加新的商品,修改商品信息,或者删除商品。(3)用户管理:管理员可以对用户进行管理:添加用户,删除用户,修改用户信息。(4)订单管理:管理员可以对订单进行查看,删除等操作。(5)管理员权限管理:管理员有不同权限的管理员,可以添加管理员,可以对其他的管理员进行管理。3.2数据库设计3.2.1系统概述数据库是整个系统的最重要的部分,当下网络环境下,数据才是最重要的。实现数据的完整性,安全性,便捷性就成为了系统的重要部分。数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。本系统的前端开发是使用JSP技术,通过Servlet进行逻辑控制和数据库连接,而后台数据库采用的是MySql数据库。Mysql数据库具有内存占用少,方便快捷,安全可靠,存储速度快,兼容性好等优点。应用MySql作为后台数据库为系统的开发提供了强有力的支持,并对以后软件的运行提供了坚实的基础,因此,我们采用了MySql作为后台数据库。关系型数据最好的设计模型是ER模式,首先设计局部的ER模式,然后把各局部的ER模式综合成一个全局模式。 总体ER图:图3-2总体E-R图3.2.2数据库表设计表1商品信息表:(Goods)表4-1商品信息表中文字段名英文字段名数据类型主键外键允许空商品IdGoods_noInt(4)是商品名称Goods_namevarchar(200)商品图片Goods_imagepathvarchar(200)商品单价Goods_Pricenumber商品类别Kind_nonumber是商品重量Goods_weightint(4)是 表2商品种类表:(Kind)表4-2商品种类表中文字段名英文字段名数据类型主键外键允许空商品种类IdKind_Idnumber是商品种类名Kind_Namevarchar(200)表3购物车表:(Category)表4-3购物车表中文字段名英文字段名数据类型主键外键允许空类别IdUserIdnumber是是商品编号GoodsIdvarchar(50)是商品数量Countnumber总价TotalPricenumber表4会员表:(User)表4-4会员表中文字段名英文字段名数据类型主键外键允许空会员IdUserIdnumber是用户名Namevarchar(50)密码Pwdvarchar(50)性别Sexvarchar(50)联系地址Addressvarchar(200)邮箱Emailvarchar(50)联系电话Phonevarchar(50)会员总消费Sumnumber会员积分pointnumber 表5管理员表:(Admin)表4-5管理员表中文字段名英文字段名数据类型主键外键允许空管理IdAdminIdnumber是管理员名AdminNamevarchar(50)密码AdminPwdvarchar(50)表6订单表:(Order)表4-6订单表中文字段名英文字段名数据类型主键外键允许空订单编号OrderIdnumber是订单日期OrderDatedatetime(8)用户IdUserIdnumber是订单价格TotalPricenumber表7订单明细表:(OrderDetail)表4-7订单明细表中文字段名英文字段名数据类型主键外键允许空订单明细号OrderDetailIdnumber是订单编号OrderIdnumber是商品编号GoodsIdnumber是商品数量Countnumber总价格TotalPricenumber表8库存表:(Store)表4-8库存表中文字段名英文字段名数据类型主键外键允许空库存编号StoreIdnumber是商品编号GoodsIdnumber是库存数量Countnumber 3.3主要业务流程用户注册模块业务流程:图3-3用户注册流程图用户登陆模块业务流程:图3-4用户登陆流程图 购物流程:图3-5购物流程图 第4章详细设计4.1前台功能模块4.1.1用户注册模块用户注册是为游客(没有用户名的)所设计的。用户在没有注册之前可以浏览本站商品,搜索本站商品,但是不可以购买商品。1.用户注册包括:用户名,密码,性别,电子邮件等。2.注册成功后,才可以登录系统购买商品,如图5-1:图4-1注册页面4.1.2用户登陆模块用户注册成功后,可以使用刚刚注册的用户名密码登陆网站。用户登录后系统会对用户名及密码进行核对,如果正确,用户就登陆成功,就可以购买商品。 图4-2登陆页面4.1.3商品展示模块(主页面)这是网站的主页面,用户不登陆也可以进入该页面,登陆成功后,页面会显示用户的信息。此页面主要是显示一些主要商品的图片、名称、价格等信息,用户可以输入商品名称,种类等进行搜索,也可以直接点击商品查看商品细节信息。图4-3商品展示页面 4.1.4商品详情模块当你点击一个商品的链接,可以进入商品的详情页面,这里会相识一个商品的所有具体信息,你可以选择直接购买这个商品或者将此商品加入购物车。图4-4商品详情页面4.1.5购物车模块用户喜欢的商品可以选择放进购物车里,可以在购物车里产看用户选择的商品的名称价格以及购物车商品的总价,用户可以对购物车中的商品进行操作,修改购买数量,删除商品,清空购物车,提交购物车等。图4-5购物车页面 4.1.6订单页面模块在购物车进行结算以后,就会生成订单,订单会显示订单号、收货人、地址、电话等信息。点击查看详情就可以进入订单详情页面。图4-6订单界面图4-6查看订单界面4.2后台功能模块 4.2.1后台登陆模块后台管理员可以通过用户名密码登陆到后台页面,后台登陆处理程序和前台登陆程序基本类似。图4-7后台登陆界面4.2.2商品管理模块管理员对商品进行管理,可以添加心得商品,可以删除已经添加的商品。也可以修改已添加的商品的信息。图4-8商品管理界面4.2.3用户管理模块后台可以对已经注册的用户信息进行管理,可以查看到所有的用户信息,可以在用户信息后面点击修改、删除来操作用户的信息。还可以通过用户名,条件查询到用户。 图4-9用户管理界面4.2.4订单管理模块后台可以查看所有的已交易的订单,也已删除修改订单,也可以通过查询查找需要的订单。图4-10订单管理界面 第5章系统评价,测试与维护5.1系统的自我评价本系统实现了网上购物商城的基本功能,可以很好的完成网上购物的一系列流程。而且方便快捷,高效。页面也很美观,大方。对整个系统的框架设计合理,大大提升了系统的整体性与耦合性。也方便了后期的进一步开发与维护。但是系统缺乏创新性,没有自己过多的新增功能,没有特别突出的特点。仅有前台的购物功能和后台的管理功能。可以增加一些功能,来丰富系统,提升系统的实用性。例如增加商品的销量排行榜,方便用户查看畅销商品。增加商品的交易评价,方便用户判断是否购买此商品。系统还缺乏安全性:数据库中的用户名密码都没有通过加密的方式保存,很容易被窃取。5.2系统测试软件测试有两种方法:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常运行。前一种方法称为黑盒测试,后一种方法称为白盒测试。一般的软件系统测试过程基本上都是从小功能,小模块一步一步测试。并不是所有的代码都比那些完成后才测试(1)模块测试每个模块完成一个子功能,把每个模块作为一个单独的实体来测试。模块测试的目的是保证每个模块作为一个单元能正确运行,所以模块测试通常又称为单元测试。在这个测试步骤中所发现的往往是编码和详细设计的错误。(2)子系统测试子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试。模块相互间的协调和通信是这个测试过程中的主要问题,因此,这个步骤着重测试模块的接口。(3)系统测试系统测试是把经过测试的子系统装配成一个完整的系统来测试。在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能。在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。(4)验收测试 验收测试把软件系统作为单一的实体进行测试,测试内容与系统测试基本类似,但是它是在用户积极参与下进行的,而且可能主要使用实际数据进行测试。验收测试的目的是验证系统确实能够满足用户的需要,在这个测试步骤中发现的往往是系统需求说明书中的错误。本系统的调试工作正是按照上面的步骤一步步测试下来的,当某个模块编译完成之后都要进行调试,这样做的好处是可以及时的发现问题并及时的对其进行解决,避免了当某个模块都设计好后才进行调试,从而出现问题不易解决且做大量的重复性工作。当所有的功能模块定义完成之后,将它们连接成一个子系统。这样使得各模块必须经过相互协调,使得系统整个界面更为直观,方便用户的使用。对于运行的模块,不仅要注意局部,而且要照顾全局进行总体调试。如果调试过程中发现局部影响了全局,则需在最小限度修改的原则上做合理的调整。如果是某个模块的问题,则单独进行修改,是其适应全局的需要。这样多次的反复调试,不断改进,整个系统才可确定为初步正确。5.2系统维护系统的维护主要分为纠错性维护、适应性维护、完善性维护和预防性维护。(1)纠错性维护:由于本系统测试不可能揭露系统中存在的所有错误,所以当系统运行到一定时期后会暴露出系统内隐藏的错误,这时要及时纠正。(2)适应性维护:这里指为了使本系统更好的适应环境的变化而进行的维护工作。一方面由于计算机技术的飞速发展,原来的系统不能适应新的软硬件,另一方面,应用对象也在不断的发生变化,将导致系统不能适应新的应用环境,因此,有必要对系统进行调整,以保证系统时时都能满足用户要求。(3)完善性维护:要根据用户不断提出的新要求来不断扩充原有的系统的功能。(4)系统程序和数据的维护又包括程序的维护,数据文件的维护,代码的维护等等。维护是系统在使用中应对系统注意,并加以维护,维护包括:(i)系统运行的日常维护(ii)系统运行情况的记录(iii)系统程序和数据的维护 总结本文研究了一种基于数据关联规则的网上购物系统。其开发主要包括后台数据库的建立、后台管理以及前台页面的Web设计。系统使用Jsp语言为开发工具,结合MySql建立数据连接关系。利用其提供的各种组件,首先在短时间内建立数据库,然后,对数据库进行分析与建立页面,不断修正与改进,直到功能基本实现的可行系统。系统采用了B/S结构,以Web为中心,客户端通过浏览器访问Web以及与Web相连的后台数据库,为电子购物商城的管理提供了较好的工具。本文通过本系统设计与开发,从而得出下列结论:(1)学习一门新技术,最重要的是实践,只有多动手才能尽快掌握它。(2)一个系统的开发,经验是最重要的,经验不足,就难免会有许多考虑不周之处。(3)要想吸引更多的用户,系统的界面必须要美观、友好,功能要健全。不过由于经验不足,我设计的图形界面比较简单。只是对基本功能进行了开发。(4)本次开发,我参考了很多本系统的例子,吸取了一些别的本系统的长处,对自己的毕业设计进行了完善,但是还有很多的不足之处,有待以后进一步学习。本文所制作的系统界面友好、使用灵活、操作简单、功能齐全、表现方式独特,已基本具备了成熟的技术理论。(5)由于时间仓促,本次设计由我完成本系统的制作,对我这样一个JSP新手而言所制作的模块还有不完善的地方。由于是独立完成,在毕业设计的过程遇到了很多的困难,我求教了不少老师和同学,在这个过程中让我体会到了,一个团队的重要性。经过2个月的努力终于完成这次毕业设计,这次毕业设计不仅系统的复习了以前的知识,而且在设计中遇到很多难题通过查找资料,询问老师、同学,让我学会更多的知识。为以后的工作打下坚实的基础。总体来说,本系统的设计具有良好的扩展能力并且便于维护,使用较为简便,对于管理人员来说是较好的管理工具,但是由于时间和其他方面的限制原因,系统还有很多方面需要改进。我相信在以后的学习生活中定能一步一步的去克服这些,使电子商城系统功能越来越完善。 致谢本文是在导师田智鲲老师的严格要求和精心指导下完成的。从论文的开题到资料收集、专业课基本功的扎实,理论的建立、每一个程序、模块的完成以及最后论文的成稿都凝聚着恩师的心血。田老师,治学态度严谨,对待学生耐心,工作态度积极。给予我很大的帮助,让我在完成看论文阶段学到了很多东西。在此感谢田老师的耐心指导和悉心教诲。感谢在写论文阶段帮助过我的同学,感谢他们的耐心讲解。感谢大学期间所有耐心传授给我知识,教会我做人的道理的老师们。是你们的教诲与帮助让我学会了很多知识、技能,明白了很多处事的方法和做人的道理。使得我的大学生活丰富而美好。在此表示衷心的感谢。 参考文献[1]李刚.《疯狂java讲义》.电子工业出版社.2012年1月[2]李兴华.《Java开发实战经典》.清华大学出版社.2009年8月[3]孙卫琴,李洪成.《Tomcat 与 JSP Web 开发技术详解》.电子工业出版社,2003年6月:1-205 [4]姜承尧.《MySQL技术内幕:InnoDB存储引擎》.机械工业出版社.2011年1月[5]BruceEckel.《JSP编程思想》. 机械工业出版社,2003年10月:1-378 [6]FLANAGAN.《JSP技术手册》. 中国电力出版社,2002年6月:1-465 [7]孙一林,彭波.《JSP数据库编程实例》. 清华大学出版社,2002年8月:30-210 [8]LEE ANNE PHILLIPS.《巧学活用HTML4》.电子工业出版社,2004年8月:1-319 [9]飞思科技产品研发中心.《JSP应用开发详解》.电子工业出版社,2003年9月:32-300[10]王珊.数据库系统简明教程[M].高等教育出版社,2007.[11] 王云波.网上购物—电子商务的宠儿[J].电子商务世界,2007,25(16):205-215. [12](英)格雷恩 . Ajax实战——实例详解.人民邮电出版社 2008 [13]李刚.Struts2.1权威指南——基于WebWork核心的MVC开发.电子工业出版社,2009年[14]李刚.整合STRUTS+HIBERNATE+SPRING应用开发详解.电子工业出版社,2007 [15]夏昕,曹晓钢,唐勇.深入浅出Hibernate.电子工业出版社,2005[16]SystematicReviewofGuidelinesforthePhysicalManagementofOsteoarthritis,PeterJ.Larmer;;NicholasD.Reay;ElizabethR.Aubert;;PaulaKerstenArchivesofPhysicalMedicineandRehabilitation[17]BillWagner.EffectiveC#:50SpecificWaystoImproveYourC#.2003[18]JimArlow,IIaNeustadt.UML2andtheUnifiedProcess:PracticalObject-OrientedAnalysisandDesign,SecondEdition.2006[19]赛奎春.JSP信息系统开发实例精选[M].北京:机械工业出版社,2006,66-72.[20]陈锡年.网上商城实务.机械工业出版社.2012-1-1 附录:1.用户注册模块核心代码:核心代码:/**获取已经存在的用户名称以防止重名*/publicbooleangetName(Stringname){Stringsql="selectu_namefromtb_userwhereu_name=?";Connectionconn=null;PreparedStatementst=null;ResultSetrs=null;booleanb=false;try{conn=DBHelper.getConnection();st=conn.prepareStatement(sql);st.setString(1,name);rs=st.executeQuery();//是存在此用户的if(rs.next()){b=true;}else{returnb;}}catch(SQLExceptione){e.printStackTrace();}finally{DBHelper.close(rs,st,conn); }returnb;}/***添加用户以及用户注册*@paramname*@parampwd*@paramgender*@paramphoto*@paramemail*@return*/publicbooleanadd(Useruser){Stringsql="insertintotb_user(u_id,u_name,u_password,u_mail)values(u_id.nextval,?,?,?)";Connectionconn=null;PreparedStatementpst=null;ResultSetrs=null;booleanresult=false;if(user==null||user.equals("")||user.getName().equals("")||user.getPassword().equals("")||user.getMail().equals("")){returnresult;}try{conn=DBHelper.getConnection();pst=conn.prepareStatement(sql);pst.setString(1,user.getName());pst.setString(2,user.getPassword());pst.setString(3,user.getMail());pst.executeUpdate();result=true;}catch(SQLExceptione){e.printStackTrace();}finally{DBHelper.close(rs,pst,conn);}returnresult;}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");HttpSessionsession=request.getSession();PrintWriterout=response.getWriter();Stringuname=request.getParameter("uname"); Stringupwd=request.getParameter("password");Stringuemail=request.getParameter("email");UserDaoud=newUserDao();booleanbed=ud.getName(uname);if(bed){out.print("");}Useru=newUser();u.setName(uname);u.setPassword(upwd);u.setMail(uemail);booleanb=ud.add(u);if(b==false){out.print("");}else{session.setAttribute("user",u);out.print("");}}2.用户登陆模块核心代码:/***用户的登录的方法验证用户信息*@paramname用户名*@parampwd密码*@return用户信息*/publicUserlogin(Stringusername,Stringuserpwd){Stringsql="select*fromtb_userwhereu_name=?andu_password=?";Connectionconn=null;PreparedStatementst=null;ResultSetrs=null;Useru_login=null;try{conn=DBHelper.getConnection();st=conn.prepareStatement(sql);st.setString(1,username);st.setString(2,userpwd);rs=st.executeQuery();if(rs.next()){ u_login=newUser();u_login.setId((int)rs.getDouble(1));u_login.setName(rs.getString(2));u_login.setPassword(rs.getString(3));u_login.setMail(rs.getString(4));u_login.setAdd(rs.getString(5));u_login.setSex(rs.getString(6));u_login.setPhone(rs.getString(7));u_login.setSum(rs.getDouble(8));u_login.setPoint((int)rs.getDouble(9));}}catch(SQLExceptione){e.printStackTrace();}finally{DBHelper.close(rs,st,conn);}returnu_login;}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");HttpSessionsession=request.getSession();Stringusername=request.getParameter("username");Stringuserpwd=request.getParameter("userpwd");Stringgid=request.getParameter("id");PrintWriterout=response.getWriter();UserDaoud=newUserDao();Useru=ud.login(username,userpwd);System.out.println("username:"+username+"pwd:"+userpwd);if(null!=u&&!u.equals("")&&u.getName().equals(username)&&u.getPassword().equals(userpwd)){session.setAttribute("user",u);System.out.println(gid);if(gid==null||gid.equals("")){response.sendRedirect("Page.jsp");}else{GoodDaogd=newGoodDao();TbgoodsInfog=gd.getMessage(gid); session.setAttribute("g",g);response.sendRedirect("GoodShow.jsp");}}else{out.print("");}out.flush();out.close();}3.商品展示模块核心代码://所有的商品的集合publicListgetAll(){ListGoods=newArrayList();Stringsql="select*fromtb_goods";try{conn=DBHelper.getConnection();st=conn.prepareStatement(sql);rs=st.executeQuery();while(rs.next()){TbgoodsInfog=newTbgoodsInfo();g.setGoods_no(rs.getString(1));g.setGoods_name(rs.getString(2));g.setGoods_price(rs.getFloat(3));g.setKind_no(rs.getInt(4));g.setGoods_path(rs.getString(5));g.setGoods_kucun(rs.getInt(6));g.setGoods_weight(rs.getFloat(7));Goods.add(g);}}catch(SQLExceptione){e.printStackTrace();}finally{DBHelper.close(rs,st,conn);}returnGoods;} publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//首页数据可共享用applicationServletContextapplication=this.getServletContext();Tb_goodsDAOtbd=newTb_goodsDAO();Listtbgoodses=tbd.getAll();application.setAttribute("tbgoodses",tbgoodses);//session.setAttribute("user",tbgoodses);response.sendRedirect("Page.jsp");}4.商品详情页面核心代码://获得一件商品的详细信息publicTbgoodsInfogetMessage(Stringno){Stringsql="select*fromtb_goodswheregoods_no="+no;TbgoodsInfog=null;try{conn=DBHelper.getConnection();st=conn.prepareStatement(sql);rs=st.executeQuery();while(rs.next()){g=newTbgoodsInfo();g.setGoods_no(rs.getString(1));g.setGoods_name(rs.getString(2));g.setGoods_price(rs.getDouble(3));g.setKind_no(rs.getInt(4));g.setGoods_path(rs.getString(5));g.setGoods_kucun(rs.getInt(6));g.setGoods_weight(rs.getFloat(7));}}catch(SQLExceptione){e.printStackTrace();}finally{DBHelper.close(rs,st,conn);}returng;}protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8");GoodDaogd=newGoodDao();//获取前一个页面的商品id//intid=Integer.parseInt(request.getAttribute("id").toString());Stringid=request.getParameter("id");System.out.println(id);TbgoodsInfog=gd.getMessage(id);/*HttpSessionsession=request.getSession();session.setAttribute("g",g);Stringname=g.getGoods_name();floatprice=(float)g.getGoods_price();intkind=g.getKind_no();Stringpath=g.getGoods_path();floatweight=(float)g.getGoods_weight();intkucun=g.getGoods_kucun();*///数据可共享用applicationServletContextapplication=this.getServletContext();application.setAttribute("g",g);response.sendRedirect("GoodShow.jsp");}}5.购物车模块核心代码://向购物车增加商品publicvoidaddgoods_mark(Shopping_cardcartItem){Stringsql=null;sql="insertintoshopping_card"+"(u_id,goods_no,goods_count)"+"values(?,?,?)";try{conn=DBHelper.getConnection();st=conn.prepareStatement(sql);st.setInt(1,cartItem.getU().getId());st.setString(2,cartItem.getG().getGoods_no());st.setInt(3,cartItem.getCount());st.executeUpdate();}catch(SQLExceptione){System.err.println("增加的商品id已经存在,所以只加数量");Sql="sql="updateshopping_cardsetgoods_count=goods_count+"+cartItem.getCount()+"whereu_id="+cartItem.getG().getGoods_no();try{conn=DBHelper.getConnection();st=conn.prepareStatement(sql); st.executeUpdate();}catch(SQLExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}/*try{conn=DBHelper.getConnection();st=conn.prepareStatement(sql);st.executeUpdate();}catch(SQLExceptione){e.printStackTrace();}finally{DBHelper.close(rs,st,conn);}*/}finally{DBHelper.close(rs,st,conn);}}//查看购物车publicArrayListseek(Useru){//创建一个购物项集合,来存放购物车的信息;ArrayListcartses=newArrayList();Stringsql="select*fromshopping_cardwhereu_id=?";try{conn=DBHelper.getConnection();st=conn.prepareStatement(sql);st.setInt(1,u.getId());rs=st.executeQuery();while(rs.next()){Shopping_cardcartItem=newShopping_card();intu_id=rs.getInt(1);Stringgoods_no=rs.getString(2);intcounts=rs.getInt(3);GoodDaogd=newGoodDao();cartItem.setG(gd.getMessage(goods_no));cartItem.setU(u);cartItem.setCount(counts);cartses.add(cartItem);}}catch(SQLExceptione){e.printStackTrace();}finally{DBHelper.close(rs,st,conn);}returncartses; }//删除购物车的商品publicvoiddeleteCartItem(Useru,TbgoodsInfog){Stringsql="deletefromshopping_cardwhereu_id=?andgoods_no=?";try{conn=DBHelper.getConnection();st=conn.prepareStatement(sql);st.setInt(1,u.getId());st.setString(2,g.getGoods_no());st.executeUpdate();}catch(SQLExceptione){e.printStackTrace();}finally{DBHelper.close(rs,st,conn);}}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");HttpSessionsession=request.getSession();Useru=(User)session.getAttribute("user");if(u==null){System.out.println("用户没登陆,不能加购物车或购买");response.sendRedirect("login.jsp");}else{System.out.println(u.getName());Stringop=request.getParameter("op");GoodDaogd=newGoodDao();Stringgoodsid=request.getParameter("id");if(op.equals("add")){intcount=Integer.parseInt(request.getParameter("textnum"));StringaddName=request.getParameter("cartItem");StringbuyName=request.getParameter("buy");System.out.println(goodsid+"t"+count);TbgoodsInfog=gd.getMessage(goodsid);//搭建购物项信息,录入数据库中Shopping_cardcartItem=newShopping_card();cartItem.setG(g);cartItem.setU(u);cartItem.setCount(count);Shopping_cardDAOscd=newShopping_cardDAO();scd.addgoods_mark(cartItem); //再从数据库中得到该用户所有的添加到购物车里的购物项信息显示出来ArrayListcarts=scd.seek(u);floattotal_count=0;for(Shopping_cardsc:carts){total_count+=sc.getCountPrice();}session.setAttribute("total",total_count);session.setAttribute("cartses",carts);response.sendRedirect("goodsCart.jsp");}if(op.equals("delete")){Shopping_cardDAOscd=newShopping_cardDAO();TbgoodsInfog=gd.getMessage(goodsid);scd.deleteCartItem(u,g);ArrayListcarts=scd.seek(u);floattotal_count=0;for(Shopping_cardsc:carts){total_count+=sc.getCountPrice();}session.setAttribute("total",total_count);response.sendRedirect("goodsCart.jsp");}}}6.订单模块核心代码:publicbooleanaddOrder(MyCarBomcb,StringuserId){booleanb=true;try{ct=newConnDB().getConn();ps=ct.prepareStatement("insertintoorders(userid,totalPrice)values(?,?)");ps.setString(1,userId);ps.setInt(2,mcb.getAllPrice());inta=ps.executeUpdate();if(a==1){//取出order最后一条orderid就是刚刚添加的订单ps=ct.prepareStatement("selectmax(orderid)fromorders");rs=ps.executeQuery();intorderId=0;if(rs.next()){orderId=rs.getInt(1);}ArrayListal=mcb.showMyCar();Statementsm=ct.createStatement(); for(inti=0;i