1、编号: 毕 业 设 计(本科)题 目: 基于Java网上书城设计和实现 系(部)院: 信息技术和传媒学院 专 业: 计算机科学和技术 作者姓名: 陈卫国 指导老师: 祁金佺 职称: 讲师 完成日期: 年 5 月 15 日 河西学院本科生毕业论文(设计)诚信申明本人郑重申明:所呈交本科毕业论文(设计),是本人在指导老师指导下,独立进行研究(设计开发)工作所取得结果,结果不存在知识产权争议,除文中已经注明引用内容外,本论文不含任何其它个人或集体已经发表或撰写过作品结果。对本文研究做出关键贡献个人和集体均已在文中以明确方法标明。本人完全意识到本申明法律结果由本人负担。 本科毕业论文(设计)作者署名:
2、 二一七年五月十五日摘 要进入二十一世纪,电子商务已经逐步成为主流商业模式,“当当”、“京东”和“淘宝”演变成为我们生活中一部分、一个生活习惯。伴随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, Jin
4、gdong 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 sys
5、tem service. 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 de
6、sk the management 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 orde
7、r management. Through 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 /
8、 S structure. The 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第二章 系统采取
9、相关技术32.1 MVC设计模式在系统中应用32.2 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 系统开发配
10、置144.2 前台功效模块实现144.3 后台功效模块实现224.4 本章小结28第五章 系统安装布署和简明使用说明295.1 系统运行环境说明295.1.1 服务器软硬件环境说明295.1.2 用户机软硬件环境说明295.2 系统安装布署说明29第六章 结束语30致谢31参考文件32第一章 设计概述1.1 设计背景和意义伴随现代互联网技术飞速发展,计算机网络已应用在我们生活各个领域并发挥着举足轻重作用。网上书城凭其图书信息更新快、存放量大、达成交易安全性高、操作简便快捷等特点1,快速走进大家日常生活。经过计算机对图书销售数据进行集中管理,能够随时查阅销售信息、发货信息、库存信息、财务信息从而
11、做出正确决议2,消费者也能够随时关注商品相关信息和物流信息,这对于现代年轻人而言,有着极大吸引力,所以开发一套管理方便、安全、可靠、快捷网上书城销售管理系统不管对于图书商家还是一般消费者而言全部是一件很有必需工作3-5。1.2 同类或相关系统开发觉实状况在国外,影响较大有美国亚马逊,它成立之初只经营网络书籍销售业务。现在则扩及了范围相当广其它产品,已成为全球商品品种最多网上零售商和全球第二大互联网企业6。亚马逊商城首页图 1-1 所表示:图 1-1 亚马逊商城首页图中国网上书城,即使起步较晚,不过因为中国人口基数大,需求量多,得力于人口红利原因,所以中国网上书城发展很快速。现在中国运作和销售很
12、好大型网上书店,如当当、京东、天猫、文轩网、99网上书城,经营模式关键包含: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整体基础
15、框架,使MVC分离得以实现。2.2.2 Spring 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使数据库表和持
17、久化对象之间映射得以实现,Hibernate同时提供了处理数据库一系列方法,程序员在系统开发中只需修改配置文件和编写数据库表映射文件即可。所以,开发人员对数据库操作将会变得很简单,降低了编写SQL语句使用JDBC操作数据库时间,提升了程序开发效率。2.3 Web服务器技术应用本系统采取Tomcat作为Web服务器。Tomcat是一个无偿开源Servlet容器,它是Apache基金会Jakarta项目中一个关键项目,由Apache、Sun和其它部分企业及个人共同开发而成。因Sun参与并支持了Tomcat开发,Tomcat对最新Servlet和Jsp规范全部提供了良好支持。2.4 MYSQL数据库
18、应用本系统采取MySQL数据库。MySQL是一个关系型数据库管理系统,由瑞典 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
21、 所表示:图 3-3 购物车步骤图3.订单查询模块用户点击已买到商品,假如没有登录,就会跳转到用户登录页面,登录以后跳回书城首页,即可进行订单查询。订单查询会显示用户在本书城已提交全部订单,订单包含信息有图书数量、图书总价、收货人姓名、收货地址、收货人联络方法、订单编号、订单具体信息、订单状态。订单查询步骤图图 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 数据库设计概述数据库设计是指依据用户实际需要,在某一特定数据库管理系统上,建立及设计数据库,使之能够有效地存放数据。数据库作为一个应用系统关键和基础,它把应用系统中数据根据一定数据模型组织起来,能够更新、存放、检索、维护应用系统中数据,和此同时,应用系统也能立即有效从数据库中获取想要数据。数据库是应用系统各个功效部分紧密联络在一起桥梁,数据库设计在系统
25、开发中有着举足轻重地位。3.3.2 数据库结构设计以前面需求分析可知,要实现网上书城各个功效部分需要建立对应数据表进行数据存放操作。表间关系图图 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 图书类别表列名
27、数据类型默认值说明typeIDInt标识种子,自动递增(主键)typeNamevarchar图书类别名称typeDescrvarchar类别描述4用户信息表用户信息表关键用来保留用户信息,该表字段包含:用户编号、用户登录名、登录密码、注册邮箱,具体内容见表3-4:表3-4 用户信息表列名数据类型默认值说明idInt用户编号,自动递增(主键)namevarchar用户登录名pwdvarchar用户密码emailvarchar用户邮箱5订单信息表订单信息表关键用来保留订单信息,该表字段包含:订单总价、订单时间、订单编号、用户名称、订单地址、支付状态,具体内容见表3-5:表3-5 订单信息表列名数据
28、类型默认值说明idvarchar订单编号,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. 首页展示不管是游客还是已注册用户经过首页链接全部能够访问本页面,本页面有多个板块组成,分别是头部导航区,数据显示
31、区和页脚部分。首页展示页面以下图 4-1 所表示:图 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);userse
32、rvice.sava(user);return register;/daopublic void sava(User user) / TODO Auto-generated method stubsessionFactory.getCurrentSession().save(user);3. 用户登录游客注册成功后,来到登录页面,用户登录界面展示图 4-3 所表示:图 4-3 用户登录页面用户填写对应信息,登录信息提交到后台查询,后台给前台响应,若账号密码和验证码输入正确,则登录成功,不然登录失败。关键代码以下所表示:public void login() throws IOException
33、User user = new User();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().pri
34、nt(true);/dao实现public List 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 所表示
35、:图 4-4 商品列表页面关键代码以下所表示:public 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 show
36、list;5商品详情页用户在书城首页单击图书小图片,即可查看图书详情及对应评论信息。界面展示图 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.pu
37、t(shop, shop);request.put(tops, top);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 Hash
38、Map();if(cart.containsKey(shop)num = 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 订单生成页面关键代
39、码以下所表示:public String addorder()/从session中取出购物车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 dat
40、eformat = new SimpleDateFormat(yyyy-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.setUs
41、er(user);order.setOrderItems(orderitems);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.remo
42、ve(cart);return addorder;8支付页面点击确定支付按钮,来到订单支付页面,页面展示图 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(AdminN
43、ame);mg.setAdminPwd(AdminPwd);mg.setAdminFlag(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.
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100