1、电子书城毕业设计692020年4月19日文档仅供参考哈 尔 滨大 学毕 业 设 计题 目: 院、 系: 姓 名: 指导教师: 系 主 任: 年 月 日摘 要伴随着Internet的蓬勃发展,网上购物作为电子商务的一种形式正以其高效、低成本的优势,逐步成为新兴的经营模式和理念,人们已经不再满足用途信息的浏览和发布,而是渴望着能够充分享受网络所带来的更加多的便利。网络书城正适应了当今社会快节奏地生活,使顾客足不出户便能够方便快捷轻松地选购自己喜欢的图书。电子商务的战略作用正逐渐被全球各国所认识到,在这种情况下需要一种更加便利和先进的方式来快速交流和处理商业往来业务。顺应时代需求,本系统便是尝试用J
2、SP在网络上架构一个动态的电子商务系统,它是在Windows XP下,以Mysql为数据库开发平台,Tomcat网络信息服务作为应用服务器,采用JSP(Java Server Pages)技术、JAVA等多种技术开发的,并完成一个基于这种技术的网上书店系统。本系统是经过MyEclipse工具开发的图书商城是建立在企业与消费者之间的商务交易网站,用户在本电子图书商城网站上能够方便、快捷地查找到所需商品的信息,并能够足不出户地购买图书。本系统是一个典型的JSP数据库开发运用程序,主要是分为前台部分和后台部分,前台部分是面向用户,主要包括用户注册,购物车,产生订单,系统公告,个人资料管理,新书上架,
3、销售排行,搜索等功能;后台部分是面向管理员,主要包括商品管理,订单管理,用户信息管理,公告管理等功能。本文讲述了Java、JSP在WEB应用的一些基本知识,并经过图书商城的程序对JSP的运用进行了深化,而且简单的对系统的开发目的、意义以及现状,系统的概要设计,数据模块设计,会员管理模块,购物车模块,商品管理模块,后台公告模块,系统测试以及维护等方面内容进行了介绍。本文依据软件工程原理,经过需求分析、总体设计、详细设计、系统实现、测试总结及系统维护,完成了电子商务图书商城系统。从本文中可看出JSP与Spring框架结合的模式,在电子商务上应用十分灵活。关键字:JSP ;Mysql;Tomcat;
4、网上购物系统AbstractWith the rapid development of Internet, online shopping as a form of e-commerces are its high efficiency, low cost advantage, and gradually become the business model and concepts emerging, it has been Buzaimanzu Yongtuxinxi browsing and release, Ershikewang forward to the full enjoymen
5、t of the network brought more and more convenient. Internet bookstores are adapted to live in todays fast-paced society, so that customers can easily and quickly without leaving home would easily choose their favorite book.Strategic role of e-commerce is gradually being recognized by countries aroun
6、d the world, in this case requires a more convenient and advanced way to quickly exchange and processing of business transactions. Comply with requirements of the times, the system is trying to use JSP in the network on the structure of a dynamic e-commerce system, it is in Windows XP, to SQL Server
7、 development platform for the database, Tomcat server, network information services as Ying Yong, Cai Yong JSP (Java Server Pages) technology, JAVA and other technology development, but also related to the Spring application framework, and the technology to complete an online bookstore based system.
8、 This system is the tool developed by Library Mall MyEclipse is built between businesses and consumers Zai business trading site, a user in the e-books can be Fangbian mall site, fast to find the required product information, and Ke Yi go abroad households to buy books. This system is a typical use
9、of JSP database development process, mainly divided into the front part and back part, front part is for the user, including user registration, shopping cart, create order and the system notice, personal information management, book shelves , sales rank, search and other functions; back part is for
10、administrators, including merchandise management, order management, customer information management, announced management.This article describes Java, JSP, Spring WEB application in some of the basic knowledge and procedures through the book shop on the use of JSP was to deepen and develop the syste
11、m simple purpose, meaning and status, a summary of the system design, data module design, member management module, the shopping cart module, product management module, the background announcement module, system testing and maintenance aspects were introduced. This according to software engineering
12、principles, through requirements analysis, design, detail design, system implementation, test summary and system maintenance, complete e-commerce books Shopping Mall. This can be seen from the JSP with Spring Framework integration model is flexible e-commerce applications.Keywords: JSP; Mysql;Tomcat
13、;Online shopping sysm 目录 摘要IAbstractII第一章 绪论51.1 课题背景51.2开发的目的和意义51.2.1开发该系统的目的51.3网上购物的现状和发展前景61.3.1网上购物的现状61.3.2网上书店的发展前景61.4 论文的工作内容及论文的结构(加上这部分)6第二章 需求分析72.1本系统的的可行性分析72.4系统功能用例图8从用户的角度8第三章 总体设计93.1系统总体功能图93.2系统需要实现的功能93.3业务流程图103.4数据分析113.5数据库连接池12第四章 详细设计154.1主界面设计154.1.1网站前台164.1.2在线购物功能214.1
14、.3用户订单管理254.2后台管理功能开发264.2.1管理员登陆264.2.2图书管理模块274.2.3订单管理模块304.2.4用户管理模块33第五章 系统测试36测试36软件测试的方法36模块测试37测试概要37模块测试37测试结果38结论38参考文献39致 谢40第一章 绪论1.1 课题背景网络的发展速度是非常惊人的,自70年代网络的出现至今,仅仅过了30年左右的时间,而联网的主机数量、网络的规模、信息交换的数量和速度都已经有了长足的进步。今天的人们,无论身在何方,只要她们连入了互联网,利用各种网络中的传输技术(电子邮件、图文传输),便将她们联系在一起。尽管她们实际上是天涯海角。网络技
15、术使这个世界变得小了,增进了人们之间的联系。 网络的发展,刺激了新技术的诞生。其中JAVA技术是比较突出的,它一出现便马上引起了人们的关注。Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。自从1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化。在早期,Java比较多的用在浏览器上,插入到网页中(即是Java Applet程序),成为最灵活、最强大的网页多媒体的载体,但由于Java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet逐渐的被后起之秀Flash所替代,但随着Java Servl
16、et的推出,Java在电子商务方面开始崭露头角,最新的JSP(Java Server Page)技术的推出,更是让Java成为基于Web的应用程序的首选开发工具,当前的Java技术已成为所有大型电子商务项目的必然选择。1.2开发的目的和意义1.2.1开发该系统的目的网上购物服务已经逐渐深入到人们的生活中,给人们的生活带来很多方便。然而大多数的电子商务网站,都只是一个简单的在线说明书或销售工具。尽管它是一种低成本广告方式,可是不提供重要信息、缺乏介绍、不回答反馈、以及网站信息的更新,使得这类网站很难吸引顾客、招揽生意。JSP的全称是Java Server Pages,是一种以Java为主的跨平台
17、Web开发语言,它具有安全性,健全性,运行效率高等许多优点。本系统是利用jsp技术开发与实现。在网上开书店是一种电子商务行为,制作一个电子商务网站最大的目的就是盈利。盈利靠的就是销量,而网站是否具有吸引力则是决定销量最主要的因素。为了充分利用现有资源,提高工作效率,降低劳动成本,我们小组选择对图书商城系统进行了开发。该系统解决了网上售书的所需要的功能,对用户使用来说,具有操作简单、界面直观等优点;对于系统管理员来说,管理功能完备,操作方便。该系统利用了JSP技术的方便、快捷和普遍,提高了售书的效率,并降低了劳动强度。1.2.2开发本系统的意义 电子商务(ElectronicCommerce)是
18、在Internet开放的网络环境下,基于浏览器/服务器应用方式,实现消费者的网上购物、商户之间的网上交易和在线电子支付的一种新型的商业运营模式1。网上购物就是把传统的商店直接“搬”回家,利用Internet直接购买自己需要的商品或者享受自己需要的服务。专业地讲,它是交易双方从洽谈、签约以及贷款的支付、交货通知等整个交易过程经过Internet、web和购物界面技术化的B-C模式一并完成的一种新型购物方式,是电子商务的一个重要组成部分2。因此,有人将此视为一个面向全国乃至全世界的大而统的虚拟商场。随着信息技术的发展,搭上国际网络直通车的文化企业面临着一场新的革命。网站在促成销售方面很有价值,因为
19、有绝大部分的消费者在某商场购物之前会事先到该商场的网站中查询产品信息,实体商店尽管将网站同样也看作一个销售渠道,但对于网站的服务投入很少。这主要是由于对电子商务战略的评价方法存在问题,因为有很多的零售商将销售额作为网站是否成功的指标,有些公司用利润来评价。不过,网上零售商不应该将这种信号看作网上零售能够带来丰厚利润的信号,尽管在网络泡沫膨胀时很多人都这么认为。纯粹的网上零售商理应将网站带来多少利润作为最重要的业绩考评指标。多渠道零售商应该了解,并非每个浏览她们网站的顾客最终都会购买。拥有一个很成功的电子商务网站的零售商,收益将比非交易功能的网站多很多。那些希望将网上交易作为部分业务内容的公司发
20、现,将网上网下集成起来很重要。尽管网上网下相结合成为不可逆转的趋势,可是由于集成的费用可能很高,使得许多零售企业的进程大为减慢,最好在商场内部系统软件已经基于网络标准更新之后再进行整合,一些大型商场的转型都经历了这个过程。由于无法量化,实体商店不能不考虑她们的网站对商店购买的影响,商店花费有限的网络资源支撑网站交易基础是有代价的,有可能最终失去有购买计划的顾客,最终将网下市场份额丢失给精明的竞争者。本系统正是经过对实际商店情况进行了量化分析后才开发的,将能够很大的提高竞争力。1.3网上购物的现状和发展前景1.3.1网上购物的现状 出版物网上销售不但是传统销售渠道的发展和补充,也是未来图书销售的
21、发展方向当前中国运作和销售较好的大型网上书店,如当当、卓越和旌旗席殊、中国书网网上书店等,这些网上书店各具优势,其中当当网上书店在价格和品种方面的优势是无人能比;卓越网上书店创造流行的能力比较强;旌旗席殊网上书店的优势是网点多,覆盖面广。在国外,影响较大的网上书店有美国的亚马逊,德国的贝塔斯曼和英国的因特网书店。其中亚马逊网上书店在1998年拥有450万名顾客,到 有将近42亿人网上购书,销售额达到了98亿美元3。中国书业界人士分析,未来中国的网上售书将成为图书销售渠道中的重要渠道。中国第一家网上书店是1995年建立的中国书店网上书店。1997年4月杭州新华书店建立了新华书店系统的第一个网上书
22、店。后来发展比较有影响的有当当网上书店、卓越网上书店、旌旗席殊网上书店、中国书网北京图书大厦、上海书城、中国寻书网等。1.3.2网上书店的发展前景电子商务的发展有其必然性和可能性。传统的商业是以手工处理信息为主,而且经过纸上的文字交换信息,可是随着处理和交换信息量的剧增,该过程变得越来越复杂,这不但增加了重复劳动量和额外开支,而且也增加了出错机会,在这种情况下需要一种更加便利和先进的方式来快速交流和处理商业往来业务;另一方面,计算机技术的发展及其广泛应用和先进通信技术的不断完善及使用导致了EDI和Internet 的出现和发展,全球社会迈入了信息自动化处理的新时代,这又使得电子商务的发展成为可
23、能。据互联网调查公司艾瑞市场咨询估计, ,中国在线购物市场总值已达84亿元人民币,并预计今年该金额将翻一番。第二章 需求分析2.1本系统的的可行性分析随着计算机技术的发展和网络人口的增加,网络世界也越来越广博,越来越丰富,电子商务已经成为网上的一股潮流。我们相信用不了太长有时间,顾客就能够在网络世界上获得她们在现实世界上能够获得的所有商品和服务。可行性研究是为了弄清楚系统开发的项目是不是能够实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,因此,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的市场调查得出以下四点的可行性分析(1)经济:实现这个平台
24、设计有没有什么经济效益。该平台设计只是作为本小组的课程设计,又因为大家的设计能力有限,其功能还不能完善,因此没有什么经济效益可谈。(2)技术:现有的技术能否开发该平台,会有哪些困难。(3)运行:该平台规定的运行方式是否可行。(4)法律:该平台的开发会不会在社会上引起侵权等问题。因为该平台是作为课程设计与商业无关,又因是自主开发设计,因此不会构成侵权,在法律上是可行的4。经过相关调查与实力评估本系统的开发是具有可行性的。2.2前台功能需求分析(加上概述说明)图书查询:当客户进入图书商城时,应该在主页面中分类显示最新的图书信息,以供客户选择所需图书,同时也应该提供按照图书名称,或者作者信息快速查询
25、所需书目信息的功能。会员注册:为了能够实现图书商品的购买,需要管理客户相关的联系方式、送货地点等相关的信息,用户也能够自主对注册信息进行修改。购物车管理:当客户选择购买某图书产品时,应该能够将对应图书信息,如:价格、数量记录到对应的购物车中,并允许客户返回书目查询页面,选择其它商品,并添加到购物车中,当对应的购物订单生成后,应该能够自动清除以生成订单的购物车中的信息。产生订单:对应客户购买图书商品信息的需求,在确定了所购图书商品的价格、数量等信息后,提示用户选择对应的送货方式及付款方式,最终生成对应的订单记录。公告显示:当客户进入到图书商城时,在主页面中显示出该商城的一些公告,譬如优惠活动或者
26、其它的一些提示信息,便于用户更好的浏览和使用该商城。2.3后台功能需求分析图书管理:为了实现商城的更新性,商城管理员应该能够对图书信息进行添加删除以及修改,将商城图书的最新消息及时的提供给客户。订单管理:对于客户在浏览时选中的图书所下的订单,管理人员应该能够及时的依据客户所提交的订单信息进行后期的出货送货的处理。用户信息管理:管理者应该能够具有查询用户信息的功能,在用户忘记相关信息是能够给予相应的帮助,同时对恶意的用户保留冰冻该用户的权利。公告管理:为了更好的体现商城的便捷性,管理员应该具有添加删除以及修改系统公告的权利。2.4系统功能用例图从用户的角度选购浏览查询购物车 注册登录结账用户 图
27、2-3 用例图(用户) 根据图2-3能够看出,从用户角度来看,主要功能包括图书选购,用户登录,用户注册,浏览图书,查询图书,购物车,结账功能。从管理员的角度用户管理图书管理订单管理身份验证公告管理添加删除修改查询管理员 图2-4 用例图(管理员)根据图2-4能够看出,从管理员角度来看,主要功能包括图书管理,订单管理,用户管理,公告管理。能够对数据库进行添加、删除、修改、查询。第三章 总体设计3.1系统总体功能图 在总体需求的指导下绘出系统总体功能图网上书店登录书籍浏览书籍查询用户登录用户注册用户退出购书购物车管理订单管理后台管理用户管理书籍管理3.2系统需要实现的功能进一步细化个板块功能的具体
28、要求。书籍浏览书籍列表显示书籍列表图书详细信息显示图书详细信息书籍查询图书名称查询按图书名称查书 图书作者查询按图书作者名称查书购物管理购物车管理 图书加入购物车在购物车中加入图书 购物车查看查看购物车中的信息 购物车图书删除删除购物车中的图书订单服务 订单录入录入订单信息 订单删除删除订单信息 订单查询查询订单信息 订单提交提交订单信息,而且提交后的订单只能查询图书管理图书信息录入录入图书的基本信息图书信息修改修改图书的基本信息图书信息删除删除图书的基本信息图书基本信息查询查询图书的基本信息用户注册注册成会员用户登录登录后购买图书用户退出退出登录后台管理用户管理用户登录3.3业务流程图网上书
29、店分为客户和管理员两个入口。客户购书流程图主要描述了客户网上购买图书的整个过程,主要功能有用户的注册与登录,图书的浏览,选购和下订单。1、用户查看图书信息,挑选感兴趣的图书,放入自己的购物车。2、用户首先必须注册为系统用户,而且登录进入系统后才能下订单选购图书。3、客户选完图书后填写订单,确认所购图书后提交订单,而且可查询订单的情况。是否登录用户入口查找图书客户选书用户登录放入购物车客户保存订单,或提交订单是否用户判断是否注册是否用户自助注册再选其它图书管理员管理流程图:该流程图主要描述了管理员的管理过程,主要是更新图书书目、订单查看、用户管理。管理员入口录入图书信息图书入库查询订单信息用户管
30、理(上图需要再考虑一下)3.4数据分析管理员数据实体:只需要记录管理员用户名和密码 , 这两项是进行管理功能模块登陆验证所必须的 注册用户数据实体:包括用户名、密码 、真实姓名、性别 、联系地址、联系邮编 、联系电话 、电子邮件这些信息有用户自己进行维护 , 管理员能够根据这些信息来了解用户 。 图书类别数据实体: 用以记录该系统中图书的类信息 ,主要记录图书的类别名称和编号。 图书信息数据实体:用以记录图书的基本信息, 包括 图书名、 作者、 出版社 、书号、 定价 、 总数量 、 图书简介、 图书类别、 这些数据由管理员进行录入和维护 , 用户进行浏览和选购图书 。 以上四个实体都是基本的
31、数据实体 ,作为电子购物网站 , 购买的信息需要随时记录和更新 ,注册用户登陆后选购图书 ,下达订单时需要记录的有该用户下达的订单和某一个订单对应的图书信息 , 因此,又有如下两个实体 。 用户数据订单实体:记录所有用户下达的订单的记录, 包括用户的身份编号、 订单的编号、订单的名称、下达订单的时期、付款状态、 发货状态, 管理员能够根据实际的状态来修改部分状态信息 用户能够随时查看该订单的状态信息。 订单图书数据实体:记录所有订单包含的图书信息 、包括订单的编号、图书的编号 这样一共6个实体, 设定每个数据实体都有一个id作为她的唯一标识 ,那么这6个数据实体的关联关系 。用户订单 编号ID
32、 用户ID 订单ID 商品ID订单商品注册用户 编号ID商品信息 编号ID 类别ID商品类别 编号 数据实体关系图(看软件工程中E-R图的画法) 3.5数据库连接池 (放在这不太恰当)在实现某个数据库访问功能时 ,首先是要连接数据库 ,如果在每个需要进行数据库的操作中都来加载驱动创立连接,那么在连接的入口参数处理上将是十分分散,不好管理和维护,一旦系统移植 数据库参数就改变,则要需要重新修改所有的连接代码 ,重新变异 这项工作十分复杂而不必要,我们采用如下代码来统一管理数据路的连接 :public class DBConnectionManager private String driverN
33、ame = org.gjt.mm.mysql.Driver; private String url = jdbc:mysql:/localhost:3306/ebiz?useUnicode=true&characterEncoding=GBK; private String user = root; private String password = 123; public void setDriverName(String newDriverName) driverName = newDriverName; public String getDriverName() return drive
34、rName; public void setUrl(String newUrl) url = newUrl; public String getUrl() return url; public void setPassword(String newPassword) password = newPassword; public String getPassword() return password; public Connection getConnection() try Class.forName(driverName); return DriverManager.getConnecti
35、on(url, user, password); catch (Exception e) e.printStackTrace()3.6数据库详细设计 数据库设计数据库表有 My_BookAdminuser(管理员表)表、My_User(注册用户表)表、My_BookClass(图书类别表)表、My_Book(图书信息表)表、My_Indent(用户订单表)表 My_IndentList(订单图书表)。表结构分别如下(表要求是三线表)My_BookAdminuser(管理员表)表结构字段名称类型描述AdminUserVarchar2(20)管理员用户名AdminPassVarchar2(20)管
36、理员密码My_User(注册用户表)表结构字段名称类型描述idnumberId的序列号UserNamevarcher2(20)购物用户名PassWordvarcher2(20)用户密码Namesvarcher2(20)用户联系用姓名Sexvarcher2(20)用户性别Addressvarcher2(150)用户地址Phonevarcher2(25)用户电话Postvarcher2(8)用户邮编Emailvarcher2(50)用户电子邮件Reg TimeDate用户注册时间RegIpAddressvarcher2(20)用户注册时的ip地址My_BookClass(图书类别表)表结构字段名称
37、类型描述IdNumberId序列号ClassNamevarcher2(20)图书类别名My_Book(图书信息表)表结构字段名称类型描述IdNumberId序列号BookNamevarcher2(40)书名BookClassNumber图书类别Authorvarcher2(25)作者Publishvarcher2(150)出版社BookNovarcher2(30)书号Contentvarcher2(3000)内容介绍PrinceNumber(6.2)书价AmountNumber总数量Leav_numberNumber剩余数量RegTimedate登记时间My_Indent(用户订单表)列表字段
38、名称字段类型IdNumberId序列号IndentNovarcher2(20)订单编号UserIdNumber订单序列号SubmitTimeDate订单提交时间ConsignmentTimevarcher2(20)交货时间TotalPrintNumber(6,2)总金额Contentvarcher2(400)用户备注IpAddressvarcher2(20)下单时的ipIspayoffNumber用户是否已付款IsSalesNumber是否已发货My_IndentList(订单图书表)字段名称字段类型IdNumberId序列号IndentNoNumber订单号表序列号BookNoNumber图
39、书表列表号AmountNumber订货数量第四章 详细设计4.1主界面设计4.1.1网站前台首页设计 对于电子商务网站来说,首页是极其重要的,首页设计的好坏将直接影响到顾客购买的情绪,在本系统的首页中,用户不但能够再第一时间内掌握商城推出的特价图书、上架新书、最新公告等,还能够搜索指定图书、图书分类查询等。运行界面如图: 用户注册 用户注册界面对应的数据表是用户MY_User根据这个表的字段信息 可知注册界面中需要填入的用户信息包括:登陆用户名、密码、确认密码 (以便保证用户两次输入的密码一样)真实姓名、性别、联系地址、联系电话、电子邮件 。界面如下 : 管理员可能需要修改某个用户的信息,它的
40、界面也如这个界面 用户注册的页面是reg.jsp 在用户单击“注册”按钮保存填入的数据时,Jsp页面把提交的对象request作为参数传入usermn.java类中,取得的参数的方法与添加图书时取出参数的方法相似,在执行添加新用户之前,需要检验新输入的用户名是否在系统中存在 ,一旦存在则不允许添加,这样使每个用户拥有唯一一个用户名,然后在根据表My_User组合insert语句 。 执行代码如下 : /用户注册 public boolean insert(HttpServletRequest req) throws Exception if (getRequest(req) sqlStr =
41、select * from My_users where username = + user.getUserName() +;rs = stmt.executeQuery(sqlStr);if (rs.next()message = message + 该用户名已存在!;rs.close();return false;sqlStr = insert into my_users (username,password,Names,sex,Address,Phone,Post,Email,RegTime,RegIpaddress) values (;sqlStr = sqlStr + strForm
42、at.toSql(user.getUserName() + ,;sqlStr = sqlStr + strFormat.toSql(user.getPassWord() + ,;sqlStr = sqlStr + strFormat.toSql(user.getNames() + ,;sqlStr = sqlStr + strFormat.toSql(user.getSex() + ,;sqlStr = sqlStr + strFormat.toSql(user.getAddress() + ,;sqlStr = sqlStr + strFormat.toSql(user.getPhone()
43、 + ,;sqlStr = sqlStr + strFormat.toSql(user.getPost() + ,;sqlStr = sqlStr + strFormat.toSql(user.getEmail() + ,now(),;sqlStr = sqlStr + user.getRegIpAddress() + );trystmt.execute(sqlStr);sqlStr = select max(id) from My_users where username = +user.getUserName()+ ;rs = stmt.executeQuery(sqlStr);while (rs.next()userid = rs.getLong(1);rs.close();return true;catch (SQLException sqle)return false; elsereturn false;