1、编号: 毕 业 设 计(本科)题 目: 基于Java网上书城设计与实现 系(部)院: 信息技术与传媒学院 专 业: 计算机科学与技术 作者姓名: 陈卫国 指引教师: 祁金佺 职称: 讲师 完毕日期: 年 5 月 15 日 河西学院本科生毕业论文(设计)诚信声明本人郑重声明:所呈交本科毕业论文(设计),是本人在指引教师指引下,独立进行研究(设计开发)工作所获得成果,成果不存在知识产权争议,除文中已经注明引用内容外,本论文不含任何其她个人或集体已经刊登或撰写过作品成果。对本文研究做出重要贡献个人和集体均已在文中以明确方式标明。本人完全意识到本声明法律成果由本人承担。 本科毕业论文(设计)作者签名:
2、 二一七年五月十五日摘 要进入21世纪,电子商务已经逐渐成为主流商业模式,“当当”、“京东”和“淘宝”演变成为咱们生活中一某些、一种生活习惯。随着IT技术进步和发展, 网上书城已经成为一种新型图书销售形式。本文综合分析了网上书城顾客需求和系统业务流程,并针对分析和详细设计等进行了详细简介。该系统通过度析客户需求,拟定了系统功能模块,将网上书城功能模块提成两某些,即前台功能管理模块和后台功能管理模块。前台功能管理模块,实现了首页展示、商城公示、销售排行、图书分类、购物车、订单生成等重要功能;后台管理模块,实现了后台登录功能、图书管理功能、顾客管理功能、前台管理和订单管理功能等。通过实现这些模块,
3、顾客可以很以便实现网上购书目和管理员对书城更好管理。本系统采用了当前成熟完善技术体系。开发平台选用基于Java语言MyEclipse,实现方式采用B/S架构,系统遵循J2EE模型体系和MVC设计模式,核心技术上选用当前Web系统主流“Struts+Spring+Hibernate”开发手段。核心词:网上书城;电子商务;JSP;SSH;MVC AbstractE-commerce has gradually become the mainstream business model in twenty-first Century. E-platforms like Dangdang,Jingdon
4、g and Taobao plays an essential role in our life. On the consequence,online shopping has been a normal lifestyle. With development of IT technology,online bookstores has become a new approach to book sales.This paper analyses users needs of the online bookstores as well as the processes of system se
5、rvice. Focusing on comprehensive analyses and specific designs,the thesis provides a detailed introduction. From the analyses of users needs,the system determines two function modules,namely the front desk management function module and the backstage management function module. The front desk the ma
6、nagement function module have the following parts:homepage display and key recommendation,online announcement,sales rank,book classification,shopping cart and orders. While the backstage management module cover functions of the backend login,books management,user management,and order management. Thr
7、ough the effective operation of these modules,users are easily able choose and buy books online while the administrator can manage the website more efficiently. The system adopts advanced and developed technology. The platform employs MyEclipse based on Java language to use the B / S structure. The
8、system follows the J2EE system and the MVC pattern. Referring the key technology,the popular tool,Struts + Spring + Hibernate in web system,is widely used.Keywords:Online bookstore;E commerce;JSP;SSH;MVC 目 录第一章 设计概述11.1 设计背景与意义11.2 同类或有关系统开发现状11.3 选题重要工作内容21.4 本章小结2第二章 系统采用有关技术32.1 MVC设计模式在系统中应用32.2
9、 SSH框架在系统中应用32.2.1 Struts 2.0应用32.2.2 Spring 4.2.4 应用32.2.3 Hibernate 4.3.11 应用42.3 Web服务器技术应用42.4 MYSQL数据库应用42.5 本章小结4第三章 系统分析与设计53.1 系统分析53.1.1 顾客角色分析53.1.2 需求分析53.2 功能模块设计53.2.1 总体功能模块设计53.2.2 详细功能模块设计63.3数据库设计103.3.1 数据库设计概述103.3.2 数据库构造设计103.4 本章小结13第四章 系统实现144.1 系统开发配备144.2 前台功能模块实现144.3 后台功能模
10、块实现224.4 本章小结28第五章 系统安装布置和简要使用阐明295.1 系统运营环境阐明295.1.1 服务器软硬件环境阐明295.1.2 客户机软硬件环境阐明295.2 系统安装布置阐明29第六章 结束语30道谢31参照文献32第一章 设计概述1.1 设计背景与意义随着当代互联网技术飞速发展,计算机网络已应用在咱们生活各个领域并发挥着举足轻重作用。网上书城凭其图书信息更新快、存储量大、达到交易安全性高、操作简便快捷等特点1,迅速走进人们寻常生活。通过计算机对图书销售数据进行集中管理,可以随时查阅销售信息、发货信息、库存信息、财务信息从而做出对的决策2,消费者也可以随时关注商品有关信息和物
11、流信息,这对于当代年轻人而言,有着极大吸引力,因此开发一套管理以便、安全、可靠、快捷网上书城销售管理系统无论对于图书商家还是普通消费者而言都是一件非常有必要工作3-5。1.2 同类或有关系统开发现状在国外,影响较大有美国亚马逊,它成立之初只经营网络书籍销售业务。当前则扩及了范畴相称广其她产品,已成为全球商品品种最多网上零售商和全球第二大互联网公司6。亚马逊商城首页如图 1-1 所示:图 1-1 亚马逊商城首页图国内网上书城,虽然起步较晚,但是由于国内人口基数大,需求量多,得力于人口红利因素,因此国内网上书城发展非常迅速。当前国内运作和销售较好大型网上书店,如当当、京东、天猫、文轩网、99网上书
12、城,经营模式重要涉及:B2B、B2C、C2C。当当网首页如图 1-2 所示:图 1-2 当当网首页图1.3 选题重要工作内容1. 一方面学习理解了本系统在当今流行背景下趋势和潮流,收集查阅关于 JSP技术在网上书城系统应用有关参照文献资料,在当当网、亚马逊、京东商城、中华人民共和国图书网、互动出版网等国内大型网上图书销售网站进行点击购书实践。 2. 运用JSP技术在网络上架构一种动态电子购书虚拟网站,拟定它开发语言和开发工具以及有关技术等。 3. 然后进入系统重要设计研究阶段。依照需求分析及三层架构设计思想,系统总分为前台和后台两个子系统。依照网上书城特点,系统将前台定为顾客操作界面,后台为管
13、理员操作界面。勾画出系统总体框架、软件构造、数据流程图,完毕系统概要设计,再完毕前、后台模块详细设计,实现系统各模块之间整合,同步也完毕了界面设计和实现。1.4 本章小结本章重要简介了课题设计背景和意义,同类或有关系统开发现状,分别从国外及国内进行简介,最后简介了选题重要工作内容。为后续工作奠定了坚实基本。第二章 系统采用有关技术2.1 MVC设计模式在系统中应用MVC(ModelViewController 模型-视图-控制器)是被广泛接受和使用一种软件设计典范7。其把一种软件应用提成了Model(模型)、View(视图)、Controller(控制器)三个某些,简化了系统开发构造。本系统开
14、发遵循了 MVC框架分层原则8。 2.2 SSH框架在系统中应用本系统是用当前成熟SSH框架为核心进行开发实现,SSH框架是Struts+Spring+Hibernate三个开源框架集成910。SSH框架为四层:控制层、业务逻辑层、数据持久层、和域模块层。系统使用SSH框架进行开发,完全遵循MVC设计模式,使得模型、视图、控制器三层分离,同步业务逻辑层和数据持久层也有效隔离开来。2.2.1 Struts 2.0应用Struts2.0是Struts第二代产品,是在Web Work技术基本上开发了全新MVC框架121314。Struts2是SSH整体基本框架,使MVC分离得以实现。2.2.2 Sp
15、ring 4.2.4 应用Spring是一种开源框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述某些理念和原型衍生而来,为理解决公司级开发复杂性而创立,使用基本Java Bean代替EJB。总来说,Spring是一轻量级控制反转(IOC)和面向切面(AOP)编程容器框架16。Spring在SSH框架中充当着容器管理角色,运用SpringIOC(控制反转和依赖注入)机制控制着Struts所有Action和业务逻辑解决类生命周期,业务层生命周期不再由Struts所控制,这样层与层之间实现了良好解耦,有助于提高程序
16、开发效率,维护起来也更加以便。Spring在SSH框架中此外一种作用是实现事务控制。咱们在以往系统开发过程中,当事务提交成功时,往往使用Try/Catch语句来完毕异常解决。但是使用Spring时候却不可如此大费周章,事务解决模板(Transaction Template)已经集成于Spring当中。2.2.3 Hibernate 4.3.11 应用Hibernate 是一种开源对象关系映射框架,其对JDBC 作了轻量级对象封装,使得Java程序员可以脱离底层sql语句并使用面向对象编程思想来对数据库进行操作17。通过Hibernate使数据库表和持久化对象之间映射得以实现,Hibernate
17、同步提供了解决数据库一系列办法,程序员在系统开发中只需修改配备文献和编写数据库表映射文献即可。因而,开发人员对数据库操作将会变得非常简朴,减少了编写SQL语句使用JDBC操作数据库时间,提高了程序开发效率。2.3 Web服务器技术应用本系统采用Tomcat作为Web服务器。Tomcat是一种免费开源Servlet容器,它是Apache基金会Jakarta项目中一种核心项目,由Apache、Sun和其他某些公司及个人共同开发而成。因Sun参加并支持了Tomcat开发,Tomcat对最新Servlet和Jsp规范都提供了良好支持。2.4 MYSQL数据库应用本系统采用MySQL数据库。MySQL是
18、一种关系型数据库管理系统,由瑞典 MySQL AB公司开发,当前属于Oracle公司。MySQL是最流行关系型数据库管理系统,在WEB应用方面MySQL是最佳RDBMS(关系数据库管理系统)应用软件之一。2.5 本章小结本章重要简介了系统采用有关技术,拟定使用市场主流SSH框架,遵循MVC设计模式,数据库采用开源MYSQL数据库,将Tomcat作为Web服务器。第三章 系统分析与设计3.1 系统分析3.1.1 顾客角色分析本系统顾客有三类,分别是超级管理员、普通管理员、普通顾客。系统管理员实现对普通管理员、普通顾客、商品信息、商品类别、顾客订单等增删改查功能,普通管理员实现除不能管理普通管理员
19、外所有超级管理员实现功能,普通顾客只有购物功能。3.1.2 需求分析本网站是一种网上书城,供顾客浏览然后购买书籍,因此本网站应具备登录、注册、加购物车、下单、支付、查看订单等某些商城必备功能。3.2 功能模块设计3.2.1 总体功能模块设计本论文所实现网上书城分为前台和后台模块。前台模块实现了顾客注册、顾客登录、顾客加购物车、订单顾客查询、订单支付、图书搜索等功能,后台模块实现了前台管理、权限管理、图书信息管理、图书类别管理、订单管理、顾客管理等功能。图 3-1 功能模块图3.2.2 详细功能模块设计3.2.2.1 系统前台设计1. 顾客注册模块如果游客需要在本网上书城购买图书,则需要注册。顾
20、客注册信息涉及顾客名、顾客密码、注册邮箱等信息。注册页面对顾客名、密码、邮箱等有相应校验,如果顾客相应项输入信息不对,则会有错误提示信息,注册成功则有注册成功提示。顾客注册流程图如图 3-2 所示:图 3-2 顾客注册流程图2. 购物车模块顾客在商品详情页面点击加入购物车按钮,会将该图书添加到购物车,购物车显示图书书名、购买数量、单价、总价等信息;点击继续购买会跳回书城首页,继续购买感兴趣图书;点击删除会删除购物车中某一图书;在数量选取框里修改图书数量,相应价格也随之变化;点击结账会跳转到订单信息填写页面,规定顾客填写相应信息。购物车流程图如图 3-3 所示:图 3-3 购物车流程图3.订单查
21、询模块顾客点击已买到商品,如果没有登录,就会跳转到顾客登录页面,登录之后跳回书城首页,即可进行订单查询。订单查询会显示顾客在本书城已提交所有订单,订单涉及信息有图书数量、图书总价、收货人姓名、收货地址、收货人联系方式、订单编号、订单详细信息、订单状态。订单查询流程图如图 3-4 所示:图 3-4 订单查询流程图4. 图书搜索模块顾客依照图书名核心字对图书进行搜索,成果为满足条件图书信息列表。图书搜索模块流程图如图 3-5 所示:图 3-5 图书搜索流程图5. 订单支付模块顾客下单之后可以对订单进行支付。3.2.2.2 系统后台设计1. 权限管理模块后台系统管理员对使用后台人员进行权限管理。点击
22、系统管理下权限管理,会列出系统所有管理员信息;点击添加,页面会弹出添加管理员对话框,规定输入管理员账号、管理员密码、选取管理员类型;点击编辑,可以修改管理员类型、名称、密码等信息。点击删除将删除一种管理员所有信息。2. 顾客管理模块系统管理员可以对前台已注册顾客进行管理,点击顾客管理下查看顾客,后台会显示所有顾客信息列表;点击删除按钮,可以删除一条顾客信息。3. 图书类别管理模块管理员可以对图书类别信息进行管理。点击商品管理下分类管理睬显示所有图书类别信息;点击添加,添加图书新类别详细信息,需要录入图书类别、图书类别描述信息;点击编辑,可修改当前选取图书类别信息;点击删除可以删除当前选取一条图
23、书类别。图书类别管理流程图如图 3-6 所示:图 3-6 图书类别管理流程图4. 图书信息管理模块管理员管理一本图书详细信息。单击商品管理下图书管理链接,后台会呈现所有图书详细信息。单击添加,规定输入图书名、图书类别、图书封面、图书编号、图书出版社、出版日期、作者、价格等信息;单击修改,可以对图书信息进行修改;单击删除,可以删除一本或多本图书,图书信息管理流程图如图 3-7 所示:图 3-7 图书信息管理流程图5. 订单管理模块后台管理员可以对客户下订单做相应管理。点击订单管理链接,会依照订单状态,显示出已经支付订单和未支付订单,进一步点击会显示订单详情:订单编号、订单价格、收货地址、订单状态
24、等详细信息。点击删除订单,可以删除一条订单记录。6. 前台管理模块管理员登陆后来可以对前台首页显示数据进行动态管理。涉及轮播图、商城公示、图书推荐、热门活动等信息添加编辑删除。3.3数据库设计3.3.1 数据库设计概述数据库设计是指依照顾客实际需要,在某一特定数据库管理系统上,建立及设计数据库,使之可以有效地存储数据。数据库作为一种应用系统核心和基本,它把应用系统中数据按照一定数据模型组织起来,可以更新、存储、检索、维护应用系统中数据,与此同步,应用系统也能及时有效从数据库中获取想要数据。数据库是应用系统各个功能某些紧密联系在一起桥梁,数据库设计在系统开发中有着举足轻重地位。3.3.2 数据库
25、构造设计从前面需求分析可知,要实现网上书城各个功能某些需要建立相应数据表进行数据存储操作。表间关系图如图 3-8 所示:图 3-8 表间关系图1管理员表管理员表重要用来保存书城后台系统管理员信息,该表字段涉及:管理员编号、管理员名称、登录密码、管理员权限类别。详细内容见表 3-1:表3-1 管理员表列名数据类型默认值阐明AdminIdInt标记种子,自动递增(主键)AdminNamevarchar管理员账号AdminPwdvarchar管理员密码AdminFlagvarchar管理员权限2图书信息表图书信息表用来存储一本图书详细信息,该表字段涉及:图书名称、图书作者、图书价格、出版日期、出版社
26、、图书库存、图书封面等信息,详细内容见表3-2:表3-2 图书信息表列名数据类型默认值阐明shopIdInt标记种子,自动递增(主键)shopNamevarchar图书名称picvarchar图书封面authvarchar图书作者stockInt图书库存publishervarchar图书出版社briefvarchar图书简介PriceInt图书价格countInt图书售出数量typeIDInt类型ID(外键)3图书类别表图书类别表重要用来保存图书类别信息,该表字段涉及:图书类别编号、图书类别名称、类别描述,详细内容见表3-3:表3-3 图书类别表列名数据类型默认值阐明typeIDInt标记种
27、子,自动递增(主键)typeNamevarchar图书类别名称typeDescrvarchar类别描述4顾客信息表顾客信息表重要用来保存顾客信息,该表字段涉及:顾客编号、顾客登录名、登录密码、注册邮箱,详细内容见表3-4:表3-4 顾客信息表列名数据类型默认值阐明idInt顾客编号,自动递增(主键)namevarchar顾客登录名pwdvarchar顾客密码emailvarchar顾客邮箱5订单信息表订单信息表重要用来保存订单信息,该表字段涉及:订单总价、订单时间、订单编号、顾客名称、订单地址、支付状态,详细内容见表3-5:表3-5 订单信息表列名数据类型默认值阐明idvarchar订单编号,
28、uuid生成方略(主键)moneyDouble订单价格paystateInt支付状态ordertimevarchar订单时间receiverAddressvarchar订单地址user_idInt顾客ID6订单详情表订单详情表重要用来保存所有订单详情,该表字段涉及:订单详情编号、图书编号、订单编号、订单中每本书数量,详细内容见表3-6:表3-6 订单详情表列名数据类型默认值阐明itemidvarchar订单项编号,uuid生成方略(主键)buynumInt商品数量order_idvarchar订单IDshop_idInt商品ID7顾客地址表顾客地址表重要用来保存所有顾客地址,该表字段涉及:地址
29、编号、详细地址、顾客ID,详细内容见表3-7:表3-7 顾客地址表列名数据类型默认值阐明adrIdInt地址编号,自动增长(主键)addrvarchar详细地址idInt顾客ID8商品推荐表商品推荐表重要用来保存推荐商品信息,字段与图书信息表一致。9. 轮播图片表轮播图片表重要用来保存首页轮播图片信息。该表字段涉及:图片编号、图片名称、图片途径、图书ID,详细类容见表3-8:表3-8 轮播图片表列名数据类型默认值阐明idInt轮播图片编号,自动增长(主键)namevarchar图片名imgvarchar图片途径shopidInt图书ID3.4 本章小结本章重要简介了系统分析与设计。从系统分析、
30、功能模块设计、以及数据库设计三个方面阐述了实现该系统需要完毕工作。第四章 系统实现4.1 系统开发配备本系统采用是SSH框架进行开发,因此第一步需要完毕就是整合好Struts 2、Spring、hibernate。SSH框架以Spring为主体,其Ioc机制用来管理Struts2action和hibernateSessionFactory。整个框架配备文献涉及web.xml、struts.xml以及bean.xml。4.2 前台功能模块实现1. 首页展示不论是游客还是已注册顾客通过首页链接都可以访问本页面,本页面有几种板块构成,分别是头部导航区,数据显示区和页脚某些。首页展示页面如下图 4-1
31、 所示:图 4-1 首页展示页面2顾客注册游客需要注册成为书城顾客才干在书城进行购书操作,顾客注册首页界面展示如图 4-2所示:图 4-2 顾客注册页面顾客填写相应信息,注册信息必要匹配相应规则,否则注册失败。注册信息输入对的之后点击注册按钮,即可注册成功,核心代码如下所示:public String register() throws ExceptionUser user = new User();user.setName(name);user.setPwd(MD5Utils.md5(pwd);user.setEmail(email);userservice.sava(user);retur
32、n register;/daopublic void sava(User user) / TODO Auto-generated method stubsessionFactory.getCurrentSession().save(user);3. 顾客登录游客注册成功后,来到登录页面,顾客登录界面展示如图 4-3 所示:图 4-3 顾客登录页面顾客填写相应信息,登录信息提交到后台查询,后台给前台响应,若账号密码以及验证码输入对的,则登录成功,否则登录失败。核心代码如下所示:public void login() throws IOExceptionUser user = new User()
33、;user.setName(name);user.setPwd(MD5Utils.md5(pwd);List list = userservice.login(user);Map session = ServletActionContext.getContext().getSession();if(list != null & list.size() !=0)User us = list.get(0);session.put(user,us)elseServletActionContext.getResponse().getWriter().print(true);/dao实现public L
34、ist login(User user) / TODO Auto-generated method stubreturn sessionFactory.getCurrentSession().createQuery(from User as u where u.name=?and u.pwd=?).setParameter(0,user.getName().setParameter(1,user.getPwd().list();4商品列表页顾客点击商品分类导航浏览时,页面会按照商品所属typeid进行分类显示,商品列表页展示如图 4-4 所示:图 4-4 商品列表页面核心代码如下所示:publ
35、ic String showlist()PageModel pm = new PageModel();pm.setPageNo(pageNo);List list = shopservice.findbytype(typeID);List top = shopservice.findtop();MapString,Listrequest=(Map)ActionContext.getContext().get(request);request.put(list,list);request.put(tops,top);return showlist;5商品详情页顾客在书城首页单击图书小图片,即可查
36、看图书详情及相应评论信息。界面展示如图 4-5 所示:图 4-5 商品详情页核心代码如下所示:public String show()Mapreq=(Map)ActionContext.getContext().get(request);MapString,List request = (Map)ActionContext.getContext().get(request);shop shop = shopservice.findbyid(shopId);List top = shopservice.findtop();req.put(shop,shop);request.put(tops,t
37、op);return show;6购物车顾客在书籍详情页面点击加入购物车会跳转到购物车页面,购物车界面如图 4-6 所示:图 4-6 购物车页面核心代码如下所示:public String show()shop shop = shopservice.findbyid(shopId);Mapsession=ActionContext.getContext().getSession();cart = (Map) session.get(cart);int num = 1;if(cart = null)cart = new HashMap();if(cart.containsKey(shop)num
38、 = Integer.parseInt(cart.get(shop);num+=1;cart.put(shop,num+);session.put(cart,cart);return show;点击继续购物按钮,会跳转到系统首页,顾客可以继续购买图书;点击删除可以删除一本图书;点击“+”“-”按钮,可以修改图书购买数量。点击确认并填写订单按钮,将会跳转到订单信息填写页面,页面展示如图 4-7 所示:图 4-7 订单详细填写页面7订单页面点击提交订单按钮,来到订单页面,页面展示如图 4-8 所示:图 4-8 订单生成页面核心代码如下所示:public String addorder()/从ses
39、sion中取出购物车Mapsession=ActionContext.getContext().getSession();User user = (User) session.get(user);if(user = null)return login;Map cart = (Map) session.get(cart);/依照地址id查找地址address addre = addressservice.findbyadd(address);Date now = new Date();SimpleDateFormat dateformat = new SimpleDateFormat(yyyy-
40、MM-dd);order order = new order();Set orderitems = new HashSet();/遍历购物车 加入到订单项 再把订单项加入订单if(cart != null)for (shop s :cart.keySet() OrderItem oi = new OrderItem();oi.setP(s);oi.setBuynum(Integer.parseInt(cart.get(s);oi.setOrder(order);orderitems.add(oi);order.setUser(user);order.setOrderItems(orderite
41、ms);order.setReceiverAddress(addre.getAddr();order.setOrdertime(dateformat.format(now);order.setMoney(money);/添加订单orderservice.addorder(order);Maprequest=(Map)ActionContext.getContext().get(request);request.put(order,order);session.put(order,order);session.remove(cart);return addorder;8支付页面点击确认支付按钮,
42、来到订单支付页面,页面展示如图 4-9 所示:图 4-9 订单支付页面4.3 后台功能模块实现系统后台页面如图 4-10 所示:图 4-10 系统后台页面1权限管理页面管理员单击权限管理,会显示管理员顾客列表。页面如图 4-11 所示:图 4-11 权限管理单击添加,即可打开到新增管理员对话框,页面如图 4-12 所示:图 4-12 新增管理员页面核心代码如下所示:public String addApp()/封装数据manager mg = new manager();mg.setAdminName(AdminName);mg.setAdminPwd(AdminPwd);mg.setAdmi
43、nFlag(AdminFlag);managerservice.add(mg);/System.out.println(AdminName.getBytes();try ServletActionContext.getResponse().getWriter().print(new JSONObject().fromObject(1); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();return null;单击编辑,即可打开到编辑管理员信息页面,页面如图 4-13 所示:图 4-13 管理员信息编辑页面核心代码如下所示:public String update()manager mg = new manager();mg.setAdminFlag(AdminFlag);mg.setAdminId(Admi