大家好,今天给大家介绍基于java+Servlet+jsp的网上花店销售系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。
文章目录:
项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:28648个字65页
包含内容:整套源码+完整毕业论文+答辩PPT+任务书+辅导视频+运行截图
提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。
1 绪论
1.1 现状分析
网上花店销售系统的实现不仅缩短了鲜花上市时间,节约了成本,方便了消费者购买,方便管理员管理,节约了大量时间和大量的人力物力,还增强了人们之间的感情交流等。
1.2 研究意义
省略
网上花店系统给用户提供了一整套完整的网上鲜花订购流程,使用户足不出户直接进行网上购物,给消费者带来了很大的方便。随着人类社会的发展,人际交往变得越来越重要。在这个繁忙的社会,人们很少有时间能见面交流感情,在特殊的日子里送给好友一束鲜花是用于联络感情的很好方式,因此受到广大消费者的欢迎。与此同时,商家也不再需要在商店里被动的等待顾客,完全可以坐在家里就轻松的卖出自己的商品,获得利润。计算机的存储与快速查询功能大大提高了网上花店管理的效率,并且还提高了查询并购买鲜花的精确度。方便快速的操作,不仅可减少从前的漏洞,还可以减少因工作的冗余出现的错误,更重要的是该系统的操作非常简单,推广起来比较容易。
1.3 研究方法
网上花店销售系统将采用瀑布模型的方式,先对目前鲜花销售的情况进行概述,然后对开发系统的环境以及技术进行简要介绍,之后对开发网上花店销售系统进行可行性分析、需求分析、总体设计、详细设计、编程实现以及测试直到实现最终理想的效果。本文将详细阐述整个实现过程。
2 系统的开发环境及技术简介
2.1 系统开发环境简介
1、MyEclipse简介
MyEclipse企业级工作平台作为对Eclipse IDE的扩展,它的功能体现在可以在数据库和JavaEE的开发、发布、应用程序服务器的整合方面极大的提高工作效率。MyEclipse几乎包括了目前所有主流开源产品的专属Eclipse开发工具,它作为功能丰富的JavaEE集成开发环境,在功能方面包括了完备的编码、调试、测试和发布,十分完整地支持HTML、Struts 2、Spring、JSP、CSS、JavaScript、Servlet、Hibernate、JDBC数据库链接工具等。JavaEE模型;Web开发工具;EJB开发工具;应用程序服务器的连接器;JavaEE项目部署服务;数据库服务;MyEclipse整合帮助是MyEclipse的7类特征。在Eclipse中,对于以上每一种功能上的类别都存在相应的功能部件,以及一系列可以用来实现它们的插件。MyEclipse这种结构上的模块化为它带来了很多优势,可以让开发人员在基本不影响其他模块的前提下,可以单独的扩展和升级任一模块。
2、Tomcat简介
Tomcat服务器是一个免费的开放源代码的Web应用服务器。运行时占用的系统资源小;扩展性好;支持负载平衡与邮件服务等开发应用系统常用的功能这几个特点使得其很受编程人员的喜欢。任何一个编程人员都可以更改它或在其中加入新的功能,因此Tomcat服务器还在不断的改进和完善中。 Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是调试和开发JSP程序的第一选择。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行Tomcat时,它实际上是作为一个与Apache独立的进程单独运行的。
3、SQL Server简介
SQL Server 是一个关系数据库管理系统,常用的有SQL Server 2000,SQL Server 2005,SQL Server 2008等版本。SQL Server 2008是微软公司2008年推出的数据库产品。它紧密结合了微软公司的各类主要产品,与Windows操作系统、Office办公软件、Visual Studio开发平台的最新技术进行了衔接。其各项指标在同类产品中都堪称优秀,而且图形化的管理界面十分便于学习与使用。SQL Server 2008具有很多新的特点,它是可信任的,使得公司可以以很高的安全性、可靠性和可扩展性来运行他们最关键任务的应用程序。它是高效的,使得公司可以降低开发和管理他们的数据基础设施的时间和成本。它是智能的,提供了一个全面的平台,可以在你的用户需要的时候给他发送观察和信息。
2.2 系统开发技术简介
1、JSP简介
JSP全称Java Server Pages,是一种动态网页开发技术。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Servlet和JSP配合才能完成。JSP具备了Java技术简单易用的特点,完全地面向对象,具有平台无关性、主要面向因特网且安全可靠。简单的理解,JSP就是HTML页面+Java代码,但是JSP中能写的内容还不止这些,可以包含HTML标签,CSS,JavaScript,JAVA代码,EL表达式,引入并使用其他标签库,例如JSTL标签库、Struts 2标签库等。浏览器可以直接运行HTML页面,但是不能直接运行JSP页面,JSP是需要在拥有JSP引擎的服务器中运行的,例如Tomcat服务器。所以JSP是运行在服务器端的,运行完之后,把动态生成的HTML页面再使用IO流写回给浏览器,浏览器接收并且解析后再呈现出来效果。JSP的生命周期分为编译阶段,初始化阶段,执行阶段,销毁阶段。
2、Javabean简介
JavaBean 是一种Java语言写成的可重用组件。为了编写JavaBean,类必须是特定的和公共的,并且具有无参数的构造器。JavaBean通过提供一个符合一致设计模式的公共方法公开内部域的成员属性。众所周知,属性名与此模式相一致,其他java类可以通过自省机制发现和操纵这些JavaBean的属性。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。JavaBean可分为两种:一种是有用户界面的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。JavaBean是可复用的平台独立的软件组件,开发者可以在软件构造器工具中对其直接进行可视化操作。一个JavaBean由3部分组成:属性、方法、事件。
3、Servlet简介
Servlet是一个基于JAVA技术的Web组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容,Servlet是平台独立的Java类,编写一个Servlet实际上就是按照Servlet规范编写一个Java类,Servlet被编译为平台独立的字节码,可以被动态地加载到支持 Java技术的Web服务器中运行。Servlet容器也叫Servlet引擎,是Web服务器或者应用服务器的一部分,用户在发送请求和响应之上提供网络服务,Servlet不能独立运行,必须被部署到Servlet容器中,由容器实例化和调用Servlet的方法,Servlet容器在Servlet的生命周期内包含和管理Servlet。Servlet是单实例多线程的运行方式,每个请求在一个独立的线程中运行,提供服务的Servlet实例只有一个Servlet 具有可升级性,能响应更多的请求,因为Servlet容器使用一个线程而不是操作系统进程,线程占用的资源要小,Servlet使用标准的API,被更多的Web服务器所支持。Servlet使用Java语言编写,拥有更多的Java程序语言的优点,Servlet可以访问Java平台丰富的类库,使得各种应用的开发更为容易,Servlet容器给Servlet提供额外的功能。
4、JDBC简介
对系统来说数据库连接应该说是最为重要的部分,Java中连接数据库的技术是JDBC。JDBC作为一种用于执行SQL语句的Java API,具备为多种关系数据库提供统一访问的功能,JDBC是由一组用Java语言编写的类和接口组成的。为了达到可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序的目的,JDBC提供了一种基准。众所周知,JDBC API、JDBC驱动程序和JDBC驱动程序管理器是JDBC的三个部分,即可以通过Java.sql包来提供JDBC API,JDBC API上仅仅设计为了利用数据库而提供的类的接口,提供JDBC驱动的软件商来实际完成这个接口。当JDBC API制作的程序进行数据调用时,JDBC驱动发挥它的作用,实际连接数据库并且进行相应的处理, JDBC API的接口类也由JDBC驱动提供。
两层模型(C/S)和三层模型(B/S)同样都是JDBC API支持数据库访问的。在两层模型(C/S)中,Java Applet或应用程序与数据库会直接进行对话,与所访问的特定数据库管理系统进行通讯时需要一个JDBC驱动程序,数据库收到被用户送来的SQL语句,而用户将会收到其被送回的结果。客户机/服务器配置指的是数据库可以位于另一台计算机上,用户通过网络连接到上面。其中客户机就是我们平时常说的用户的计算机,而服务器是我们常说的提供数据库的计算机,网络是Internet。在三层模型(B/S)中,服务的"中间层"先是收到命令,然后由服务的“中间层”将SQL语句交给数据库,数据库需要对SQL语句进行处理并将所得结果送回到中间层,最后用户将会收到中间层所得的结果。
JDBC是用于直接调用SQL命令的“低级”接口。它在这方面的功能极佳,相比其它的数据库,它连接API易于使用,与此同时它也被设计成为了一种基础接口,高级接口和工具可以建立在它之上。很明显,JDBC具有如下优点:JDBC支持不同的关系数据库,JDBC使得开发人员不需要再使用复杂的驱动器调用命令和函数,可以将常用的JDBC数据库连接封装成一个类等。
5、SQL语言简介
省略
3 可行性研究
3.1 经济可行性
省略
3.2 技术可行性
技术可行性主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。首先,系统采用的是JAVA开发技术,这项技术比较全面,实用广泛,没有实现不了的功能需求;其次该网站采用了SQL Server2008数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能,它的灵活性、安全性和易用性为数据库编程提供了良好的条件;最后开发工具,采用的是MyEclipse,工具中具有框架函数等,可以直接引用。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。
3.3 操作可行性
省略
3.4 法律可行性
省略
4 需求分析
4.1 数据描述
4.1.1 数据流图
数据流图简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。网上花店销售系统的数据流图如图4-1所示。
图4-1 系统数据流图
在该数据流图中方框表示数据的原点或终点,原点和终点是系统之外的实体。椭圆表示变换数据的处理,也称之为加工,它对数据流进行某些操作或变换。箭头表示数据流,数据流是数据在系统中的运行方向。双杠表示数据存储文件,是用来暂时存储数据的。
网上花店销售系统的实体有两个,分别为用户和管理员,用户对应于在网上购买鲜花的顾客,管理员对应于网上花店的老板。此系统中的加工对于用户来说有浏览鲜花、查看分类、管理用户信息、管理购物车、生成并查看订单、查看公告,对管理员来说有鲜花管理、分类管理、用户管理、订单管理、公告管理。此系统中的数据存储包括鲜花信息、分类信息、用户信息、购物车信息、订单信息和公告信息,在实际的实现中应该将这些信息存储在对应的表里,虽然鲜花信息、分类信息、用户信息、订单信息和公告信息是用户和管理员共享的,但是由于权限的不同用户对于鲜花信息、分类信息以及公告信息只有查看的权限,管理员对于这些信息有增、删、改的权限。在数据流图中反映为加工的不同。
用户在系统中可以浏览鲜花、查看分类、管理用户信息、管理购物车、生成并查看订单、查看公告,本系统中用户数据流图如图4-2所示。
图4-2 用户数据流图
管理员在系统中可以进行鲜花管理、分类管理、用户管理、订单管理、公告管理,其中管理员可以对鲜花、分类和公告进行添加、修改、查看和删除,对用户进行查看和删除,对订单进行查看和处理。本系统中管理员数据流图如图4-3所示。
图4-3 管理员数据流图
4.1.2 数据字典
数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。图4-1中数据流条目如下所示:
用户信息=用户ID+用户名+密码+姓名+角色+手机号+地址
鲜花信息=鲜花ID+鲜花名+鲜花图片+上架时间+分类ID+分类名+价格+是否推荐+点击数+鲜花销量+鲜花描述
公告信息=公告ID+标题+内容+添加时间
分类信息=分类ID+分类名称
购物车信息=购物车ID+用户ID+鲜花ID+鲜花名+价格+购买数量
订单信息=订单ID+订单状态+用户ID+用户姓名+用户手机+收货地址+订单详情+订单号+备注+生成时间+总价
根据数据流条目得到数据项条目如表4-1所示。
表4-1 系统数据项
4.1.3 系统IPO图
IPO图是输入–处理–输出图(Input-Process-Output)的简称。基本形式是画三个方框,在左边框中列出有关输入数据,在中间框内列出主要处理,在右边框中列出产生的输出数据。网上花店销售系统的输入数据主要是用户信息以及鲜花信息,处理主要针对用户、鲜花分类、鲜花详情、购物车以及订单,输出数据对应于处理过程。该系统IPO图如图4-4所示。
图4-4 系统IPO图
4.2 功能需求
4.2.1 功能划分
本网上花店销售系统主要分为前台操作和后台管理两部分。
1、前台操作
前台作为与用户直接交互的界面,在考虑功能的同时,也考虑了操作的简洁和方便性,目的是让大多数不太懂电脑操作的用户也能轻松的享受该系统带来的便利。
前台主要功能包括:首页(主界面)、鲜花搜索、鲜花分类、花店公告、鲜花浏览、用户注册、用户登录、订购鲜花、查看购物车、查看订单等。
2、后台管理
后台管理考虑了花店管理的操作简单方便。
后台主要功能包括:分类管理、鲜花管理、公告管理、订单管理、用户管理。
4.2.2 功能描述
1、首页(主界面)
提供简洁美观的主界面,界面陈列系统提供功能,用户和管理员通过选择各个功能来达到自己所需的目的。
2、用户注册
新用户通过填写注册表单,将自己的详细信息输入并提交系统,系统会通过与数据库的连接以及表单限定的格式来检查合法性。注册成功后可以进行订购等其他功能。
3、用户登录
用户通过输入“用户名”和“密码”进行登录,系统会通过与数据库的连接来检查合法性,如果存在则登录成功继续接下来的功能,如果不存在则返回登录界面。
4、鲜花浏览
用户可以通过选择该功能看到本系统鲜花的详细介绍。
5、加入购物车
用户可以通过该功能选择自己要购买的鲜花并放入购物车,在购物车也可以进行数量的修改并且生成订单。但要首先登录才可以实现该功能。
6、生成订单
用户可以把购物车里的鲜花下订单。
7、查看订单
用户可以查询自己的订单,但首先必须登录。
8、修改个人信息
用户可以修改个人资料。
9、管理员分类管理
管理员可以对系统首页的分类进行增加、查看、修改、删除。
10、管理员鲜花管理
管理员可以对系统首页的鲜花进行增加、查看、修改、删除。
11、管理员公告管理
管理员可以对系统首页的公告进行增加、查看、修改、删除。
12、管理员订单管理
管理员可以对用户的订单进行查看、处理。
13、管理员用户管理
管理员可以对系统已经注册的用户进行查看、删除。
4.3 性能需求
网上花店销售系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户对信息处理的求。
由于网上花店销售系统的查询功能对于整个系统的功能和性能完成举足轻重,作为系统的很多数据源,其准确性很大程度上决定了网上花店销售系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。当操作发生变化时,一些功能同样能够实现。因为在实现各项功能时了,把功能划分成了不同的模块,各模块之间互不干扰,而且JavaBean都采用类的形式,每个功能都封装成一个类,当运行环境发生变化时,对程序会有一些影响,但打上补丁就可以继续运行了。总体上讲,本系统具有一定的自适应性。
4.4 运行需求
硬件条件:英特尔酷睿2 CPU、1GB 内存、20GB以上硬盘的PC机。
软件条件:Windows 7操作系统。
省略
4.5 其他需求
网上花店销售系统是直接面对使用人员的,而使用人员往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面。针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。网上花店系统中涉及到的数据是相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。
5 总体设计
5.1 系统功能模块设计
网上花店销售系统一共分为前台和后台两大模块,两个模块之间虽然在表面上是相互独立的,但是在对数据库的访问上是紧密相连的,各个模块访问的是同一个数据库,只是所访问的表不同。
网上花店销售系统的前台功能模块分为:
1、鲜花展示模块
鲜花展示模块主要是向用户展示网上花店的鲜花,主要分为鲜花搜索和鲜花分类两个子模块。用户可以通过鲜花搜索直接查询自己想要了解的鲜花,也可以通过鲜花分类查找某一类的鲜花。
2、公告展示模块
公告展示模块是管理员发布的与网上花店系统相关的公告信息,可以包括系统的使用或者最新的优惠活动等。用户登录系统后,可以查看公告信息,以此来最快的了解系统。
3、购买鲜花模块
购买鲜花模块主要是完成用户在网上的购物的流程。购买鲜花模块分为加入购物车和生成订单两个子模块。
4、用户管理模块
用户管理模块分为用户注册、用户登录、用户修改信息三个子模块。
网上花店销售系统前台功能模块图如图5-1所示。
图5-1 前台功能模块图
用户进行购买鲜花时,先进行注册,然后进行登录,登录系统后用户可以浏览鲜花,把需要购买的鲜花加入购物车,把购物车的鲜花生成订单。用户购买鲜花时序图如图5-2所示。
图5-2 用户购买鲜花时序图
网上花店销售系统的后台功能模块分为:
1、分类管理模块
分类管理模块主要是实现管理员对系统分类的管理,使得用户可以按照分类挑选鲜花,方便了用户的挑选,管理员通过这个模块可以向系统添加新的分类,查看已有的分类,修改已有的分类,删除旧的分类。
2、鲜花管理模块
鲜花管理模块主要是实现管理员对系统鲜花的管理,该模块对整个系统至关重要。管理员通过这个模块可以向系统添加新的鲜花,查看已有的鲜花,修改已有的鲜花,删除旧的鲜花。
3、订单管理模块
订单管理模块主要是实现管理员对系统订单的管理,管理员通过这个模块可以查看用户下的订单并对订单做出相应的处理。
4、公告管理模块
公告管理模块主要是实现管理员对系统公告的管理,这样用户进入系统后可以通过浏览公告获取网上花店销售系统的最新资讯,并且可以在最短的时间内对系统有基本的了解。管理员通过这个模块可以向系统添加新的公告,查看已有的公告,修改已有的公告,删除旧的公告。
5、用户管理模块
用户管理模块主要是实现管理员对已注册用户的管理,管理员通过这个模块可以查看用户的信息或者删除用户。
网上花店销售系统后台功能模块图如图5-3所示。
图5-3 后台功能模块图
5.2 数据库设计
5.2.1 概念结构设计
描述概念模型的有力工具是E-R模型,E-R模型是用E-R图来描述现实世界的概念模型。E-R模型包括实体、属性、实体之间的联系等。接下来将用E-R图对网上花店销售系统进行概念结构设计,包括各实体间的E-R图及各实体的详细属性E-R图。其中实体型用矩形表示,矩形框内写明实体名。属性用椭圆形表示,并用无向边将其与相应的实体型连接起来。联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型。
本网上花店销售系统的实体有管理员,用户,公告,订单,分类,鲜花。下面将分别设计各实体的E-R图。
1、用户E-R图如图5-4所示。
图5-4 用户E-R图
在该E-R图中,对于用户实体,用户可以浏览公告,因此用户实体和公告实体是浏览关系,用户可以选购鲜花,因此用户实体和鲜花实体是选购关系,用户可以查看分类,因此用户实体和分类实体是查看关系,用户可以管理自己的购物车,因此用户实体和购物车实体是管理关系,用户可以查看自己的订单,因此用户实体和订单实体是查看关系,用户在系统中是被管理员管理的,因此用户和管理员是被管理的关系。
2、管理员E-R图如图5-5所示。
图5-5 管理员E-R图
在该E-R图中,对于管理员实体,管理员可以对系统的公告、订单、分类、鲜花进行管理,对已注册的用户进行管理,因此它与其他实体的关系都是管理关系。
3、用户实体的属性有ID、用户名、密码、姓名、角色、手机号、地址。用户详细属性E-R图如图5-6所示。
图5-6 用户详细属性E-R图
4、鲜花实体的属性有ID、鲜花名、鲜花图片、上架时间、分类ID、分类名、价格、是否推荐、点击数、鲜花销量、鲜花描述。鲜花详细属性E-R图如图5-7所示。
图5-7 鲜花详细属性E-R图
5、公告实体的属性有ID、标题、内容、添加时间。公告详细属性E-R图如图5-8所示。
图5-8 公告详细属性E-R图
6、分类实体的属性有ID、分类名称。分类详细属性E-R图如图5-9所示。
图5-9 分类详细属性E-R图
7、购物车实体的属性有ID、用户ID、鲜花ID、鲜花名、价格、购买数量。购物车详细属性E-R图如图5-10所示。
图5-10 购物车详细属性E-R图
8、订单实体的属性有ID、订单状态、用户ID、用户姓名、用户手机、收货地址、订单详情、订单号、备注、生成时间、总价。订单详细属性E-R图如图5-11所示。
图5-11 订单详细属性E-R图
5.2.2 逻辑结构设计
逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构。数据库设计时注意保证在整个系统运行和业务操作过程中,数据库都能便于访问和查询,同时还需要考虑到要尽量节省数据库操作时的响应时间,尽可能的提高数据库对程序和业务请求的响应速度。
根据概念结构设计阶段的E-R图,设计数据库表结构如下。
1、t_Fenlei分类表
该表存放分类ID及分类名称。t_Fenlei分类表如表5-1所示。
表5-1 t_Fenlei分类表
2、t_Product鲜花表
该表存放鲜花信息,主要包括鲜花名、鲜花图片、上架时间、价格、鲜花销量、鲜花描述等信息。分类表和该表相关联,因此表中还包含了分类ID以及分类名。t_Product鲜花表如表5-2所示。
表5-2 t_Product 鲜花表
3、t_Gonggao公告表
该表存放公告信息,主要包括标题、内容、添加时间。t_Gonggao公告表如表5-3
所示。
表5-3 t_Gonggao 公告表
4、t_Gouwuche购物车表
该表存放购物车ID、以及用户ID、鲜花ID、鲜花名、价格、购买数量。t_Gouwuche购物车表如表5-4所示。
表5-4 t_Gouwuche购物车表
5、t_User用户表
该表中存放用户的基本信息,普通用户和管理员共用此表,主要包括用户ID、用户名、密码、姓名、角色、手机号、地址信息。普通用户和管理员通过角色的值进行区分, 0表示普通用户,1表示系统管理员。t_User用户表如表5-5所示。
表5-5 t_User 用户表
6、t_Dingdan订单表
该表存放订单ID、订单状态、以及关联表里的用户ID、用户姓名等信息。t_Dingdan订单表如表5-6所示。
表5-6 t_Dingdan订单表
6 详细设计与实现
根据总体设计部分对于功能模块的划分,在详细设计中采用JSP+Servlet+Javabean的MVC模式,其中系统的显示由JSP页面完成,用Javabean封装对象,业务的逻辑处理由Servlet完成,对于数据库的操作写在dao包的文件里。
6.1 系统对象的设计与实现
系统中总共包括七个对象,分别为用户,管理员,公告,鲜花,类别,购物车和订单。系统的类图如图6-1所示。
图6-1 系统类图
在实现过程中将这七个对象封装成bean对象,其中管理员和用户的封装对象内容相同,故二者共用一个对象,用属性role进行区分,0表示用户,1表示系统管理员。六个对象对应于代码中的Dingdan.java,Fenlei.java,Gonggao.java,Gouwuche.java,Product.java,User.java。以User.java为例,关键代码如下:
public class User {
private int id;//主键
private String username;//用户名
private String password;//密码
private String xingming;//姓名
private int role;//用户角色 0表示用户,1表示系统管理员
private String dianhua;//手机
private String dizhi;//收货地址
}
6.2 系统首页的设计与实现
该系统首页页面风格简单明了,上边横条可以选择注册和登录,左侧有鲜花搜索,鲜花分类,销量排行榜以及花店公告,用户可以根据自己的需求浏览相关内容。页面右侧是鲜花列表,用户可以通过点击相应的链接查看详情或者加入购物车。首页页面的设计如图6-2所示。
图6-2 系统首页
具体的实现过程是:index.jsp文件主要包括鲜花列表部分,在index.jsp页面引入黄色横条的head.jsp以及左侧的left.jsp。
6.3 系统前台功能的设计与实现
6.3.1 用户注册模块的设计与实现
用户注册需要填写相应的信息,主要包括用户名、密码、确认密码、姓名、收货地址以及手机号码。用户注册页面的设计如图6-3所示。
图6-3 注册页面
该页面对应代码中的register.jsp,该页面对输入的每一个数据都有格式上的要求,用户名不能为空且必须是数字,字母或者下划线,密码不能为空且至少6位,确认密码要和密码一致,姓名,收货地址以及手机号都不能为空,手机号码还要符合正确的格式。当用户进行注册时,页面首先会对输入的数据格式进行检验,若输入错误会有相应的提示。除此之外,当用户输入正确的格式的数据之后,点击了注册按钮,系统会在数据库进行比对,若用户名已经被注册,系统也会弹出相应的提示,若用户名还未注册则将数据插入数据库,提示注册成功并跳转到首页。具体的实现过程是在IndexServlet.java中对注册进行逻辑处理,在UserDao.java中对数据库进行操作。
该页面关键代码如下:
<form action="indexServlet/register" method="post" onsubmit="return checkform()">
<label>用户名:</label>
<input type="text" class="form_input" name="username" id="usernameid" />
<label>密码:</label>
<input type="password" class="form_input" name="password" id="passwordid"/>
<label>确认密码:</label>
<input type="password" class="form_input" name="password2" id="password2id"/>
<label>姓名:</label>
<input type="text" class="form_input" name="xingming" id="xingmingid"/>
<label>收货地址:</label>
<input type="text" class="form_input" name="dizhi" id="dizhiid"/>
<label>手机:</label>
<input type="text" class="form_input" name="dianhua" id="dianhuaid"/>
<input type="submit" class="form_submit" value="注册" />
</form>
用户在注册时,第一不能有空值,第二两次密码的输入要一致,第三各项数据的格式要正确。除此之外,用户名不可以是已经注册过的。用户注册程序流程图如图6-4所示。
图6-4 用户注册程序流程图
6.3.2 用户登录模块的设计与实现
用户登录需要填写用户名以及密码,登录页面的设计如图6-5所示:
图6-5 登录页面
该页面对应代码中的login.jsp,用户名和密码都不能为空,否则页面会进行相应的提示,当输入用户名和密码点击登录之后,系统会在数据库中查找,若有匹配的数据则提示登录成功并跳转到首页,否则提示用户名或密码不正确。具体的实现过程是在IndexServlet.java中对登录进行逻辑处理,在UserDao.java中对数据库进行操作。
该页面关键代码如下:
<form action="indexServlet/login" method="post" onsubmit="return checkform()">
<label>用户名:</label>
<input type="text" class="form_input" name="username" id="usernameid" />
<label>密码:</label>
<input type="password" class="form_input" name="password" id="passwordid"/>
<input type="submit" class="form_submit" value="登录" />
</form>
用户在登录时,用户名和密码要一致,如果正确才可以登录成功,否则登录失败需要重新输入登录信息。用户登录程序流程图如图6-6所示。
图6-6 用户登录程序流程图
6.3.3 公告浏览模块的设计与实现
用户在首页可以浏览花店公告,通过点击花店公告的标题可以查看花店公告的详细信息。花店公告页面以及公告详情页面设计如图6-7以及6-8所示。
图6-7 花店公告页面
图6-8 公告详情页面
具体的实现过程是,当用户点击花店公告的标题时,通过IndexServlet.java的gonggaoupdate方法获取对象,然后通过GonggaoDao.java对数据库进行操作,最后将对象传到gonggao.jsp页面。
公告详情页面关键代码如下:
<form action="${url }" method="post" onsubmit="return checkform()">
<div class="form">
<div class="form_row">
<label>公告标题:</label>${bean.biaoti }</div>
<div class="form_row"><label>内容:</label>${bean.neirong }</div>
<div class="form_row"><label>发布时间:</label>${bean.shijian }</div>
<div class="form_row">
<input type="button" class="form_submit" value="返回" onclick="javascript:history.go(-1);"/> </div>
<div class="clear"></div></div>
</form>
6.3.4 鲜花列表模块的设计与实现
用户在系统首页的鲜花列表可以浏览鲜花,鲜花列表包括鲜花名,图片,分类名,鲜花价格,以及查看详情和加入购物车两种操作。点击查看详情后页面会跳转到鲜花信息详情页面。鲜花列表页面以及鲜花信息详情页面如图6-9以及6-10所示。
图6-9 鲜花列表页面
图6-10 鲜花信息详情页面
鲜花列表页面对应代码中的index.jsp,鲜花信息详情页面对应代码中的product.jsp,具体实现方式是当用户点击查看详情时,在IndexServlet.java中用productupdate方法进行具体处理,之后把对象传到product.jsp页面。当用户点击鲜花列表或鲜花信息详情页面的加入购物车时,如果用户已经登录,那么系统跳转到我的购物车页面。否则,系统会提示用户先登录并跳转到登录页面。
6.3.5 用户购物车模块的设计与实现
我的购物车页面,包括鲜花名,单价,购买时间,小计。用户可以修改购买数量或者删除购物车里的东西,也可以点击链接跳转到订单页面。我的购物车页面设计如图6-11所示。
图6-11 购物车页面
我的购物车页面对应代码中的gouwuchelist.jsp,当用户点击鲜花列表或鲜花信息详情页面的加入购物车时,在IndexServlet.java中用gouwucheadd2方法进行添加商品到购物车操作,在GouwucheDao.java里对数据库进行操作,将所选鲜花数据插入数据库。我的购物车页面的变更删除分别用IndexServlet.java的gouwucheupdate2方法和gouwuchedelete方法实现。
6.3.6 用户订单模块的设计与实现
我的订单页面,包括订单号,收货人姓名,订单状态,生成时间,总价,以及查看订单详情的操作。用户也可以查看和搜索自己的订单。我的订单页面如图6-12所示。
图6-12 生成订单页面
我的订单页面对应代码中的orderlist.jsp,查询订单的操作在indexServlet/orderlist中实现,查看订单详情的操作在indexServlet/dingdanupdate3中实现,其中对数据库的操作在DingdanDao.java中完成。
6.3.7 用户信息管理模块的设计与实现
用户可以在个人信息页面对自己的信息进行管理,主要是对姓名,手机号以及收货地址的更改,可以在修改密码页面进行密码的修改。用户信息页面的设计与修改密码的
设计如图6-13以及6-14所示。
图6-13 个人信息页面
图6-14 修改密码页面
个人信息页面对应代码中的userupdate.jsp,修改密码页面对应代码中的passwordupdate.jsp,修改个人信息在是在indexServlet/userupdate2中完成的,修改密码是在indexSe rvlet/passwordupdate2中完成的,操作数据库的部分在UserDao.java中完成。
6.4 系统后台功能的设计与实现
6.4.1 系统后台页面的设计与实现
管理员登录成功后会进入系统后台页面,主要包括左侧的主菜单以及中间的欢迎页面。主菜单包括,分类管理,鲜花管理,公告管理,订单管理,用户管理。系统后台页面如图6-15所示。
图6-15系统后台页面
管理员在此页面可以通过点击左侧主菜单进行相应的管理。关键代码如下:
<ul>
<li><a href="<%=basePath2 %>manageServlet/fenleilist" >分类管理</a></li>
<li><a href="<%=basePath2 %>manageServlet/productlist" >鲜花管理</a></li>
<li><a href="<%=basePath2 %>manageServlet/gonggaolist" >公告管理</a></li>
<li><a href="<%=basePath2 %>manageServlet/dingdanlist" >订单管理</a></li>
<li><a href="<%=basePath2 %>manageServlet/userlist" >用户管理</a></li>
</ul>
6.4.2 分类管理功能的设计与实现
管理员通过此功能可以查看、修改、删除已经存在的分类,也可以增加新的分类。该系统分类管理页面如图6-16所示。
图6-16 分类管理页面
分类管理页面对应代码中的fenleilist.jsp,添加新分类以及查看和修改分别对应fenl eiadd.jsp,fenleiupdate3.jsp,fenleiupdate.jsp,管理员进行操作时,系统通过在ManageSer vlet.java中的方法实现,对数据库的操作在FenleiDao.java中实现。
6.4.3 鲜花管理功能的设计与实现
管理员通过此功能可以查看、修改、删除已经存在的鲜花,也可以增加新的鲜花。该系统鲜花管理页面如图6-17所示。
图6-17 鲜花管理页面
鲜花管理页面对应代码中的productlist.jsp,添加新商品对应productadd.jsp,上传图片对应productupdate5.jsp,查看和修改分别对应productupdate3.jsp,productupdate.jsp,管理员进行操作时,系统通过在ManageServlet.java中的方法实现,对数据库的操作在ProductDao.java中实现。
6.4.4 公告管理功能的设计与实现
管理员通过此功能可以查看、修改、删除已经存在的公告,也可以增加新的公告。该系统公告管理页面如图6-18所示。
图6-18 公告管理页面
公告管理页面对应代码中的gonggaolist.jsp,添加新公告对应gonggaoadd.jsp,查看和修改分别对应gonggaoupdate3.jsp,gonggaoupdate.jsp,管理员进行操作时,系统通过在ManageServlet.java中的方法实现,对数据库的操作在GonggaoDao.java中实现。
6.4.5 订单管理功能的设计与实现
管理员通过此功能可以查看和处理订单。该系统订单管理页面如图6-19所示。
图6-19订单管理页面
订单管理页面对应代码中的dingdanlist.jsp,查看订单详情对应dingdanupdate3.jsp,管理员进行操作时,系统通过在ManageServlet.java中的方法实现,对数据库的操作在DingdanDao.java中实现。
6.4.6 用户管理功能的设计与实现
管理员通过此功能可以查看和删除用户。该系统用户管理页面如图6-20所示。
图6-20 用户管理页面
用户管理页面对应代码中的userlist.jsp,管理员进行查询用户和删除用户操作的时
候,系统通过在ManageServlet.java中的方法实现,对数据库的操作在UserDao.java中实现。
7 系统的调试与测试
7.1 程序调试
省略
7.2 程序测试
7.2.1 测试的内容
省略
7.2.2 测试用例
根据系统的功能,测试用例为以下几方面:
1、用户的注册和登录以及退出,管理员的登录以及退出。
2、用户浏览鲜花,将鲜花加入购物车,对购物车的鲜花数量进行更改,生成订单,提交订单,查看订单,修改个人信息。
3、管理员对分类、鲜花、公告进行增、删、改、查,对订单和用户进行查、删。
具体的测试细节为:
1、用户注册测试
用户注册时,填写各项信息,首先是各项信息空值的测试,其次是各项数据的数据格式的测试。
2、用户及管理员登录测试
用户及管理员登录时只需填写用户名和密码,因此测试时主要对用户名和密码的匹配性进行测试。
3、用户及管理员退出测试
用户和管理员的退出主要是通过点击“退出系统”按钮,因此实际测试中只需测试用户点击按钮后是否能够正确跳转。
4、浏览鲜花测试
浏览鲜花时用户可以点击查看详情去获取鲜花的详细信息,因此实际测试中只需测试用户点击按钮后是否能够正确跳转到相应的鲜花详情页面。
5、加入购物车测试
鲜花列表以及鲜花详情页面都有包含加入购物车功能,因此实际测试中需要在两个页面都测试用户点击按钮后是否能够正确跳转到购物车页面。
6、管理购物车测试
在购物车页面,用户可以对购物车里的鲜花数量进行更改,可以删除购物车里的鲜花,因此实际测试中需对这两方面进行测试。
7、生成订单测试
用户点击生成订单页面会跳转到确认订单收货信息页面,因此实际测试中要测试用户点击链接后能否正确跳转。
8、提交订单测试
用户提交订单后会跳转到订单页面,因此实际测试中要测试用户点击提交按钮后页面能否正确跳转以及数据库信息是否相应改变。
9、用户管理个人信息测试
用户可以更改自己的姓名、收货地址和手机,更改后数据库数据会有相应改变,因此实际测试中要测试用户点击提交按钮后页面能否正确弹出更改成功的信息以及数据库信息是否相应改变。
10、管理员分类管理测试
管理员在网上花店后台对于分类的管理主要是对分类的增加、修改、查询和删除,因此实际测试中要测试管理员进行查询操作时是否能正确显示查询信息,管理员进行增加、修改和删除操作时前台显示的分类是否改变以及数据库中的分类数据是否相应的改变。
11、管理员鲜花管理测试
管理员在网上花店后台对于鲜花的管理主要是对鲜花的增加、修改、查询和删除,因此实际测试中要测试管理员进行查询操作时是否能正确显示查询信息,管理员进行增加、修改和删除操作时前台显示的鲜花是否改变以及数据库中的鲜花数据是否相应的改变。
12、管理员公告管理测试
管理员在网上花店后台对于鲜花的管理主要是对公告的增加、修改、查询和删除,因此实际测试中要测试管理员进行查询操作时是否能正确显示查询信息,管理员进行增加、修改和删除操作时前台显示的公告是否改变以及数据库中的公告数据是否相应的改变。
13、管理员订单管理测试
管理员在网上花店后台对于订单的管理主要是对订单的查询和处理,因此实际测试中要测试管理员进行查询操作时是否能正确显示查询信息,管理员进行处理操作时订单是否显示已处理并且数据库中的订单数据是否相应的改变。
14、管理员用户管理测试
管理员在网上花店后台对于用户的管理主要是对用户的查询和删除,因此实际测试中要测试管理员进行查询操作时是否能正确显示查询信息,管理员进行删除操作时数据库中的用户数据是否相应的删除。
7.2.3 测试结果
通过上一小节对测试细节的分析,对系统进行相应的测试,具体的测试结果如表7-1、表7-2以及表7-3所示。
在表中有四项内容:
名称:指测试的对象。
操作:指测试过程中进行的操作方法。
预期结果:指对测试操作产生结果的预测。
实际结果:指实际对系统进行测试时产生的结果。
表7-1 登录注册测试结果
管理员退出测试 点击退出系统 正确退出 同预期
表7-2 用户操作测试结果
表7-3 管理员操作测试结果
下面以用户登录和注册为例,详细说明测试过程。
用户注册需要填写用户名、密码、确认密码、姓名、收货地址、手机号码这六项,
对此划分出有效等价类和无效等价类进行测试,具体测试数据和结果如表7-4所示。
表7-4 用户注册测试结果
现将用户注册测试的部分过程截图如下。
当用户名为空时,点击注册,弹出提示框提示“用户名不能为空”。测试结果如图7-1所示。
图7-1 用户名为空时测试结果图
当密码和确认密码不一致时,点击注册,弹出提示框提示“确认密码和原密码不一致”。测试结果如图7-2所示。
图7-2 确认密码和原密码不一致时测试结果图
当输入的手机格式不正确时,点击注册,弹出提示框提示“请输入正确的手机格式”。测试结果如图7-3所示。
图7-3 手机格式不正确时测试结果图
当输入正确格式的数据时,点击注册,弹出提示框提示“注册成功,请妥善保管您的账户”。测试结果如图7-4所示。
图7-4 正确注册时测试结果图
用户登录时需要填写用户名和密码两项,对此划分出有效等价类和无效等价类进行测试,具体测试数据和结果如表7-5所示:
表7-5 用户登录测试结果
现将用户登录测试的部分过程截图如下。
当登录密码为空时,点击登录,弹出提示框提示“密码不能为空”。测试结果如图7-5所示。
图7-5 登录密码为空时测试结果图
当登录密码错误时,点击登录,弹出提示框提示“用户名或者密码错误”。测试结果如图7-6所示。
图7-6 登录密码错误时测试结果图
当登录密码正确时,点击登录,弹出提示框提示“登陆成功”。测试结果如图7-7所示。
图7-7 登录成功时测试结果图
结论
完成了网上花店销售系统的设计,系统前台实现了用户在线浏览所有鲜花,按需求搜索相关鲜花,浏览系统公告以及注册登录后对鲜花选购的操作和购物结束后对订单信息的查看。系统后台实现了管理员对鲜花、分类、公告、订单、用户的管理。
所设计系统中有一些优点,第一系统安全性高,本系统使用者分为管理员和用户两个角色,当其登录系统时,对其身份进行严格认证;第二采用隔离与访问控制,本系统根据用户的工作需求来分析,对用户权限进行了严格的控制,比如,用户只能浏览鲜花信息而不能修改,系统管理员就可以添加、删除、修改鲜花信息;第三操作简便,该系统本着方便易用的目的进行设计,无论是管理员还是用户都不需要具备专业的计算机知识,只要懂得计算机的一些基本操作,就可以轻松的对花店进行使用,这样做更加贴近用户,使用户使用方便,提高用户的体验。
省略
参考文献
[1]万常选,刘云生. 电子商务的技术及其应用[J]. 计算机工程与应用. 2002(07) .
[2]王知强,郑炜. 基于UML的动态企业建模的研究与实现[J]. 哈尔滨商业大学学报(自然科学版). 2005(02) .
[3]文灿华,张伟. 基于JSP的网上商城的设计与实现[J]. 电脑知识与技术. 2010(31) .
[4]鲁晓东,李育龙,杨健编著.JSP软件工程案例精解[M]. 电子工业出版社, 2005.
[5]杨学瑜等编著.JSP入门与提高[M]. 清华大学出版社, 2002.
[6]张琳. 网上购物系统的设计与开发[J]. 科技信息(学术研究). 2007(24).
[7]陈春蓉. 网上购物系统的设计与开发[J]. 软件导刊. 2009(08).
[8]万华. 基于JSP的网上购物系统的实现[J]. 现代计算机(专业版). 2002(10).
[9]Enhancing Java server availability with JAS. Reinhard Klemm,Navjot Singh. Software. Practice & Experience . 2001.
[10]D.C.Ghita.JavaScript Generators. Studia Universitatis Babes-Bolyai:Series Informatica . 2010.
[11]Jeffrey A Hoffer,Joey F. George.Modern SystemsAnalysis and Design. 2003.
致谢
省略
外文原文
省略
中文译文
省略
本项目源码及完整论文如下,有需要的朋友可以点击进行下载
序号 | 毕业设计全套资源(点击下载) |
---|---|
本项目源码 | 基于java+Servlet+jsp的网上花店销售系统设计与实现(源码+文档)_Tomcat_jsp_网上花店销售系统.zip |