• 1.30 MB
  • 2022-04-22 13:50:25 发布

网上花店系统的设计与实现毕业论文.doc

  • 36页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'网上花店系统的设计与实现网上花店系统的设计与实现毕业论文目  录1绪论11.1研究背景11.2MVC的发展现状11.3研究的目的和意义21.4本文研究内容及可行性分析22系统总体分析32.1系统概述32.2系统分析与设计原则32.3系统需求分析42.3.1系统数据流图分析52.3.2系统E-R图63系统设计63.1系统基本结构63.2系统体系结构设计73.3系统数据库设计83.3.1数据库的设计原则83.3.2数据库连接设计93.3.3数据库表格设计103.4系统主要功能模块设计173.4.1用户注册模块设计173.4.2商品查询模块设计183.4.3购物车管理模块设计183.4.4定单管理模块设计183.4.5后台管理模块设计184系统关键技术描述与实现204.1开发工具和相关技术简介204.2系统主要功能模块的实现204.2.1注册模块的实现214.2.2登录模块的实现22 网上花店系统的设计与实现4.2.3商品查询模块的实现234.2.4购物车模块的实现244.2.5定单模块的实现264.3系统关键技术及实现284.3.1用户控件的使用284.3.2数据库连接池技术285系统测试295.1概述295.2测试方法295.3测试技术305.4测试用例设计305.4.1登录模块的测试用例设计305.4.2注册模块测试用例设计31结论及不足32参考文献33致谢34 网上花店系统的设计与实现1绪论1.1研究背景电子商务,就是在网上开展商务活动。电子商务有两种模式,一种是B2C模式,一种是B2B模式,传统的电子商务一般是B2C模式,就是用户直接在网站上进行购物,这种模式便于对网站进行管理,开发起来更加的简便,便于维护。B2B模式不仅仅使用户能够在网上进行交易,而且用户还能够在网上开店,实现网上电子交易,大大降低了开实体店的成本。目前我国最流行的B2B网站有淘宝网,当当网,京东商城等。但是,由于现实生活中B2B的开发比较复杂,而且对于小型的网上花店而言只需要B2C模式便可,所以我选择了B2C模式。电子商务的出现,给千万的家庭带来了不可忽略的影响,它使我们的生活发生了巨大的变化。随着信息化时代的到来,信息技术的飞速发展,许多的人越来越意识到电子商务对一个国家经济方面、企业管理和个人生活所带来的巨大影响。它满足企业、商人和消费者对产品的高质量和高服务、降低成本等方面的需求,也帮助企业和个人通过网络查询和信息检索为企业下一步的发展方向提供支持。借助电子商务,企业和个人,企业和企业可以通过网络进行交易和全过程的服务。面对中国加入WTO,参与国际竞争及中国鲜花业传统落后,独立分散的营销方式,我们在经营中将网络技术与鲜花传统销售市场之间,进行完美的结合;从而减少了流通环节,降低了交易成本,突破了时空限制,节省了订购,支付和配送时间,因此我们可以介入电子商务网络鲜花快速市场。争取建立一个可采用无人工座席电话交易系统及互联网交易平台。而且本系统采用了MVC模式进行开发,它的好处就是:一、低耦合性,二、快速的部署,三、可维护性,四、有利于软件工程化管理。1.2MVC的发展现状MVC(Model-View-Controller,模型-视图-控制器)模式是国外用的较多的一种设计模式,它源于传统的面向对象语言SmallTalk-80。它是设计交互式应用时广泛采用的一种设计模式,也是J2EE蓝图推荐的在开发Web应用时使用的方法。利用MVC设计模式开发Web应用,可以将表现逻辑和业务逻辑分离,分为表现层和业务层,构建可复用的软件系统框架,同时简化了软件开发,大大减少了开发时间,缩短了维护周期,提高了软件的性能和可维护性,达到提高软件质量的目的,成为基于Web应用和服务的首选。33 网上花店系统的设计与实现MVC(Model-View-Controller,模型-视图-控制器)是目前广泛流行的软件设计模式。早在70年代,IBM就推出了著名的Sanfronscisico项目计划,即MVC设计模式的研究。最初,MVC只是一种软件设计界面模式,微软的MFC基础类库也遵循了MVC的思想。近年来,随着J2EE的成熟,MVC正在成为J2EE平台上推荐的一种设计模式。随着网络Web应用的快速增加,MVC在系统设计框架中大量采用,如Struts。采用MVC设计,由CraigR.McClanahan于2000年创建,2001年7月Struts1.0发布,现最高版本为1.2。其他的如Spring、WebWork、JSF等都是基于MVC模式的Web应用框架。可见MVC模式无疑是Web应用设计框架中广泛采用的一种非常先进的思想,它为理解分析应用模型时提供最基本的分析方法,为构造产品提供清晰的设计框架,为软件工程提供规范的依据。1.3研究的目的和意义21世纪是个信息高速发达的时代,尤其以网络的高速发展为代表。鲜花的买卖业务与我们的日常生活密切相关,长辈的生日,节日的祝福及问候,对心爱的人表达爱意,探望病患等的时候。越来越多的人们选择用鲜花来表达自己的情谊!本系统正是利用了网络这个很好的平台为顾客提供方便,不用出门,只需打开电脑上网就可以很方便的完成鲜花的选购,做到足不出户就可以完成一切。基于JSP+JavaBean的网上花店的总体设计目标是为注册用户提供方便的网上订购鲜花的功能。本系统分为前台和后台管理两部分,注册用户登录前台后,可以浏览或购买网上花店中的所有商品,可以把喜欢的商品添加到购物车中,对商品进行一系列的操作,管理员登陆到后台,可以对商品以及商品的一切信息,包括商品的类型,商品节日,商品颜色等进行一系列的操作,还可以对用户进行一系列的操作。1.4本文研究内容及可行性分析伴随着互联网日益发展的今天,网络购物已经非常的普及了,许多大型的网站每年都会有上亿的成交量,其中比较出名的网络购物网站有:易趣,淘宝,京东商城等,这些电子商务网站大多是综合的商场,网络电子商品种类繁多,包罗万象。购物网站只销售单一商品,例如,华储网只销售图书。本文中的网上花店系统只负责对鲜花的销售,可用于鲜花产品的实时发布以及企业产品数据管理,前台用户可通过页面浏览,查询和订购商品,后台管理员可以管理产品价格,简介,图片等多类信息。其主要共能有:商品浏览、查询、购买、户注册和登录以及后台管理等。另外,可行性研究阶段的主要任务是在系统初步调查的基础上,对新系统是否能够实现和值得实现等问题做出判断,避免在花费了大量的人力和物力之后才发现系统不能实现或新系统投入使用后没有任何实际意义而引起的浪费,对新系统可行性的分析,要求用最小的代价在尽量短的时间内确定系统是否可行。(1)技术可行性分析网上花店系统的开发是一项复杂的系统工程。为了保证系统开发成功,必须采用结构化的系统开发方法,并研究出一些符合结构化标准的开发方法。33 网上花店系统的设计与实现这些方法主要用于指导开发者运用结构化的发放对系统进行全面化的分析,以便更好的开发出此系统。(2)运行可行性分析随着计算机知识的普及和推广,越来越多的人掌握了计算机的基本使用方法和技能。随着Internet的发展,用户对于网络、WINDOWS等环境下的软件使用比较熟悉,对于新鲜事物,用户表现出极大的兴趣和热情。(3)经济可行性分析网上花店系统给人们的生活带来了极大的方便,成为现代人们生活中一种不可或缺的商业模式。基于以上的分析,网上花店系统在经济上是完全可行的。就本系统而言,随着电脑的普及,为消费者在网络上进行购物提供有利的条件。而一个网上花店系统可以为消费者提供软件条件,这样消费者便可以足不出户的买商品了。商家也可从中获得利润,两全其美。2系统总体分析过去人们喜欢到当地的实体店去购买鲜花,因为受时间和地点的限制,因此很多人并不一定能够买到符合自己心意的鲜花。这时候,网上花店系统的开发就具备了充分的必要性,它能够解决人们因为时间和地点二不能够满意的购物这样额问题。它的出现给人们的生活带来了极大的方便,使人们足不出户,呆在自己的家里便可以享受购物的舒畅,而且还享受送货上门的方便,所以网上花店的出现是应世而生,应运而生。2.1系统概述我们建立一个网上花店系统的目标是为了更加有效率的进行鲜花的采购,使顾客可以在网上花店中更加轻松的选择自己喜欢的鲜花,并完成鲜花交易。此系统与易趣,淘宝网络商城不同,易趣和淘宝主要的销售模式是B2B模式,主要由网上开店形成的,因此,商品的拍卖竞价形式来实现的,商品也是由商场中其他注册用户维护的。而此系统中的商品是由系统管理员进行维护,而且商品都标有标价,注册用户不用竞价,就如同在实体的商城中购物一样,用户只要喜欢该产品而又有购买意愿的话都可以通过本系统来实现网上购物。本系统以为用户服务的宗旨为目标,突出自己的特色,主要以鲜花销售为主。一个典型的网上购物系统主要包括用户注册,用户登录,商品浏览,商品搜索,下定单和后台管理等几个模块。2.2系统分析与设计原则通过对网上花店系统的分析,为了达到预期目标,在进行开发和设计的过程中需要遵循以下几个原则:33 网上花店系统的设计与实现(1)实用性原则。真正为网上购物系统的实际工作服务,按照需求的轻重缓急,合理设计网上花店系统。(2)可靠性原则。要求数据库设置合理安全。防止出现用户信息泄露,账号被盗的现象,防止SQL注入式攻击,利用服务器验证控件要求客户必须输入合法的字符,不要使用SQL字符串来判断,要具有一定的防黑功能。(3)友好性原则。使用网上花店系统的用户相当一部分对计算机知识了解很少,所以系统操作上要求简单方便,便于用户掌握。(4)可扩展性原则。采用具有开放的标准和接口,便于系统向更大的规模和功能扩展。(5)优化处理原则。使页面下载速度尽可能的快,防止用户因等待时间过长而关掉网站。2.3系统需求分析需求分析的任务是通过详细调查现实世界要处理的对象,充分了解系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变。在这里我们需要了解用户有什么样的具体要求和对系统性能的要求。首先对现有系统进行分析,现有系统是信息的重要来源。分析已有系统的功能和实现,从而确定新系统的设计目标和模型。由于条件有限,调研主要是在网上进行。即通过在网上已有的商品网站注册成会员来了解其具备的功能。(1)从用户角度来看用户通过在线注册成为网站的用户,可以获得以下功能:商品浏览,购买商品,查看订单,查看商品简介、购物等。(2)从网站的角度看商品搜索功能:按商品名(模糊)查询;订单处理功能:查看订单管理员管理:查看用户信息,并根据用户信息和用户订单对商品进行派发,对网站的所有信息进行维护。商品浏览:商品名、数量、价格和图片等。(3)系统性能分析对数据的安全性、完整性要求是用户信息保密,只有管理员可见(可查),但不能任意修改。确保网上支付安全。商品信息、用户信息必须保证其完整性。防止恶意删改。对系统性能需求主要是准确性和可靠性高系统便于维护和升级,数据库访问效率高。2.3.1系统数据流图分析数据流图(DataFlowDiagram):简称DFD,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法,33 网上花店系统的设计与实现它以图形的方式描绘数据在系统中流动和处理的过程,是描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流程图包括:(1)指明数据存在的数据符号,这些数据符号也可指明该数据所使用的媒体;(2)指明对数据执行的处理符号,这些符号也可指明该处理所用到的机器功能;(3)指明几个处理和(或)数据媒体之间的数据流的流线符号;(4)便于读、写数据流程图的特殊符号。在本文中,通过对系统基本功能的数据流动进行分析,得到系统的顶层数据流图如图2-1所示:图2-1系统顶层数据流图系统第一层数据流图如图2-2所示:图2-2系统第一层数据流图2.3.2系统E-R图对于一个大型的复杂的数据库系统,为描述和理清数据之间的关系采用E-R图,在此基础上通过规范化得到关系模型。根据对网上花店系统33 网上花店系统的设计与实现的分析,该系统E-R关系图如图2-3所示:图2-3E-R关系图通过图2-3可以看到:用户信息实体与网友评论实体是一对多的关系,因为一个用户可以发表多条评论,用户信息实体与定单实体也是一对多的关系,一个用户可以下多个定单,当然也可以查询多个产品。定单和定单明细也是一对多的关系。3系统设计3.1系统基本结构由于B/S结构具有较好的独立性、可伸缩性和安全性,所以本系统采用B/S进行开发。利用IIS架构Web服务器,用于连接客户端和数据库服务器。对于客户端发出的需要对数据库进行访问的请求,Web服务器负责客户端与数据库服务器的网络通信,并将相关数据嵌入返回给客户端的Web页面;对于客户端发出的不需要对数据库进行访问的请求,Web服务器将直接处理这些请求,并将最终生成的Web页面发往客户端浏览器。3.2系统体系结构设计对网上花店系统进行分析后,确定该系统分为两个主要功能模块:前台管理模块和后台管理模块。前台管理模块的主要功能包括用户注册,用户登录,购物车,定单查询,33 网上花店系统的设计与实现花的分类搜索等几个模块。后台主要包括用户账号管理、商品信息管理、商品分类管理,订单管理,系统信息管理等几个部分。系统功能模块图如图3-1所示:图3-1系统功能模块图前台显示的主要模块介绍如下:(1)商品显示:用于显示本网站所有的花的商品,供用户选择。(2)购物车:购物车用于保存当前登录用户在该网站保存的商品,以便用户结账。(3)商品定单:管理员根据用户订单的信息向用户发货。(4)商品搜索:通过输入用户名,快速查找所需要的产品。(5)用户注册:该模块提供用户管理个人信息以及为后续操作提供便利入口。后台管理主要模块介绍如下:(1)用户管理:对用户的信息进行管理。(2)商品信息管理:对商品的详细信息提供不定时的维护。(3)用户管理:包括对用户的管理和管理员自身的信息管理。(4)订单管理:对用户下的订单进行管理,根据订单信息给用户发货。(5)系统信息管理:对系统的信息进行维护。为了更具体说明系统整个实现过程的细节,可以使用流程图作以补充。本文给出了用户完成一次购物交易的整个流程如图3-2所示:33 网上花店系统的设计与实现图3-2网上花店系统购物流程图3.3系统数据库设计数据库设计与实现是系统开发中的一个重要的环节,一个结构合理的数据库可以提高系统的整体的运作效率,同时可以缩短系统的开发时间。3.3.1数据库的设计原则在数据库的设计中,本系统按照以下原则进行设计,以尽量满足系统的要求。(1)数据库中数据的可操作性数据库设计时注意保证在整个系统运行和业务操作过程中,数据库都能便于访问和查询,同时还需要考虑到要尽量节省数据库操作时的响应时间,尽可能的提高数据库对程序和业务请求的响应速度。(2)数据库设计的准确性和完整性数据库中数据的设计要满足程序设计的要求,对于程序中使用的数据和存储的数据内容,都有严格的数据和准确的数据类型与之对应,同时在数据库设计时要对关键数据进行详细的说明,以方便系统设计人员的开发工作。(3)数据库冗余性过多的冗余数据会大大增加数据库的工作量,降低数据库的响应时间和准确性。因此改善数据库性能的一个非常重要的方面就是减少或消除数据库中的冗余信息,要通过规范化处理使冗余数据减少。33 网上花店系统的设计与实现3.3.2数据库连接设计为了方便连接数据库,并且对数据库进行很好的管理,在设计数据库是采用了数据库连接池技术,在数据库连接中创建一个链接。创建的数据库连接池封装成一个JavaBean类DBPoolUtil.java,部分代码如下:privatestaticStringdbJdbc="jdbc:oracle:thin:@localhost:1521:orcl";privatestaticStringdbUser="lwkj";privatestaticStringdbPwd="123456";@SuppressWarnings("rawtypes")privatestaticClassdriverClass=null;privatestaticObjectPoolconnectionPool=null;publicDBPoolUtil(){}/***初始化数据源*/privatestaticsynchronizedvoidinitDataSource(){//驱动数据源if(driverClass==null){try{driverClass=Class.forName("oracle.jdbc.driver.OracleDriver");}catch(ClassNotFoundExceptione){e.printStackTrace();}}}创建完数据库之后,需要在Java中创建一个数据库连接类才能和数据库进行连接,如下所示:publicstaticConnectiongetConnection()throwsSQLException{try{Class.forName("oracle.jdbc.driver.OracleDriver");}catch(ClassNotFoundExceptione){e.printStackTrace();}DBPoolUtildb=newDBPoolUtil();Connectionconn=db.getDbConnection();33 网上花店系统的设计与实现returnconn;3.3.3数据库表格设计数据字典是系统中各类数据描述的集合,其中规定了每个字段的字段名称,数据类型,长度,主键等基本信息。对与本系统中出现的数据,用以下数据字典做详细描述。1.表名:TUSERTUSER表为用户基本信息表,用于存储用户的基本信息,包括用户编号id,用户名,密码,姓名,性别,出生日期,身份证号,手机号,住址。表结构如表3-1所示。表3-1用户基本信息表结构数据库编号:f1基表编号:1001基表英文名称:tuser基表中文名称:用户基本信息字段编号英文字段名中文字段名字段类型备注T1user_id用户编号NUMBER(6)primarykeyT2user_name用户名VARCHAR2(20)T3user_pass密码VARCHAR2(20)T4realname姓名VARCHAR2(20)T5user_sex性别CHAR(2)T6user_birth出生日期DATET7realid身份证号CHAR(18)T8user_tel手机号CHAR(11)T9user_addr住址VARCHAR2(20)说明:2.表名:ADMINADMIN表为管理员信息表,用于管理用户、商品等所有相关信息,包括编号id,用户名、密码,表的结构如表3-2所示。表3-2管理员信息表结构数据库编号:f2基表编号:1002基表英文名称:admin基表中文名称:管理员信息字段编号英文字段名中文字段名字段类型备注A1a_id管理员编号NUMBER(6)primarykeyA2a_name用户名VARCHAR2(20)A3a_pass密码VARCHAR2(20)33 网上花店系统的设计与实现说明:3.表名:GETINFOGETINFO表为收货人信息表,用于存储收货人信息,包括收货人id、用户id、收货人姓名、收货人手机号、收货住址等;表结构如表3-3所示。收货人信息表表3-3收货人信息表结构数据库编号:f3基表编号:1003基表英文名称:getinfo基表中文名称:收货人信息表字段编号英文字段名中文字段名字段类型备注G1getinfo_id收货信息编号NUMBER(5)primarykeyG2user_id用户编号NUMBER(6)NotnullG3getinfo_name收货人姓名VARCHAR2(20)G4getinfo_tel收货人手机号CHAR(20)G5getinfo_addr收货人地址VARCHAR2(200)G6getinfo_post邮编CHAR(6)说明:4.表名:BOOKLISTBOOKLIST表为授权表,用于存储订单信息,包括订单的id,用户id、收货人id等,表结构如表3-4所示。表3-4订单信息表结构数据库编号:f4基表编号:1004基表英文名称:booklist基表中文名称:订单信息表字段编号英文字段名中文字段名字段类型备注B1book_id订单编号NUMBER(5)primarykeyB2user_id用户编号NUMBER(6)NotnullB3getinfo_id收货信息编号NUMBER(5)B4book_time购买时间DATEB5send_time发货时间DATEB6get_time收货时间DATE说明:33 网上花店系统的设计与实现5.表名:MINGXIMINGXI表为订单明细表,用于存储订单明细,商品id、订单编号id等,表结构如表3-5所示。表3-5订单明细表结构数据库编号:f5基表编号:1005基表英文名称:mingxi基表中文名称:订单明细表字段编号英文字段名中文字段名字段类型备注M1mx_id订单明细编号NUMBER(5)primarykeyM2goods_id购买商品编号NUMBER(5)NotnullM3user_id订单编号NUMBER(6)NotnullM4good_num商品数量NUMBER(6)说明:6.表名:COMMENTSCOMMENTS表为用户评论表,用于存储用户评论,包括评论的id,用户编号、商品编号等,表结构如表3-6所示。表3-6用户评论表结构数据库编号:f6基表编号:1006基表英文名称:comments基表中文名称:评论表字段编号英文字段名中文字段名字段类型备注C1comments_id评论编号NUMBER(5)primarykeyC2user_id用户编号NUMBER(5)NotnullC3goods_id商品编号NUMBER(6)NotnullC4comments_info评论信息VARCHAR2(200)C5comments_time评论时间date说明:7.表名:STOREGOODSSTOREGOODS表为收藏商品信息表,用于存储收藏商品信息,包括收藏商品信息id,商品编号、用户编号、收藏时间等,表结构如表3-7所示。表3-7收藏商品信息表结构数据库编号:f733 网上花店系统的设计与实现基表编号:1007基表英文名称:storegoods基表中文名称:收藏商品信息表字段编号英文字段名中文字段名字段类型备注S1mx_id收藏编号NUMBER(6)primarykeyS2goods_id商品编号NUMBER(5)NotnullS3user_id用户编号NUMBER(6)NotnullS4good_num收藏时间DATA说明:8.表名:GOODSGOODS表为商品信息表,用于存储商品信息,包括ID,名称、价格,描述,库存,图片等,表结构如表3-8所示。表3-8商品详细信息表结构数据库编号:f8基表编号:1008基表英文名称:goods基表中文名称:商品详细信息表字段编号英文字段名中文字段名字段类型备注G1goods_id商品编号NUMBER(5)primarykeyG2goods_name名称VARCHAR2(20)G3goods_price价格NUMBER(5)G4goods_desc描述VARCHAR2(400)G5goods_allnum库存NUMBER(5)G6goods_pic图片varchar2(50)说明:9.表名:GOOD_USERGOOD_USER表为商品用途表,用于存储商品用途信息,包括用途编号,商品编号等,表结构如表3-11所示。表3-9商品用途表结构数据库编号:f9基表编号:1009基表英文名称:good_use基表中文名称:商品用途表字段编号英文字段名中文字段名字段类型备注33 网上花店系统的设计与实现G1use_id用途编号NUMBER(5)foreignkeyG2goods_id商品编号NUMBER(5)foreignkey说明:10.表名:GOOD_COLORGOOD_COLOR表为商品用途表,用于存储商品用途信息,包括用途编号,商品编号等,表结构如表3-10所示。表3-10商品颜色表结构数据库编号:f10基表编号:10010基表英文名称:good_color基表中文名称:商品颜色表字段编号英文字段名中文字段名字段类型备注G1color_id颜色编号NUMBER(5)foreignkeyG2goods_id商品编号NUMBER(5)foreignkey说明:11.表名:GOOD_FESGOOD_FESR表为商品用途表,用于存储商品用途信息,包括用途编号,商品编号等,表结构如图3-11所示。表3-11商品节日表结构数据库编号:f11基表编号:10011基表英文名称:good_fes基表中文名称:商品节日表字段编号英文字段名中文字段名字段类型备注G1fes_id节日编号NUMBER(5)foreignkeyG2goods_id商品编号NUMBER(5)foreignkey说明:12.表名:GOOD_FTYPEGOOD_FTYPE表为商品花材表,用于存储商品花材信息,包括编号,商品编号、花材编号、花材支数等,表结构如表3-12所示。表3-12商品花材表结构数据库编号:f11基表编号:10011基表英文名称:good_fes33 网上花店系统的设计与实现基表中文名称:商品颜色表字段编号英文字段名中文字段名字段类型备注G1good_ftype_id编号NUMBER(5)foreignkeyG2goods_id商品编号NUMBER(5)foreignkeyG3ftype_id花材编号NUMBER(5)foreignkeyG4Num花材支数NUMBER(7)说明:13.表名:USEFORUSEFOR表为用途表,用于存储用途信息,包括用途编号、用途名称等,表结构如表3-13所示。表3-13用途表结构数据库编号:f13基表编号:10013基表英文名称:usefor基表中文名称:用途表字段编号英文字段名中文字段名字段类型备注U1usefor_id用途编号NUMBER(5)primarykeyU2usefor_name用途名称varchar2(20)说明:14.表名:COLORCOLOR表为颜色表,用于存储颜色信息,包括颜色编号、颜色名称等,表结构如表3-14所示。表3-14颜色表结构数据库编号:f14基表编号:10014基表英文名称:color基表中文名称:颜色表字段编号英文字段名中文字段名字段类型备注C1usefor_id颜色编号NUMBER(5)primarykeyC2usefor_name颜色名称VARCHAR2(10)说明:15.表名:FTYPEFTYPE表为花材表,用于存储花材信息,包括花材编号、花材名称、花语编号等,表结构如表3-15所示。33 网上花店系统的设计与实现表3-15花材表结构数据库编号:f15基表编号:10015基表英文名称:ftype基表中文名称:商品颜色表字段编号英文字段名中文字段名字段类型备注F1ftype_id花材编号NUMBER(5)primarykeyF2ftype_name花材名称VARCHAR2(10)F3words_id花语编号NUMBER(5)Foreignkey说明:16.表名:FESTIVALFESTIVAL表为节日表,用于存储节日信息,包括节日编号、节日名称等,表结构如表3-16所示。表3-16节日表结构数据库编号:f16基表编号:10016基表英文名称:festival基表中文名称:节日表字段编号英文字段名中文字段名字段类型备注F1fes_id花材编号NUMBER(5)primarykeyF2fes_name花材名称VRCHAR2(20)说明:17.表名:FLOWERWORDSFLOWERWORDS表为花语信息表,用于存储花语信息,包括花语编号、花与描述等,表结构如表3-17所示。表3-17花语信息表结构数据库编号:f17基表编号:10017基表英文名称:flowerwords基表中文名称:花语信息表字段编号英文字段名中文字段名字段类型备注F1words_id花语编号NUMBER(5)primarykeyF2words_desc花语描述VARCHAR2(20)说明:33 网上花店系统的设计与实现18.表名:PRICE_REGIONPRICE_REGION表为花语信息表,用于存储花语信息,包括花语编号、花与描述等,表结构如表3-18所示。表3-18价格区间表结构数据库编号:f18基表编号:10018基表英文名称:price_region基表中文名称:价格区间表字段编号英文字段名中文字段名字段类型备注P1price_region_id价格区间编号NUMBER(6)primarykeyP2price_region_value1价格上限NUMBER(7)P3price_region_value2价格下限NUMBER(7)说明:3.4系统主要功能模块设计3.4.1用户注册模块设计只有成为网上花店系统电子商务网站的注册用户后,才能在网上花店系统的网站上购买商品,因此需要提供用户注册功能。用户可以注册账号。用户注册模块主要是提供给用户进入该系统的接口,当用户在浏览该网上花店系统网站的时候,如果他对本系统提供的商品感兴趣就可以下定单,如果此用户没有登陆或注册,将不能查看订单信息等。注册成功,可链接到该网站的主页。它的流程图如图3-3所示。图3-3注册模块流程图3.4.2商品查询模块设计商品查询模块是网上花店系统中比较重要的模块,它可以实现用户的产品查询功能33 网上花店系统的设计与实现,当用户想查找某个自己喜欢的商品,而他只记得商品的一部分信息,就可以通过这种方式对商品进行查询,比如:只记得商品的颜色、类型、用途等,这时候他就可以使用商品查询功能快速定位到该商品(如果有的话)。该页面提供很多的单选框按钮,可以按商品的用途、颜色、支数、花材等,添加条件进行查询,产品部分或全名等搜索条件,旁边有个按钮,当用户选完单选按钮时,系统将显示所有匹配产品,匹配产品由Web服务器控件来显示,显示产品的页面包括该产品的详细信息,购买按钮,购物车等功能。3.4.3购物车管理模块设计当客户没有登录系统时,不能进入购物车界面,将会自动进入登录界面登录系统。当显示购物车时,如果用户没有购买任何产品,购物车将是空的。如果用户想要买多件产品的话,可以点击购物车按钮,依次将这些产品加入购物车中,加入购物车里的产品,在用户推出登陆关闭浏览器时,将消失。购物车信息的存储时一次会话。3.4.4定单管理模块设计当用户购买商品时,系统自动生成订单,然后购买成功,用户登录进入系统以后,可以查看订单信息,流程如图3-4所示。图3-4生成定单流程图3.4.5后台管理模块设计一个商用的网站,其后台的管理的复杂度往往要远远大于前台。因为后台涉及到的方面很多,并且安全性问题也是一个不容忽视的问题。本系统的后台管理模块负责维护家电电子商务网站的正常运行,主要包括用户账号管理、产品管理、用户订单处理,留言管理和评论管理这几个部分。网站后台管理流程如图3-5所示。33 网上花店系统的设计与实现图3-5后台管理流程图(1)商品管理商品管理主要分几个方面。第一个是商品详细信息的管理,可以对商品的详细信息进行增加、修改、删除以及查询。第二个页面是商品信息添加页面,在这个页面上提供了一个表单供管理员添加商品的详细信息。第三个是商品修改信息页面,在这个页面上提供了大量的控件供后台管理员修改商品的详细信息。相对来说整个页面比较重要的功能是商品图片的上传功能,它可以对商品的图片进行上传。管理员在其中输入信息后,单击保存按钮可以将信息保存到数据库中。除了对商品的详细信息进行管理外,还可以对商品的用途、节日、花材、花语等进行增、删、改、查等管理。(2)定单管理管理员需要处理用户的订单以及查看用户订单。在该页面上管理员查看订单信息以及订单明细。(3)用户管理后台管理员可以查看用户的账号信息,可以删除用户。(4)收货信息管理后台管理员可以查看收货人信息。(5)评论管理后台管理员可以查看评论信息,可以删除评论。33 网上花店系统的设计与实现4系统关键技术描述与实现4.1开发工具和相关技术简介本系统采用的开发工具是MyEclipse,用JSP来进行前台页面的显示,利用MVC模式来进行本项目的开发,使项目的开发变得更加简单;服务器是tomcat7.0,此服务器性能稳定,技术稳定,而且免费,得到许多java爱好者的喜爱并得到部分软件开发商的认可;数据库是Oracle,利用Oracle数据的连接池技术能够很好的对数据库连接进行创建和管理。ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。Oracle数据库最新版本为OracleDatabase12c。Oracle数据库12c引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如OracleMultitenant可快速整合多个数据库,而AutomaticDataOptimization和HeatMap能以更高的密度压缩数据和对数据分层。这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c成为私有云和公有云部署的理想平台。4.2系统主要功能模块的实现图4-1家电电子商务网站主页33 网上花店系统的设计与实现网页中页面的风格至关重要,它要符合页面的内容及所要表达的主题。网上花店系统的主题定为用户与销售商进行交互的平台、向用户实时提供有关网站的各种动态信息,应着重突出其个性特色,因此选用了如图4-1所示的图片主页,在上面有登陆窗口,用户只要输入正确的用户名和密码就可登陆本系统进行相关操作。4.2.1注册模块的实现无论是否注册或登录,用户都可以浏览本网站提供的商品,但是想要购买本网站的商品,必须注册成为本网站的用户。注册相当于添加一个新的用户,下面将列出这部分代码,其部分程序如下:Stringsun=request.getParameter("username");Stringspass=request.getParameter("pass");Stringsname=request.getParameter("name");Stringssex=request.getParameter("sex");Stringsbirth=request.getParameter("birth");Stringsrealid=request.getParameter("realid");Stringstel=request.getParameter("tel");Stringsaddr=request.getParameter("addr");Tusert=newTuser();t.setUserName(sun);t.setUserPass(spass);t.setRealName(sname);t.setUserSex(ssex);t.setUserBirth(newDate());t.setRealId(srealid);t.setUserTel(stel);t.setUserAddr(saddr);TuserDaotd=newTuserDao();td.add(t);其注册页面如图4-2所示:33 网上花店系统的设计与实现图4-2登录页面图4.2.2登录模块的实现用户注册之后,在不登录的情况下,用户可以浏览本网站的商品信息,登录之后用户才可以购买本网站的产品,登录功能比较重要,如图4-3所示。图4-3登录页面图它的核心代码如下:Stringuname=request.getParameter("username");Stringpass=request.getParameter("password");Tuseruser=newTuserDao().login(uname,pass);Stringcookie=request.getParameter("box");if(user==null){response.sendRedirect("shop_to_index");}else{HttpSessionsession=request.getSession();session.setAttribute("Tuser",user);if(cookie!=null){33 网上花店系统的设计与实现Cookienamecookie=newCookie("Uname",uname);namecookie.setMaxAge(7*24*60*60);response.addCookie(namecookie);Cookiepasscookie=newCookie("Upass",pass);passcookie.setMaxAge(7*24*60*60);response.addCookie(passcookie);}response.sendRedirect("shop_to_index");}4.2.3商品查询模块的实现图4-4商品查询页面图用户可以浏览本网站的商品信息,可以根据商品的用途、价格、颜色、节日、花材等查询商品的信息,如图4-4所示,它的核心代码如下://关联查询StringBuildersql=newStringBuilder();sql.append("selectdistinctg.goods_idfromgoodsgleftjoingoods_useforguong.goods_id=gu.goods_id");sql.append("leftjoingoods_colorgcong.goods_id=gc.goods_id");sql.append("leftjoingoods_fesgfong.goods_id=gf.goods_id");sql.append("leftjoingoods_ftypegftong.goods_id=gft.goods_idwhere1=1");33 网上花店系统的设计与实现//根据花材查询if(ftypeId!=0){sql.append("andftype_id="+ftypeId);}//根据用途查询if(useForId!=0){sql.append("andusefor_id="+useForId);}//根据颜色查询if(colorId!=0){sql.append("andcolor_id="+colorId);}//根据节日查询if(fesId!=0){sql.append("andfes_id="+fesId);}//根据价格区间查询if(priceRegionId!=0){PriceRegionDaoprd=newPriceRegionDao();PriceRegionpr=prd.get(priceRegionId);sql.append("andgoods_pricebetween"+pr.getPriceRegionValue1()+"and"+pr.getPriceRegionValue2());}ResultSetrs=stmt.executeQuery(sql.toString());while(rs.next()){list.add(get(rs.getInt("goods_id")));}4.2.4购物车模块的实现先来看看现实生活中的购物车,到你走进超市时,就会推个购物车;当你看到喜欢的商品时,就可以将其放到购物车中;当然,在结账之前,如果你不想要某件商品,可以把它去掉。其实网上的购物车就是模仿实际生活中的购物车进行实现的。在此模块中用Session对象来保存要购买33 网上花店系统的设计与实现的商品,操作起来速度快,而且比较简单。另外如果用户选购了商品但还没有购买,那么购物车中的商品也会随着用户关闭浏览器而自动消失。它的页面如图4-5所示:图4-5购物车页面它的核心代码如下:intgoodsId=Integer.parseInt(request.getParameter("goodsid"));intgoodsNum=Integer.parseInt(request.getParameter("goodsnum"));GoodsDaogd=newGoodsDao();Goodsgoods=gd.get(goodsId);HttpSessionsession=request.getSession();//从session里面获取购物车ListshopCart=(List)session.getAttribute("SHOPCART");//定义一个购物车集合if(shopCart==null){//判断购物车是否为空shopCart=newArrayList();GoodsShopgoodsShop=newGoodsShop();goodsShop.setGoods(goods);goodsShop.setGoodsNum(goodsNum);shopCart.add(goodsShop);33 网上花店系统的设计与实现session.setAttribute("SHOPCART",shopCart);}elseif(shopCart.size()==0){GoodsShopgoodsShop=newGoodsShop();goodsShop.setGoods(goods);goodsShop.setGoodsNum(goodsNum);shopCart.add(goodsShop);session.setAttribute("SHOPCART",shopCart);}else{booleanflag=false;for(inti=0;iblist=newArrayList();Connectionconn=null;try{conn=ConnectionUtil.getConnection();Statementst=null;ResultSetrs=null;st=conn.createStatement();//Stringsql="selectbl.*frombooklistbljointusertonbl.user_id=t.user_idwheret.user_name=""+name";Stringsql="select*frombooklistblwherebl.user_id=(selectuser_idfromtuserwhereuser_name=""+name+"")";rs=st.executeQuery(sql);while(rs.next()){blist.add(get(rs.getInt("book_id")));}rs.close();st.close();conn.close();}catch(SQLExceptione){e.printStackTrace();}returnblist;33 网上花店系统的设计与实现4.3系统关键技术及实现4.3.1用户控件的使用在java中有时为了提高代码的重用性,会将一段代码封装起来,用作公共使用,这样不仅提高了代码的使用效率,更减少了编码时间,控件也是在基于这个原理的基础上的,由于网站部分具有通用性,每次编写都要重复某一部分,可以将其做为用户控件供自己调用。用户控件主要有四种用途:(1)分解复杂的用户界面元素,并将它们转化成可重用的组件。(2)创建适合单个用户的个性化动态页面。(3)促进子页面级别的输出缓存。(4)减少工作量。本系统我们编写了用户控件,实现页面的可重用性,用户个性化导航控件和商品分类导航控件的效果如图4-7和图4-8所示。图4-7导航控件图4-8商品分类导航控件4.3.2数据库连接池技术创建数据库连接池,便于对数据库进行管理:动态Web站点往往用数据库存储的信息生成Web页面,每一个页面请求导致一次数据库访问。连接数据库不仅要开销一定的通讯和内存资源,还必须完成用户验证、安全上下文配置这类任务,因而往往成为最为耗时的操作。如果某个基于数据库的Web应用只需建立一次初始连接,不同页面请求能够共享同一连接,就能获得显著的性能改善。数据库连接池的功能:1)从连接池获取(或创建)可用连接。2)把连接返回给连接池。3)在系统关闭时释放所有资源,关闭所有连接。由于本系统涉及的页面较多,以上只列出其中主要的部分,也是实现本系统的关键,只有解决了上面的问题才有可能很好的实现本系统。DBConnectionPool部分功能代码如下:初始化数据源initDataSource();33 网上花店系统的设计与实现//如果连接池为空if(connectionPool!=null){ShutdownPool();}try{connectionPool=newGenericObjectPool(null);ConnectionFactoryconnectionFactory=newDriverManagerConnectionFactory(dbJdbc,dbUser,dbPwd);PoolableConnectionFactorypoolableConnectionFactory=newPoolableConnectionFactory(connectionFactory,connectionPool,null,null,false,true);Class.forName("org.apache.commons.dbcp.PoolingDriver");PoolingDriverdriver=(PoolingDriver)DriverManager.getDriver("jdbc:apache:commons:dbcp:");driver.registerPool("dbpool",connectionPool);}catch(Exceptione){e.printStackTrace();}5系统测试5.1概述随着web应用的增多,新的模式解决方案中以web为核心的应用也越来越多,很多公司各种应用的架构都以B/S及web应用为主,但是有关WEB测试方面的内容并没有相应的总结,因此,在开发网上花店系统时,对web应用程序的测试方法和采用的测试技术进行总结。测试方法尽量涵盖web程序的各个方面,测试技术方面在继承传统测试技术的技术上结合web应用的特点。5.2测试方法1.界面测试很多人认为这是测试中最不重要的部分,但是恰恰相反界面测试是相当重要的。界面测试中最容易出现问题的部分,一、路径跳转的问题,而是jsp显示的特效问题,是否符合常理。所以界面测试至关重要。33 网上花店系统的设计与实现主要包括以下几个方面的内容:导航条位置、是否合理、导航的路径是否正确,内容布局是否合理,是否正确,背景、色调是否正确、美观,是否符合用户需求;页面在窗口中的显示是否正确、美观等。2.功能测试功能测试是测试中的重点,主要包括一下几个方面的内容:连接这个连接和界面测试中的连接不同那里注重的是连接方式和位置,不管图像还是文字放置的位置等,还是其他的方式。这里的连接注重功能。如是否有连接,连接的是否是说明的位置等。表单提交应当模拟用户提交,验证是否完成功能,如注册信息,要测试这些程序,需要验证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信息。还有数据正确性验证,异常处理等,最好结合易用性要求等。B/S结构实现的功能可能主要的就在这里,提交数据,处理数据等如果有固定的操作流程可以考虑自动化测试工具的录制功能,编写可重复使用的脚本代码,可以在测试、回归测试时运行以便减轻测试人员工作量。5.3测试技术白盒测试技术(WhiteBoxTesting)该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试叫做白盒测试。这一阶段测试以软件开发人员为主,使用Unit系列工具进行测试,可以包括很多方面如功能性能等。黑盒测试(BlackBoxTesting)测试的主体部分黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,包括的不同测试类型请参考以上内容。5.4测试用例设计5.4.1登录模块的测试用例设计登录模块的测试用例如表5-1所示。表5-1登录模块测试用例用例编号测试项输入描述输入数据预期结果实际结果结果比较分析1登录输入正确的用户名和密输入值用户名:aaaaaa密码:123456进入系统与预期结果相同2输入错误的用户名,密码错误,用户名:aa密码:123456出现提示:跳转到登录页面跳转到登录页面提示不够准确,没有对用户名错误进行判断33 网上花店系统的设计与实现3输入正确的密码,用户名错误用户名:qwe密码:123456出现提示:跳转到登录页面跳转到登录页面提示不够准确,没有对用户名错误进行判断4输入正确的用户名,密码错误,用户名:bbbbbb密码:1234出现提示跳转到登录页面跳转到登录页面提示不够准确,没有对密码错误进行判断5不输入用户名,只输入正确的密码用户名:空密码:yinjianhong出现提示跳转到登录页面跳转到登录页面提示不够准确,没有对用户名为空进行判断6输入正确的用户名,不输入密码用户名:yjh密码:空出现提示:跳转到登录页面跳转到登录页面提示不够准确,没有对密码为空进行判断7输入全部大写字母的用户名,密码正确用户名:aaaaaa密码:123456进入系统跳转到登录页面跳转正确8输入大小写混合字母的用户名,密码正确用户名:YjH密码:yinjianhong进入系统跳转到登录页面提示不够正确,没有提示大小写9取消输入用户名,密码用户名:aaaaaa密码:123456将文本框清空与预期结果相同跳转正确5.4.2注册模块测试用例设计用户管理模块的测试用例如表5-2所示。表5-2用户管理模块测试用例用例编号测试项输入描述输入数据预期结果实际结果1用户管理新建用户所有信息都输入,都是正确的格式输入帐号:chenqing密码:12345真实姓名:陈青手机号:13523895641提示:添加成功,并且显示出了刚才添加的那个用户与预期结果相同2所有信息都输入,都是正确的格式输入帐号:bbbbbb密码:123456手机号:13523895641提示:添加成功,并且显示出了刚才添加的那个用与预期结果相同3所有信息都不输入无提示:帐号,密码都不能为空与预期结果相同4只输入帐号密码,并且格式都正确帐号:cccccc密码:123456提示:添加成功,并且显示出了刚才添加的那个用户与预期结果相同33 网上花店系统的设计与实现结论及不足经过几个月的不断努力,基于JAVAEE的网上花店系统的开发已经结束,基本功能都一一实现。这段时间可以说是非常的忙碌,从项目的选题,需求分析,数据库设计,再到项目的开发,花去了好几个月的时间。这段时间过得非常的充实,学到了很多书本上没有的东西,我发现要想学好一门编程语言,实践经验是非常重要,只有从实践中遇到难题,再一一解决,才能够学到很多东西,并且学到的这些东西,不会轻易的被遗忘。学校要求的毕业设计,是由个人独立完成的,这考察了一个人的综合编程能力。在做设计的过程中,我遇到过很多的难题,开始选题的时候,我想选择的一定要是自己擅长的,具有实际价值的,不然这个设计做的就有意义。经过很久的思考,我选定了网上花店系统,这里有几点原因:一、我个人比较喜欢鲜花,但是不太喜欢逛街,特别是过节的时候,鲜花供不应求,而且在实体店购买起来很不方便,二、我选择了一个JavaWeb项目,因为它涉及比较广泛,可以很好的锻炼我的能力。在需求分析的时候,必须全面考虑这个项目的流程,清晰的罗列出它的业务逻辑,这样开发才能顺利的进行下去,但是我对网上购物系统并不是特别的熟悉,在需求分析的时候很多功能没有分析透彻,导致后期开发的时候功能不完善。现在这个模拟网上购物的网上花店系统功能已基本完成,但是还是有很多的不足之处。其中,购物车的结算功能没有完成,对此,我感到自己的很多不足,在今后的生活中和工作中我会不断的学习,来弥补这些缺陷。此次开发的项目时基于JAVAEE的B2C系统,此系统就是企业面向客户端的系统,专注于网购,所以局限性比较强,在今后的社会发展趋势下B2B的应用将更加的广泛,所以B2C的开发对我的启发很大。我觉得自己在软件开发方面,经验不足,所以项目做得并不是很完美,而且,平时太注重理论,实践太少,导致了我在前台页面上花费了大量的时间,在以后的软件开发中我一定吸取这些经验和教训,尽量多实践,多分析,多看多听,总之,这次项目的开发,让我在以后的工作中,学会了怎样去学习,使我获益良多。33 网上花店系统的设计与实现参考文献[1]孙卫琴,李洪成.Tomcat与JavaWeb开发技术详解[M].北京:电子工业出版社,2003:23-27.[2](美)MartyHall,LarryBrown著,赵学良译.Servlet与JSP核心编程(第二版)[M].北京:清华大学出版社,2004:48-76.[3]李钟尉,马文强,陈丹丹.Java从入门到精通[M].北京:清华大学出版社,2007:1-11.[4]吉根林,崔海源.JAVA.程序设计教程[M].北京:电子工业出版社,2004:16-25.[5]陈惠贞,陈俊荣.JAVA.程序设计[M].北京:中国铁道出版社,2006:72-107.[6]罗玉玲.J2EE应用开发详解[M].北京:电子工业出版社,2009:45-69.[7]战剀.网上信息发布系统开发平台的设计与实现[D].长春:吉林大学,2002:23-87.[8]赵杰等.SQLServer数据库管理设计与实现教程[M].北京:清华大学出版社,2004:1-105.[9]张瑜,李杰.ASP.NET网络应用与开发实践教程[M].北京:清华大学出版社,2006:52-104.[10]张捷.基于.NET工作流的MIS系统的设计与实现[J].安徽理工大学学报,2007,27(1):15-17.[11]胡勇辉,兰湘.ASP.NET开发实战详解:入门,模块,系统[M].北京:电子工业出版社,2006:72-98.33 网上花店系统的设计与实现致谢衷心地感谢我的指导老师赵焕平,毕业设计从选题到完成,从理论上的探讨到实际问题的解决,无不饱含着赵老师的心血,赵老师的悉心指导和建议给了我极大的帮助和支持,在毕业设计及本文完成之际,谨向赵老师致以深深的谢意和崇高的敬意。非常感谢计算机与信息工程学院的领导和老师们,是你们提供了这么好的环境条件让我能专心钻研自己的毕业设计,使我所学的知识从理论升华到实践应用。同时也非常感谢帮助过我的同学们,正是由于你们的帮助和支持,我才能克服一个一个的困难,直至毕业设计的顺利完成。感谢所有关心和帮助过我的人们,我将终生铭记并为你们祝福。'