基于JavaEE的网上书店的设计与开发
作者:互联网
获取项目源文件,技术交流与指导联系Q:1225467431
摘 要
在正常运营中,一个现代化网上书店需要对进书、售书、库存、统计信息以及个人信息进行管理,这些信息数量非常巨大并且处理起来十分复杂。如果使用传统的管理方法,既浪费了人力物力,而且存在着很多的漏洞,一旦出现错误,造成的损失将是不可估量的。因此,一个信息化、系统化、智能化的网上书店是十分必要的。
本系统是基于B/S(Browser/Server)结构的网上书店,它使用了目前最流行的Java语言编写,用到了先进的JSP技术,用户界面友好。其中B/S结构使得数据可在浏览器上显示,数据的处理在服务器上进行,用户不需要安装客户端,并且由于是通过服务器端统一管理数据,这样就保证了数据的一致性。数据库使用Microsoft SQL Server2005,使系统安全性能进一步提高。
本系统具有前台管理和后台管理两大基本功能。前台管理主要包括用户注册登录、图书搜索、购物车、订单结算,后台管理主要包括用户管理、图书信息管理、图书分类管理、订单管理。通过对各个功能模块的实现、集成,最后完成的系统可以为用户提供基本的服务,并且可以根据管理员的需要,对用户信息以及图书信息实施管理。
【关键词】Java;网上书店;B/S结构;SQL Server2005
Abstract
A modern bookstrore online always need to manage the book information, selling information, stock information, statistics information and personal information. The great deal of information is hard to process,Traditional management method wastes manpower and material resources.It has many defaults.Once it is wrong, that will cause immeasurable loss.Therefore,it is necessary to design an intelligent, systematic and information-based online books sale management system.
This online management system of bookstrore is based on B/S structure and it uses one of the most popular language Java and make a good use of today’s advanced technologise such as jsp to make a friendly user interface.The B/S structure among then allows data displaying in the browser and processing in the file server .Users don’t need to install client and because the server is unified the management of data ,it ensures the consistency of the data.Database of Microsoft SQL Server 2005 makes the safety performance of the system further improved.
The system is confirmed to have two basic function modules:foreground management and background management.The foreground management includes user register and login, searching book, viewing shopping-cart and checking orders. The background management includes checking user’s information,classifying books, checking book’s information and processing orders.Through we realize each of function module,integer and finish the system,the finished system can provide users with basic service.And according to the administrator’s need, the system can implete the management of the users’ information and books’ information.
【Keywords】JavaEE; The online bookstore; the structure of B/S; SQL Server 200
目 录
第1章 绪 论 1
1.1 系统开发的背景和意义 1
1.2 国内外发展状况 1
1.3 研究内容 2
第2章 程序技术相关知识 3
2.1 Java简介 3
2.2 JavaEE平台相关介绍 3
2.3 JSP技术以及关于JavaScript脚本语言的应用 3
2.4 数据库SQL Server 2005简介 4
2.5 B/S体系结构 5
2.6 MyEclipse以及Web服务器Tomcat7.0的简要介绍 5
2.7 本章小结 6
第3章 需求分析 7
3.1 可行性分析 7
3.1.1 技术可行性分析 7
3.1.2 安全可行性 7
3.1.3 操作可行性 7
3.2 功能分析 8
3.3 数据流图 8
第4章 系统概要设计 12
4.1 数据库设计 12
4.1.1 概念数据模型(CDM) 12
4.1.2 物理数据模型(PDM) 13
4.1.2 数据库表 15
4.2 总体结构设计 17
第5章 系统的详细设计与实现 19
5.1 系统详细设计 19
5.1.1 首页图书浏览模块 19
5.1.2 用户注册登录模块 19
5.1.3 购物车模块 20
5.2 系统前台功能模块的实现 21
5.2.1 首页图书浏览模块 21
5.2.2 用户注册登录模块 26
5.2.3 购物车模块 26
5.3 系统后台功能模块的实现 27
5.3.1 用户管理模块 28
5.3.2 图书信息管理模块 28
5.3.3 图书类别管理模块 29
5.3.4 订单信息管理模块 29
第6章 系统的测试与维护 30
6.1 系统的测试 30
6.1.1 测试目的 30
6.1.2 测试方法 30
6.1.3 测试过程 30
6.1.4 测试分析 31
6.2 系统的维护 31
第7章 系统的总结与展望 32
参考文献 33
致 谢 35
第1章 绪 论
1.1 系统开发的背景和意义
随着综合国力的提升,信息技术、网络进程的加快、数据库技术的不断完善,很多企业建立了自己的网站企业利用网站可以展示产品,发布最新的动态信息,进而与用户进行交流和沟通,并且可与合作伙伴建立联系。传统的购物方式越来越不能满足人们快节奏的生活需求,企业也认识到因特网的优势,电子商务正是在这样一个背景下产生并发展起来的。注册用户可以在网上搜索购买到自己想要的各种商品,让人们感受到足不出户便可随意购物的快乐。
本系统的目标就是将图书销售由传统的商店模式向网上销售的转变,同时还可以对销售的订单和图书的种类等信息进行在线管理,进而实现人们可不需出门就能够方便的买到自己喜欢的各类书籍,向客户展现了一种新的购书理念。网上购书这样一种方式,顺应了时代潮流,逐渐为人们所接受[1]。
图书销售管理实质为进销存管理,是图书零售商经营管理中的核心环节,是商家取得效益的关键。因此,进销存管理决策直接影响商家的经济效益。而在手工管理的情况下,管理人员对进货及库存量很难进行良好地控制,图书的供求信息也很难正确的获得,由此可见,在竞争激烈的市场中,网上图书销售管理系统的出现成为一种必然。它利用计算机,使图书销售企业进货、库存和销售可以有机的结合在一起,以此提高了工作效率,降低了管理成本,杜绝了图书进销多方面的漏洞,进而使获得了更多的经济效益。
1.2 国内外发展状况
进入电子商务时代,是社会发展的必然,我们也顺理成章的生活在这样一个时代,因此适应数字化生存并积极参与电子商务时代的国际竞争,涉及到个人、企业及国家发展和生存的重大问题。
目前电子商务在国际上已经得到迅速的发展和实践,在国际商贸和社会生活中占据主导地位,并将形成世界性的电子商务环境。国内对电子商务的研究也在逐渐的深入,我国的管理部门正密切国际合作、制定相应法律、法规和技术标准,
并努力营造优良的电子商务环境;同时商务部门也开始认识到电子商务的社会、经济和生活等方面的特点、电子商务活动的方式方法、以及电子商务的发展和应用表现,也促使管理人员逐步进入电子商务的活动方式、进一步熟悉商务环境、进行电子商务管理、最终能参与电子商务时代的国际竞争[2]。
在这样一种环境下,网上图书销售作为一种典型的Web电子商务系统正深入人们的日常生活中。越来越多的人希望能足不出户就可以挑选购买自己喜欢的图书,这样可大大缩短购物的时间,提高了生活效率。并且,图书因其具有标识精晰、规格统一、特征容易描述、同种商品个体之间无差异等特性而能成为发展电子商务的最为理想的商品类型。可见,网上图书销售系统可以跨越时间和空间的限制,给商业流通领域带来了巨大的变革,同时也给消费者带来了便捷。随着网络的迅速发展,网上图书销售的发展前景越来越乐观。
1.3 研究内容
本系统是一种基于B/S架构的管理系统,它使用现在时下较为流行的java语言编写,用到了目前先进的JSP技术.系统分为前台和后台两个部分,前台部分主要是用户进行图书的浏览,以及订书,购书管理等,主要是面向用户的。而后台主要是管理人员对前台数据的维护和设置,主要是面向管理人员的。网上书店无论是在应用的深度还是广度都是一个逐步发展的过程。在开发一个局部系统时要充分考虑到局部系统和整个目标系统之间的相容性和完整性,以利于今后整个系统的建立。该系统从总体上把握系统的设计,在具体的设计实现上我们围绕着两个方面的需求展开,即管理者和系统使用者。
对于本系统的不同使用者,其功能与业务逻辑是不完全相同的。对于用户而言,系统主要向用户展示一个美观的界面,用户可以浏览各类图书信息,查询图书信息,以及订购图书。而管理员则需要在后台维护这些数据。本系统的主要功能是用户购书,用户可以查询书籍信息,当发现自己满意的以后,可以将这些书籍添加到自己的购物车,进而实现用户购书。
第2章 程序技术相关知识
2.1 Java简介
Java最原始的目的是为家用电子产品开发一个分布式代码系统。Java是一种语法简介且清晰的语言,它的程序运行需要一个解释器,即是我们常用到的虚拟机,而Java的跨平台正是通过Java虚拟机(JVM)来实现的。从Java2.0开始,Java分为了J2ME、J2SE、J2EE三个版本,对于各个版本对应着不同的JVM[3]。
Java的主要特性有是面向对象的,健壮的,安全的,与平台无关的。面向对象可以说是Java最重要的特性,所有它支持继承、重载、多态等面向对象的特性。Java致力于检查程序在编译和运行的错误,它自己负责内存管理,提供了垃圾内存回收机制。Java作为一种网络语言,其源代码需要被编译成一种结构中立的中间文件格式。Java源程序被编译成一种与机器无关的字节码格式,在Java虚拟机上运行。JVM是为Java字节码定义的一种独立于具体平台的规格描述,是Java平台独立性的基础。
2.2 JavaEE平台相关介绍
JavaEE是J2EE的一个新的名称,之所以改名,是由于J2EE容易让初学者误解是独立于一套Java的技术方案。从更深层次来看,Java诞生十年来,很多近十年前的业务组件至今还可以使用,软件应用不再由于语言的更迭革命带来毁灭的打击了。
我们之所以需要JavaEE,是因为在我们编写的JSP代码中,由于大量的显示代码和业务逻辑混淆在一起,彼此嵌套,不利于程序的维护和扩展,当业务需求发生变化时,对于程序员和美工都是一个很重要的负担,这就需要我们使用JavaEE技术来进行项目开发。
2.3 JSP技术以及关于JavaScript脚本语言的应用
JSP是由Sun Microsystems公司以及许多其它的公司一起建立的一种动态网页技术标准。JSP技术与ASP技术有很多类似的地方,JSP技术是在传统的网页文件中插入Java程序段和JSP标记,进而形成了JSP文件[4]。使用JSP技术开发的Web应用是跨平台的,既可以在Linux下运行,也可以在其他操作系统上运行。
JSP网页包含很多组件,诸如:JSP指示,可传递与页面相关的信息;JSP标识,大多数JSP处理将通过与JSP相关的基于XML的标识完成,标识易于在应用程序中使用和共享基于标识的语法来自标识库的开发,使得工具供应商能够为特定的要求创建和分派标识;JSP指示,JSP规范支持所有常用的脚本元件,包括声明和表达式。JSP技术的强势如下:一次编写,到处运行,系统的多平台支持,具有强大的可伸缩行,而且有多样化和功能强大的开发工具支持,支持服务器端组件。
JavaScript是一种能让你的网页更加生动活泼的程式语言,也是目前网页设计中最容易学又最方便的语言。JavaScript是一种动态、弱类型、基于原型的语言,通过浏览器可以直接执行,它编写在Html文件中,直接查看网页的原始码,就可以看到JavaScript程式,且JavaScript的结构较为自由松散,不具有读写档案及网络控制等功能,JavaScript多运行于客户端。
正是由于JavaScript的这些特点,应用JavaScript,可以弥补程序运行速度上的缺陷,同时它也扩展了Web页面的功能。使用JavaScript可以完成表单的验证,直接在客户端完成任务,大大提高了运行效率。利用计算机去处理一些问题,分担了数据库的工作量。此外,使用JavaScript为用户提供了更为丰富的使用体验,不需要刷新就可以改变页面的内容,和JSP技术相互配合,符合现在时下的发展潮流[5]。
2.4 数据库SQL Server 2005简介
Mircrosoft SQL Server 2005是一个应用广泛的数据库管理系统,具有许多显著特点,诸如用户喜欢的易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能等。
SQL Server 2005系统中,数据库的大小能跟随者数据量的缩小或者扩大而随之变化,之所以这样是由于数据库的管理采取了先进的动态管理机制。此外,用户的数据都是非常重要的和保密的,因为这些数据存储在Mircrosoft SQL Server 2005系统中是有绝对的安全性保障的,数据库系统有完善的用户帐户策略和许可机制,并且只有经过授权的用户才能访问系统,执行相应的操作和访问允许访问的数据。
SQL Server 2005是一个具备完全Web支持的数据库产品,具有强大的网上功能,可以在Internet上发布数据库中的数据。
2.5 B/S体系结构
本系统面向的对象时用户和系统管理员,所采用的结构是B/S体系结构
,结构图,如图2-1所示。
图2-1 B/S三层结构图
B/S体系结构与C/S体系结构相比,B/S结构所具有的优势:
1. B/S采用的标准,是通过标准化组织所确定而非一个厂家指定的,这样就保证了应用的跨平台性和通用性。
2. 采用B/S体系结构,用户安装了浏览器就可以使用,而且通过改变网页就可以实现所有用户的同步更新,便于维护和升级工作,开发简单,且共享性很强。由于不用对客户端做任何的改变,降低了开发和维护的成本。
3. 使用B/S,用户的界面都是在浏览器上,便于使用且界面友好,它不需要负责数据的存取和计算等任务,只需进行显示即可,这样减轻了客户端的工作量[6]。
由此可以看出来,B/S体系结构具有C/S体系结构所不具有的优势,它使得系统的开发和维护更加简单,在网上信息发布这一方面很实用。这是这一原因,网上书店采用了B/S模式的体系结构。
2.6 MyEclipse以及Web服务器Tomcat7.0的简要介绍
MyEclipse企业级工作平台是对EclipseIDE的扩展,利用它,我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提供工作效率。
使用MyEclipse可以知道软件开发周期,这样就提高了开发效率,它支持网页服务的技术,而且还可以通过拖放方式,更能快捷的实现创建,输入,输出Web服务,也可以利用它提供的一些的一些可视化插件,可以高效率的实现Web应用程序[10]。MyEclipse可以将现在的JSP转换为特有的Structs标签,同时提供了JSP标签库功能。这样大大提高了编码的效率,通过它还实现了代码语法检查,可以用不同颜色标注代码的变量和语句来标记错误,这样使得程序变得更清晰。
Tomcat是一个较为流行的服务器,它往往是开发和调试JSP程序的首选,尤其是在中小型系统和开发访问用户不是特别多的场合。对于一个学习时间并不长的人来说,非常实用。当我们在一台机器上配置好Apache服务器时,可以利用它响应对应的Html页面的访问请求。Tomcat实际上是Apache服务器的扩展,它是可以独立运行的,所以当你运行Tomcat时,它实际上是为一个和Apache独立的进程进行的[15]。
2.7 本章小结
在本章中主要介绍了开发软件时所用的开发工具和相关的技术,重点介绍了Java、J2EE平台和数据库等相关知识以及介绍了JSP的相关技术,运行环境以及开发工具。
第3章 需求分析
3.1 可行性分析
3.1.1 技术可行性分析
随着网络技术的不断发展以,用户需求的提高,以及网络页面技术的不断更新,使得Web站点的功能变得更加强大,所能提供的服务种类也更加繁多了。从Java的出现到ActiveX,Web页面,使得JSP不仅拥有了于Java一样的面向对象,跨平台等优点和特性,具有了JavaSerlet的稳定性,还拥有了使用Servlet提供的API、Java Bean及Web开发框架技术,使页面的代码和后台的处理分离,进而提高了工作的效率[17]。在时下较为流行的Web程序开发中,JSP是非常受欢迎的,由于它依赖Java语言的稳定,可移植性好,安全的优点,成为了很多网站的首选。当然,这也是本系统采用JSP的重要原因[18]。
本系统采用的是JavaEE+SQL Server实现的,由于已对JavaEE及SQL Server的熟悉,通过自己的专业知识和技能结合实际情况,该系统的编写与实现是可行的。同时,网页的实现遵循兼顾美观与高效的原则,使整个网站在保证功能的前提下,给浏览者带来良好的视觉享受。
3.1.2 安全可行性
管理员在进入系统后台管理之前,需要进行身份确认,只有当用户名和用户密码都相符,才可进入本系统对本系统的数据进行修改,删除,更新。非管理人员无法进入后台,对数据进行修改。
3.1.3 操作可行性
随着网络技术的普及,人们对于关于电脑的基本操作和维护都有了一定的认识,在进行界面设计时,全面考虑了购书用户和管理员的习惯,使得操作非常简单,统计准确,适应力强,容易扩充,数据的输入,规范且可靠[20]。
本系统的前台功能主要有用户注册和用户登陆、图书相关信息的展示、图书搜索、图书的购买等。如果不注册,用户只能浏览相关图书的信息,也可以经行图书搜索,但是不能够购买图书,只要注册用户在正确登陆后才能购买选中的图书等[21]。
后台功能是管理员进行的一系列操作,诸如图书信息的管理,图书类别管理,订单管理等。
3.2 功能分析
通常网上书店管理系统包括两个角色:购买图书的用户和系统管理员。对于不同的角色,将系统分为前台和后台两个部分。
前台部分即购买图书的用户
用户可以进行注册、登陆:如果用户只进行查验信息,则不必注册,但是如果需要购买图书,则必须注册为系统用户,以此来获得用户的基本资料。而登陆是系统验证用户身份的过程,使用户在进行物品交易时,可以对号入座。用户进行注册时,需要填写一些必要的个人信息和收货人资料,比如收货人姓名,登陆密码,电子邮箱等。用户在登陆时,只有将注册时填写的账号和密码填入,而后点击登陆按钮,即可以登陆。用户可以通过图书搜索功能,找到需要的图书,然后点击选中的图书,可以查看该图书的详细介绍,包括图书的名称及图书显示,显示图书的详细介绍。用户还可以通过网上书店,高效,方便地购买自己所需的图书。
后台部分即系统管理员
管理员通过填写正确的用户名和密码,进入网上书店的后台管理系统,可以对数据进行相关的管理,诸如管理员可以对图书信息、图书列别进行增添,修改,也可以添加系统图书,方便用户购书等。
3.3 数据流图
数据流图是描述系统逻辑模型的工具,它可以把系统中的各种业务处理过程抽象概括的联系起来。数据流图有四种基本的符号:圆角矩形代表变换数据的处理;正方形表示数据的源点或终点;两条平行横线代表数据存储;箭头表示数据流。
1. 顶层数据流图
该系统的顶层数据流图如图3-1。该系统分为用户和管理员两部分。
图3-1 顶层数据流图
用户的数据流图,如图3-2所示。
图3-2 用户部分的数据流图
管理员的数据流图,如图3-3所示。
图3-3 管理员部分的数据流图
2. 用户分解后的数据流图
注册登录的数据流图,如图3- 4所示。
图3-4 用户注册登录数据流图
查看、搜索图书信息的数据流图,如图3-5所示。
图3-5 用户查看搜索图书信息数据流图
用户购买图书的数据流图,如图3-6所示。
图3-6 购物车数据流图
订单结算的数据流图,如图3-7所示。
图3-7 订单结算数据流图
3. 管理员部分分解后的数据流图
图书信息管理的数据流图,如图3-8所示。
图3-8 图书信息管理数据流图
图书类别管理数据流图,如图3-9所示。
图3-9 图书类别管理数据流图
订单信息管理数据流图,如图3-10所示。
图3-10 订单信息管理数据流图
第4章 系统概要设计
4.1 数据库设计
数据库结构的设计在管理信息系统中有非常重要的地位,它将对应用系统的效率和实现效果产生很大的影响。优良的数据库结构设计可提供数据存储的效率,且能保证数据的一致和完整。
4.1.1 概念数据模型(CDM)
实体联系图是用来建立数据模型的,属于概念设计阶段,是独立于数据库管理系统的。构成E-R图的基本要素是实体、属性和联系。实体,是客观存在并且可以相互区分的事物,可以使具体的对象,也可以是抽象的对象。属性即是实体的特性,其中主属性是能唯一标识实体的属性。联系,也就是实体之间的相互关系,有三种类型,其中有一对一联系,一对多联系和多对多联系。
1. 根据用户的需求,建立九个数据库表,其中有订单信息表,订单详细信息表,用户信息表,用户详细信息表,图书信息表,图书类别表,图书评论表,图书推荐表,图书存储表。根据实际情况,确定实体之间的联系。前台E-R图,如图4-1所示。
图4-1 前台概念数据模型
2. 针对管理员功能需求建立的数据模型,后台E-R图,如图4-2所示。
4-2 后台概念数据模型
4.1.2 物理数据模型(PDM)
物理模型是对真实数据库的描述。数据库中的一些对象,诸如表,视图,字段,主键,外键,是否为空等。概念数据模型的转换是把概念模型中的对象转换成物理模型的对象。物理结构设计阶段的实现了数据库系统的内模式,其决定了系统的性能。因此在确定数据库系统的存储结构和存取方法之前,需对数据库系统的事务进行仔细的分析,以获得优化的物理设计参数。
物理数据模型不仅提供了系统初始设计所需要的基础元素,还有相关元素之间的关系;数据库的物理设计阶段必须在此基础上进行详细的后台设计。物理数据库模型的功能,可以将数据库的物理设计结果从一种数据库移植到另一个数据库,可完成多种数据库的详细物理设计,并且可以生成数据库对象的脚本。
1. 本系统的前台物理数据模型,由订单信息表,订单详细信息表,用户信息表,用户详细信息表,图书信息表,图书类别表,图书评论表,图书推荐表,图书存储表对应生成的,如图4-3所示。
图4-3 前台物理数据模型
2. 后台物理数据模型,由图书类别表,图书信息表,管理员信息表,订单信息表,用户信息表五个表对应生成的,如图4-4所示。
图4-4 后台物理数据模型
4.1.2 数据库表
1. 用户信息表(customerInfo):用户登录是需要用户名和密码,所以用户数据表中必须包含用户名(customerId)、密码(pwd)两个信息,还有些其他的用户信息,比如邮箱(email),从功能上数据库表设计,如表4-5所示。
表4-5 用户表
列名 |
描述 |
数据类型 |
长度 |
customerId |
用户ID,自增 |
int |
4 |
customerName |
用户名 |
varchar |
50 |
emaile |
邮箱 |
varchar |
50 |
pwd |
密码 |
varchar |
20 |
2. 图书信息表(bookInfo):图书信息表主要描述图书信息,如:书号(bookid),图书名称(bookName),图书类别号(bookTypeId),出版社(pbName),评论(context),价格(price),出版日期(pbdate),商品信息表,如表4-6所示。
表4-6 图书信息表
列名 |
描述 |
数据类型 |
长度 |
bookId |
图书ID,自增 |
varchar |
4 |
bookName |
图书名称 |
varchar |
50 |
bookTypeId |
图书类别号 |
int |
4 |
pbName |
出版社 |
varchar |
20 |
context |
评论 |
varchar |
40 |
price |
价格 |
money |
8 |
pbdate |
出版日期 |
datetime |
8 |
3. 图书存储(bookStock):图书数量的一些相关信息,如存储号(stockId), 图书Id( bookId),图书量(bookCount),已售出的数量(selledCount),最小存储量(minNum),如表4-7所示。
表4-7 供应商表
列名 |
描述 |
数据类型 |
长度 |
stockId |
存储ID,自增 |
int |
4 |
bookId |
图书Id |
int |
4 |
bookCount |
图书量 |
int |
4 |
selledCount |
已售数量 |
int |
4 |
minNum |
最小量 |
Int |
4 |
4. 购物车表(gwc):主要记录用户的订单信息,它主要描述以下信息:订单ID(id),订购人姓名(hy),图书名称(mc),数量(sl),价格(jg),合计(hj),订购日期(rq),操作(qd)等,如表4-8所示。
表4-8 购物车表
列名 |
描述 |
数据类型 |
长度 |
Id |
订单编号,自增 |
int |
4 |
Hy |
用户名 |
varchar |
50 |
Mc |
图书名称 |
varchar |
50 |
Sl |
数量 |
varchar |
50 |
Jg |
价格 |
money |
8 |
Hj |
合计 |
int |
4 |
Rq |
日期 |
datetime |
8 |
Qd |
用户操作 |
text |
16 |
5. 图书类型表(bookType),如表4-9所示。
表4-9 图书类型表
列名 |
描述 |
数据类型 |
长度 |
bookTypeId |
类型ID,自增 |
int |
4 |
bookTypeName |
图书类型名 |
varchar |
20 |
isDelete |
是否删除 |
int |
4 |
context |
备注 |
varchar |
40 |
6. 管理者信息表(adminInfo),如表4-10所示。
表4-10 管理者信息表
列名 |
描述 |
数据类型 |
长度 |
adminId |
管理员ID,自增 |
int |
4 |
adminName |
登录名 |
varchar |
50 |
adminPassword |
密码 |
varchar |
50 |
adminType |
管理类型 |
int |
4 |
4.2 总体结构设计
从前面的需求分析中得知,可以将功能分为前台功能实现和后台功能实现两类,因此模块可分为两类:前台模块和后台模块。
系统模块总图,如图4-11所示。
图4-11 系统模块总图
第5章 系统的详细设计与实现
5.1 系统详细设计
系统详细设计的任务是实现各个模块的功能,而且处理过程的设计尽可能的清晰明了。主要是使用了程序流程图进行说明程序的处理过程,进而易于在编码阶段,使设计的描述翻译为程序代码[21]。
5.1.1 首页图书浏览模块
图书展示也就是图书推荐,它是书店的一项基本功能,通过查看图书推荐,易于让购买图书的用户查看感兴趣的图书。这项功能是在首页即可完成,其模块如图5-1所示。
图5-1 用户首页浏览流程图
5.1.2 用户注册登录模块
用户注册模块:用户需要输入正确的用户名和密码才可以登录系统,进行购买图书,在此之前需要进行注册,具体模块流程图,如图5-2所示。
图5-2 用户注册登录模块图
5.1.3 购物车模块
购物车是网上书店非常重要的一个模块,用户在查看图书信息时,如果有满意的图书而且决定购买,则登陆系统后即可将图书加入到购物车进行购买。由于本系统不允许用户匿名访问购物车,所以未注册的用户,需要进行注册,然后登陆,这样可以浏览并购买所需要的图书,购物车模块流程图,如图5-3所示。
图5-3 购物车模块流程图
5.2 系统前台功能模块的实现
5.2.1 首页图书浏览模块
系统分为前台功能模块和后台功能模块,系统的首页面,包括图书推荐,用户登录、图书分类,图书搜索以及推荐书店等部分,其中图书推荐包括专题推荐、行家推荐、最新推荐、读者推荐,如图5-4所示。
图5-4 首页面运行图
当用户未登录时,点击购买按钮时,系统会返回到用户登录界面,运行结果,如图5-5所示。
图5-5 用户登陆界面
首页面中的专题推荐和行家推荐中,共提供了八本图书以及相关简介,未注册或者未登陆用户都可以进行对图书详细信息查询。用户也能通过左侧的分类浏览,搜索所需要的图书。用户选中某一本书,点击图书图标或者图书名,即可出现图书的详细信息,如图5-6所示。
图5-6 浏览图书的页面
在前台系统的首页面,用户可以看到搜索和组合搜索,两种搜索方式。当使用搜索时,用户根据自己的需要,通过输入图书名,图书作者或者其中的一个关键词,点击搜索进行查询图书。也可以使用另外一种搜索方式,用户点击组合搜索,将打开一个新的页面,可以通过组合搜索,根据书名、出版社、作者、价格范围等信息,来进行相关的搜寻,如图5-7所示。
图5-7 组合查询页面
图书的搜索是通过关键字这里进行的,主要代码如下所示:
public class FindOtherServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
BookInfoDAO bookInfoDAO = new BookInfoDAO();
int pageSize = 5;
int nowPage = 1;
int pageCount = 0;
int rowCount = 0;
String bookName = null;
String author = null;
String pbName = null;
float initPrice = 0;
float endPrice = 0;
if (request.getParameter("bookName") != null)
{
bookName = request.getParameter("bookName").trim();
if ("null".equals(bookName))
{
bookName = null;
}
request.setAttribute("bookName", bookName);
}
if (request.getParameter("author") != null) {
author = request.getParameter("author").trim();
if ("null".equals(author))
{
author = null;
}
request.setAttribute("author",author);
}
if (request.getParameter("pbName") != null)
{
pbName = request.getParameter("pbName").trim();
if ("null".equals(pbName)) {
pbName = null;
}
request.setAttribute("pbName", pbName);
}
if (request.getParameter("initPrice") != null && request.getParameter("endPrice") != null) {
String strInit = request.getParameter("initPrice").trim();
String strEnd = request.getParameter("endPrice").trim();
try {
if (strInit != null) {
initPrice = Float.parseFloat(strInit);
}
if (strEnd != null) {
endPrice = Float.parseFloat(strEnd);
}
}catch (NumberFormatException ex) {
System.out.println("数据转换错误");
ex.printStackTrace();
}
request.setAttribute("initPrice", initPrice);
request.setAttribute("endPrice", endPrice);
}
5.2.2 用户注册登录模块
用户在正确输入用户名和密码后,稍后即可返回首页,并且页面的左上角会显示出用户名,如图5-8所示。
图5-8 用户登陆成功界面
当用户的用户名或者密码输入错误时,系统也会返回首页,用户可以在首页点击新会员注册,可进行用户注册,如图5-9所示。
图5-9 用户注册页面
用户注册成功后,系统即可把用户所填写的信息添加到相应的数据库表即customerInfo表中,而后管理员可以在后台进行对用户数据进行管理。
5.2.3 购物车模块
当用户登陆成功后,可以点击购买按钮,购买所需要的图书,然后用户可以看到购物车的详细信息。用户可以点击继续购买按钮或者结账按钮。用户点击结账按钮时,可以看到订单详细信息;用户点击继续购买按钮时,将返回到首页面,用户可继续选择所需要的图书,如图5-10所示。
图5-10 我的购物车页面
当用户点击删除按钮时,可删除订单;用户点击结账按钮时,系统会把订单信息添加到订单信息表即orderInfo表中。
5.3 系统后台功能模块的实现
管理员后台管理包括:用户信息管理、图书信息管理、图书分类管理、订单管理。
在浏览器地址栏输如管理员后台登陆界面的地址,输入正确的用户名和密码即可进入后台系统,在系统首页面点击后台登录即可进入系统后台,如图5-11所示。
图5-11 后台登录页面
5.3.1 用户管理模块
管理员点击左侧的客户管理,便进入了用户管理界面,可看到客户信息表,这显示了前台所有客户的详细信息,管理员可以进行查看和删除操作,如图5-12所示。
图5-12 用户管理页面
5.3.2 图书信息管理模块
管理员点击左侧的图书信息查询,便可看到图书信息表,管理员可以进行修改和删除操作。如果需要添加新的图书,管理员可点击图书添加管理。管理员根据实际情况,填写图书的相关信息,比如图书列表,图书名称等信息,也可添加新书的封面。在将图书相关信息填写完成之后,可点击提交或者重置,如图5-13所示。
图5-13 添加图书页面
5.3.3 图书类别管理模块
图书类别管理是实现对图书类别的增加,删除和修改,以此实现对图书类别的管理。当管理员点击图书类别查询时,就会显示图书类别表,如图5-14所示。
图5-14 图书分类管理页面
5.3.4 订单信息管理模块
当管理员点击订单管理时,可以查看订单的详细信息,如图5-15所示。
图5-15 订单管理页面
第6章 系统的测试与维护
6.1 系统的测试
6.1.1 测试目的
软件测试是为了发现程序中的错误而执行持续的过程,一个好的测试很可能发现到目前为止还未发现的错误,成功的测试就是发现迄今尚未发现的错误的测试。但是软件测试的最终目的不是暴露问题,找到、发现问题就是为了解决问题,因而测试阶段的根本目标是尽最大可能地找到并排除软件中潜在的错误,并最后能使用户使用一款高质量的软件系统。然而,我们也应该意识到,软件测试并不能保证程序的完全正确。即便是经过了非常严格的测试后,也还是不能够确定程序中没有错误。因此,测试只是能找出程序的错误,不能够确保没有错误在程序中。
6.1.2 测试方法
本系统采用的是黑盒测试,也称功能测试。对于软件测试,黑盒测试就是通过测试来检查各个功能是否能够正常的使用。在测试时,就是把程序看成一个不能够打开的黑盒子,也就是在彻底的不考虑程序的内部结构和内部特性的情况下,通过程序接口来进行测试。黑盒测试是用来检测功能能否按照需求规格说明书的规定正常使用,程序能否可以在接收输入数据后产生正确的输出信息。由此可以看出,黑盒测试,也就是功能测试重在程序的外部结构,而不需检测内部逻辑结构,其主要是对软件功能以及软件界面进行相关的测试。黑盒测试是从用户的角度,测试了输入数据和输出数据的对应关系。
6.1.3 测试过程
设计测试用例
用例1:当管理与员登陆时,如果用户名或者密码有一项为空或者错误,系统是否给出预先设定的提升。
具体操作:用户名、密码、其中一项为空或者填写错误。
结果:都出现相应的错误原因的信息提示。
结论:需要管理员填写正确的用户名和密码,才可以进入管理页面。
用例2:管理员删除任意注册用户后,并让其登录,看是否登录成功。
具体操作:管理员删除任意会员表中的用户后,该用户在前台登录。
结果:该用户无法登录。
结论:用户数据删除功能正常。
用例3:管理员删除任意图书的信息,而后如果在前台按关键字查询,看是否能找到管理员操作的对应的信息。
具体操作:在图书管理页面中,点击图书类别查询,修改或者删除任意图书的信息。
结果:在前台搜索中,填写图书相关的关键字,查询不到此书已删除的信息。
结论:管理员删除图书信息的功能是正常的。
用例4:管理员修改任意的图书信息,而后如果在前台查找该书,看该书的基本信息是否修改。
具体操作:在图书管理页面中,选中一本书,点击修改按钮,将所需修改的项修改,点击提交按钮,然后返回前台,查看该书内容是否修改。
结果:在后台所改图书内容已修改。
结论:管理员修改图书信息功能正常。
6.1.4 测试分析
经过测试,各模块基本功能成功实现,能够达到预期效果,并且能够实现界面设计合理,方便用户操作,基本上满足了用户和管理员的需求。但是部分系统功能还不够完善,仍然需要经行功能的完善。
6.2 系统的维护
维护阶段的关键任务通过各种必要的维护活动使系统持久地满足用户的需要。纠错性维护,即软件在测试和验收时未发现错误和缺陷,到了使用过程中逐渐暴露出来,需要改正;适应性维护,即修改软件以适应变化了的硬件、软件系统的运行环境;完善性维护,即根据用户的要求给软件增加一些新的功能,使它更完善和合理;预防性维护,即为提供软件的可靠性和可维护性,有利于系统的进一步改造或者升级换代。
第7章 系统的总结与展望
本系统的设计,秉承了前人不断探索积累的优秀思想和方法,系统的设计总体来说是比较成功的,它顺利地通过了各项测试,可以成功地替代手工图书的管理。进而提高了管理效率,节省了成本,有很大的发展空间。本系统在前台界面,实现了用户的登陆,注册以及图书搜索。用户可以使用购物车,进行购买图书,计算所购图书花费的钱数,查看订单并且可以查看多种图书推荐,如行家专题推荐,最新图书推荐以及读者推荐等。后台界面主要是实现了管理员的相关操作,其中有用户信息管理,图书信息管理,图书类别管理以及订单管理。对于这些信息,管理员可以进行查看,修改,删除等操作。其中,图书信息管理和用户信息管理中,管理员可以添加用户以及图书相关信息。
然而,由于设计人员的水平有限,系统中难免存在着不够完善的地方,由于高等教育的不断改革创新,高校的招生机制也必将随之不断发展,因此本系统也必须随着用户需求的不断提出而逐步改进与完善自己,而这正是软件发展不断迭代求精的思想。系统的发展需要增加自身的可扩充性,使之能与其他软件配合使用,适应更多的应用平台。总之,通过我持之不懈的努力,相信系统的应用前景是非常可观的。
参考文献
[1] Andrea Steelman. Murach's Java Servlets and JSP[M]. Mike Murach & Associates,2000.
[2] 刘聪,等.零基础学Java Web开发[M].北京机:械工业出版社,2003.
[3] (美)Marty Hall,Larry Brown.Servlet与JSP核心编程第二版[M].北京:清华大学出版社,2004.
[4] 梁立新.项目实战精解基于Struts+Spring+Hibernate的Java应用开发[M].北京:电子工业出版社,2006.
[5] Brett Spell.Pro Java Programming .Second Edition[M].北京:清华大学出版社,2006.
[6] Bruce Eckel.Thinking in Java (4 th Edition) [M].北京:机械工业出版社,2007.
[7] 李钟尉,周小彤,陈丹丹,等.Java从入门到精通(第2版) [M].北京:清华大学出版社,2007.
[8] Bert Bates.Head First Servlets & JSP:Passing the Sun Certified Web Component Developer Exam [M]. O'Reilly Media,2007.
[9] 孙鑫.Servlet JSP深入详解:基于Tomcat的Web开发[M].北京:电子工业出版社,2008.
[10] 司德睿.基于文本内容的网页过流技术研究[D].兰州:兰州大学,2008.
[11] 邬继成.J2EE开源编程精要15讲:整合Eclipse、Struts、Hibernate和Spring的Java Web开发[M].北京:电子工业出版社,2008.
[12] 王国辉,等.Java Web开发实战宝典[M].北京:清华大学出版社,2008.
[13] 李兴华,王月清.Java Web开发实战经典基础篇[M].北京:清华大学出社,2008.
[14] 刘晓华,张健,周慧贞.JSP应用开发详解(第3版) [M].北京:电子工业出版社,2008.
[15] (美)威尔顿,麦可匹克.JavaScript入门经典(第3版) [M].北京:清华大学出版社,2009.
[16] 斯琴巴图,等.SQL技术与网络数据库开发详解[M].北京:清华大学出社,2009.
[17] 帕特里克 (Patrick.J.J.),刘红伟,董民辉.SQL编程基础(原书第3版)[M]北京:机械工业出版社,2009.
[18] 孙卫琴.精通Hibermate:Java对象持久化技术详解[M].北京:电子工业出版社,2010.
[19] 吴彦.基于J2EE系统设计模式[J].电脑知识与技术,2010.6(30):8443-8445.
[20] 韦拉(Robert Vieria),杨大川,孙皓,马煜.SQL Server 2008编程入门经典(第3版)[M].北京:清华大学出版社,2010.
[21] 黄云梯.管理信息系统[M] .北京:高等教育出版社,2008.
[22] 张海藩.软件工程导论[J].北京:清华大学出版社,2003.
[23] JavaEye 中国最大的Java技术社区 http://www.javaeye.com.
[24] JavaEE 技术社区http://www.j2eedve.com/.
致 谢
完成本论文及设计需要感谢的人很多,首先要感谢的是我学校的导师老师,他不厌其烦地给予我指导与帮助,并且为我提供了很大的便利条件,使我能够较好的安排毕业设计的时间。孙老师对我的论文进行了细致且严格的指导,同时在技术上出现的问题,他也给出了大力的支持。他严谨的工作作风也教育了我,在我以后的学习生活中,有很大的影响。在此对孙老师表示深深的感谢。
通过本次毕业设计,自己的知识得到了巩固和扩展。在毕业设计的实践中,尤其是在收集资料、分析资料过程中掌握了一些分析问题、解决问题的能力,在这过程中也参考了别人的一些书籍和论文的思路,并应用到自己的设计当中。当然,在这次设计中也有很多问题没有考虑到,在编写过程中遇到了一些困难,在老师和同学的热心帮助下,一一克服了这些困难。这使我自己的动手能力得以增强。在专业知识方面,我学到了很多新的东西,也体会到了毕业设计不仅仅是简单的课程,它需要方方面面的考虑,同时也必须具备比较全面的知识。
在论文即将完成之际,我还是想用无力的语言表达我想说的话,谢谢各位可敬的师长、同学、朋友,只能在此表达我最诚挚的谢意!总之,要感谢所有在我完成设计的过程中,帮助过我的老师和同学,感谢他们的大力的支持和热情的帮助,在此表达我衷心的感谢。
标签:基于,Java,书店,JavaEE,系统,用户,JSP,管理员,图书 来源: https://www.cnblogs.com/epoch211/p/12629535.html