java毕业设计——基于java+JSP+MySQL的网上购书系统设计与实现(毕业论文+程序源码)——网上购书系统

基于java+JSP+MySQL的网上购书系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于java+JSP+MySQL的网上购书系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

  1. 本网站页面主要用JSP实现,业务逻辑层用SSH框架(Hibernate+Struts+Spring)及Java代码实现,数据管理用MySQL数据库,开发工具使用Eclipse,服务器用Tomcat8最新版本。本系统针对管理员和普通两类用户设置了不同的功能。管理员功能包括:图书信息管理、图书类别管理、订单管理、用户信息管理;普通用户功能包括:注册信息、浏览书店信息、浏览图书信息、搜索图书、在线生成订单等功能。该系统用户界面友好,模块划分清晰,具有使用方便,安全稳定,维护简单等特点。

2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:24014个字57页
包含内容:整套源码+完整毕业论文+答辩PPT+任务书+辅导视频+运行截图


3、关键词:

网上购书;Java;JSP;MySQL

4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

1 前言
1.1 概述
省略

从商家角度来看,当打点店铺的职工想查找哪一类图书销量大需要进货时,要根据每一天的销量情况来决定。当然用数据说话更准确,例如用库房的电脑查看销售图书数量以及类别,这样就很繁琐。从买家为出发点的话,想要购买书籍还要先去图书馆查看是否有心中所想的那本书及价钱,要想比较不同书店同一本书的价格还要跑到另一家去让工作人员手工查找,很费时间及人力。随着社会发展,网店的出现,机械以精准、快速而远超过手工运转的大优势替代手工,工作职员再也不用手工查书了,更方便的是其可在电脑上输入书名就能快速出现结果;消费者也可以通过在同一个平台的不同页面查询自己需要的书籍及单价,还能同时登陆不同的平台来进行比较不同商家的同一件商品,很大水平上节省了人们的时间,因此网上购书既节约时间又不耗费人力、不必要的费用,让卖家和买家间的沟通矛盾有效减少了。

1.2 整体叙述
本论文所包括的主要内容章节整体信息如下:
1、可行性分析
本系统的分析主要从技术方面着手,判断可完成的功能,再从经济角度出发,得出系统开发的成本和硬件条件以及最后系统的部署环境、运行成本等,以上都可行后说明该系统的是有必要开发的[6]。

2、系统分析
当今社会互联网的飞快发展,社会主流网络购物已经深入众多消费者人心,因此,为了让消费者的买书需求得到满足让人们的生活水平提高,也是为更好的社会发展,让消费者买书更方便快捷,就此,尝试开发一个小型网上购书系统来满足众多消费者。目前,也有很好的购书网站,比如淘宝网、亚马逊、当当网等平台被人们所熟知,本小型平台在借鉴他人劳动成果的基础上锻炼自己的技术水平。每个软件项目在正式开发前都要研究分析其是否可行,意义在于预防开发中未预料到的问题的出现。

3、系统总体设计
(1)浏览器/服务端模式是本系统总体开发的模式,该模式有以下好处:
(a)层次清晰分明的前台、后台逻辑处理关系,符合很多已经对于网络搜索熟悉习惯的消费者;
(b)使用面向对象理念设计和开发概念、使用模块化方式设计。模块化设计就是将所有功能都分解开来,分成若干个子功能模块,这样简化系统设计实现,让重复的代码能将其单独作为一个类或方法,实现代码重载,不仅让开发更简单,而且提高了代码维护性。系统开发不仅要实现功能,而且要考虑系统可靠性,既满足设计要求又可以在此基础上进行改进扩展,更能适应社会发展满足人们需求。
(2)数据库设计:使用MySQL,本系统后台程序使用Struts+Spring+hibernate即SSH框架,在Spring的配置文件中配置数据库相关信息。

4、系统详细设计与实现
系统详细设计要完成的是各模块代码的编写(包括前端网站各页面和后台管理系统),用户交互界面的设计等内容。

系统前台模块包括用户进入网站首页、查看图书和网站虚拟书店的信息,注册信息、登录网站、加入购物车和下订单等内容;系统后台管理模块分为管理层用户登录后台、添加图书类别、更新图书信息等内容;用户交互界面的设计包括一般用户登录模块界面的设计和后台管理界面的设计。

该网上购书系统的界面简单大方,方便各年龄阶段的消费者使用,有着友好和错误的提示操作。系统管理者功能有:更新书籍信息、对书籍分类、对订单标记已处理、添加用户、管理系统等。普通用户可以查看图书信息,图书分类查询,生成购买书籍订单,修改个人的基本信息等功能。保障性大,避免了人为的破坏性行为。

5、系统测试
每个系统开发中都会有或多或少的bug,系统检测的目的是极大多数的检查出软件中出现的问题,增强程序的可靠性。这个过程又分为3个步骤:模块、接口、验收测试。

在系统初步形成时,为了看到自己开发的成果,一开始用于检测的信息都是随意输入,单纯地为了测试,用户信息也不是真的。但是到后来,要检验系统的可靠性使用了较真实的测试信息,并清除了假数据。
在通过不断的测试消灭各种bug,才能让系统放心运作起
来。

6、系统运行和维护
系统开发测试完毕后就要投入使用了,确保系统能正常运行非常重要,社会不断发展人们的需求也在不断变化,这就要求系统维护人员能及时发现系统问题并向上级反映对系统改进。

2 系统开发背景
2.1 课题的背景
省略

网上购书是电子商务网站的一种类型。网上购书是近年来随着网络技术的发展而产生的一种新型的书店形式。随着网络的发展,电子商务的不断完善,卖书商家越来越强烈地意识到网络带来的巨大商机,几乎都进行图书的线上销售经营活动,不管对于商家网上销售还是对于消费者网上购书都是种新型的销售和购书模式,并很受欢迎。

2.2 课题的研究现状
省略

2.3 课题的研究意义
省略

3 系统分析
3.1 系统开发目的与意义
省略

3.2 可行性分析
省略

3.2.1 技术可行性
该软件系统使用我们学过的开发工具Eclipse开发,用具有性能高、跨平台、代码可重载的Java编程语言编码,数据库使用开源软件MySQL。而且对于ssh框架这些都有所学习, ssh框架有良好的可扩展性和可维护性,提高了对象管理方法,因此对我而言,在技术上实现该系统是行得通的。

本软件体系的协议传输和请求返回原理工作图如下图1:
在这里插入图片描述

图3.1 系统工作原理图

3.2.2 经济可行性
省略

3.2.3 操作可行性
省略

3.2.4 法律可行性
省略

3.2.5 管理可行性
省略

3.3 需求分析
3.3.1 功能需求分析
1、该系统所具有的功能需求有:
1)前台网站:
a、一般游客:浏览书店简介、浏览图书信息、搜索图书、根据分类 查寻图书、注册信息等功能;
b、在线用户:包含上边普通游客所有功能,登陆网站、添加书籍到购物车、管理已购买书籍订单等功能。

2)后台管理:管理员可管理图书、设置是否是促销或最新图书;工作人员可以查看、增添用户;管理图书种类,包含查看所有分类、增添书籍类型;管理订单包括查看所有用户订单、标记订单是否已处理、查看详情、删除等功能。

3.3.2 数据逻辑分析
在网站系统页面,若注册信息,用户填写的信息会提交到UserAction类,判断用户名和密码是否正确从而调用service层,service层调用dao层添加用户信息,以此类推,各种数据只要和数据库打交道那就需要经过action类,在对应action类中进行逻辑处理,跳转到相应页面,需要操作数据库时action类调用service层类,再调用dao层类来实现数据的保存或更新及删除。

3.3.3 性能需求分析
1、系统的安全性
在管理限定上严格管制,本软件体系要求如下:
1)对于后台管理系统,首先必须是系统的管理员才能对系统各方面进行更新,其次须凭借无误的昵称和密码口令登陆到系统,没有权限包含不是管理工作人员或者是工作人员时输入不正确的昵称或密码口令登陆系统的人员都不能登陆进后台,对系统中任何信息都不能查看或更新,这样来保证系统的安全性和可靠性。

2)对于前台网站首页,对于拥有不同权限的用户来说,有两种权限分别是一般游客和在线用户,这两种消费者不能跨越本级别操作。具体:一般游客只能在网站首页浏览虚拟书店的介绍信息、书籍的基本信息以及分类查询书籍和搜索书籍,这类用户通过在网站注册信息登录即可变成在线用户;在线用户不但具备一般游客全部能力,而且可以生成订单、管理订单、更改个人基本信息。

2、数据的完整性

  1. 系统用到的全部信息的完整性,包含保存用户个人信息和书籍的信息。
    2) 信息和信息保持一定的互动。
  2. 同一种信息在不同表中保存的数据应保持相同。

3.4 数据库分析
数据库是计算机系统的核心,其在数据库系统的管理下,对信息进行收集、整理、储存、检索、数据更新、数据加工以及数据统计和有用消息的传达等操纵。现在,信息系统等计算机系统的根基和核心部分已经成为了数据库,因此数据库的品质好坏直接关系到整个体系的质量和效率。[4]

MySQL是一种关系型数据库,其所使用的SQL语言是常用的访问数据库的标准化语言,MySQL具有体积小、速度快的优点,更因其是开源软件,这个大特点就很大程度降低了开发成本,纵使MySQL也有不足之处,但它提供的功能已绰绰有余,因此本系统使用MySQL数据库。

3.5 开发环境
1、硬件环境:
CPU:Intel(R)Core(TM)i5
内存:4GB
磁盘:400G以上

2、软件环境:
系统类型:Win7 64位操作系统
开发工具:Eclipse j2EE
后台服务器:Tomcat 8.0
主要开发语言:JSP、Java
浏览器:Firefox/IE8.0/Google Chrome

3.6 开发工具及技术
3.6.1 开发工具
1、Eclipse
Eclipse是基于Java的完全开源的一个可扩展的开发平台,Eclipse Enterprise Workbench是针对Eclipse IDE的扩展,是Eclipse针对企业开发的平台(简称Eclipse),使得我们在企业级开发应用、部署、封装,数据库管理方面方面提升了较高的效率。简单来说,Eclipse是一个JavaEE开发平台,它有编写代码、Debug模式下用断点来排错即调试、测试功能、发布应用功能,并且它完全支持一些流行框架如Hibernate、Struts等,前端编码语言如HTML、JSP、CSS、JavaScript,还有数据库SQL语句。

2、Tomcat
Tomcat是web应用开发以及调试JSP代码的首选。Tomcat 是属于轻量级免费的、开源的应用服务器。[5]选择tomcat作为服务器,一般是中小型企业还有一些对于同一项目同一时间访问的人数不是特别高的公司使用的,在开发和调试JSP 程序中,Tomcat占有绝对的优势,运行时占用的系统资源小。[10]这些暂且不说,而且它的扩展性非常好,因为以上原因Tomcat已经备受关注,但是Tomcat并没有说因为当前成就而停止前进的步伐。

3、MySql
MySQL是一种关系型数据库,最主要的功能就是将来前台和后台对数据进行查询、保存等操作,其所使用的SQL语言是常用的访问数据库的标准化语言。Hibernate它对JDBC做了简单的封装,使用Hibernate对数据进行增删改查的功能,这次用Hibernate是因为他可实现实体类反向生成数据库,操作简单。
MySql支持多种操作系统如常见的Windows、Linux等; 提供了TCP / IP、ODBC和JDBC等数据库的连接路径; 作为开源软件,MySQL是小中型系统开发的不二之选。[4]

3.6.2 开发技术
1、JSP
JSP在服务端器实现给客户端浏览器响应的是html页面,因此客户端只要有浏览器方可看到响应内容,JSP页面包括两部分一个是Java语言写的脚本代码,另一个是html代码。客户端发出请求之后,页面上的Java脚本代码在客户端请求web页面之后被解析处理,然后返回给浏览器响应的html页面。[2]
JSP技术的优势:
(1)一次编码,各个系统平台都能运转。
(2)JSP组件跨平台。在不同的平台上都能运行。
(3)拥护多种网页格式。JSP支持html、wml等浏览器样式。
(4)JSP标签可扩充性。JSP技术准许开发人员扩展JSP标签,还能自定义标签,降低了制作网页的复杂度。
(5)健壮性与安全性。JSP页面包含Java代码,而Java有健壮的存储管理机制和高安全性,因此JSP也有健壮性和安全性。[8]

2、JavaScript
JavaScript脚本语言是动态弱类型的语言,它的解释器是浏览器所包含的,运行在客户端,通常应用在网页端的脚本语言中。它一开始用于HTML(超文本标记语言)页面,以向HTML网页增添动态功能。

JavaScript的特点是:
(1)js是一种执行时再翻译的动态语言(代码未预先编译);
(2)提高用户界面交互体验,为页面添加动态验证
(3)脚本部分的代码要放在特定的标记中间,或者单独写成js文件,并引用进来;(4)js是基于浏览器,是运行在浏览器中的,就算在不同的平台上也可运作。[3]

3、Struts2
Struts2优势:
(1)Struts2Action对象为每一个请求产生一个实例,因此没有线程安全问题。
(2)Struts2强大的标签库提高开发效率。
(3)页面脉络清晰,通过查看配置文件把握整个系统的关系,方便开发人员岗位流动时的维护。

4、Spring
Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。
Spring优势:
(1)Spring提供了一种管理对象的方法,可以把中间层对象有效地组织起来。一个完美的框架“黏合剂”。
(2)有利于面向接口编程习惯的养成,使代码结构清晰。
(3)采用了分层结构,可以增量引入到项目中。
(4)目的之一是为了写出易于测试的代码。
(5)非侵入性,应用程序对SpringAPI的依赖可以减至最小限度。
(6)一致的数据访问介面。
(7)一个轻量级的架构解决方案。

5、Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate优势:
(1)Hibernate是JDBC轻量级的封装,占用内存较少,性能比较高。与JDBC相比,如果开发JDBC的人员技术能力非常强,hibernate执行效率会比JDBC弱一些,但是大部分情况是程序员在使用JDBC时是不可能做到最高效率,hibernate可以帮大部分开发人员提高运行效率。
(2)可以引入第三方二级缓存,提高系统查询效率,减少系统里存在大量单例类(singleton),大量的单例类,会降低系统的可测试性和面向对象程度。
(3)优秀的ORM框架,理论上节省开发人员95%的开发工作量。
(4)Hibernate兼容JDBC。

4 系统总体设计
4.1 设计思想
设计思想遵循以下几点:
1、本系统使用浏览器 / 服务器模式开发,因为考虑到许多用户已经习惯于在页面上搜索。
2、Java面向对象的思想应融合在整个系统的开发中,每个模块都是独立的,各模块组成一个整体,零散而聚集;
3、系统应具有安全性以及可靠性,分配角色权限是解决他们的最好途径;
4、操作方便,界面从优;
5、设计不仅要重点突出,而且要细致周到。为满足设计要求,在可能的基础上改进系统的扩展,以适应用户的需求。

4.2 功能模块设计
该系统使用起来容易,操作简单,有清晰明了的提示文字,让用户的整个购书过程很轻松享受。本体系实现的基本功能如下:
1、一般游客:浏览书店简介、浏览图书信息、搜索图书、根据分类查寻图书、注册信息等功能;
2、在线用户:包括一般游客全部功能,除此之外,还有登录网站首页、管理购物车、生成订单、查看订单等功能;
3、管理员具有图书类型管理、图书信息管理、订单查看删除管理、用户添加删除管理、后台管理功能;
4、除了以上,该系统的用户交互界面简易明了,易于使用,还有友善的不正确的提示信息,有比较好的安全性。
系统整体的功能模块图如图4.1所示:
在这里插入图片描述

图4.1 系统总体功能模块图

软件体系的总体功能模块图,分普通用户模块,管理员模块。
普通用户的模块图说明:普通用户在网店首页可以进行了解书店简介,浏览图书信息;如果要在线操作首先需要备案一个个人账号,再登录上网站,可进行在线下订单,书籍查询操作,如图4.2所示:
在这里插入图片描述

图4.2 普通用户模块

管理员功能结构模块图说明:作为一种用户角色,管理员的权限能力最高。管理员功能结构模块图,如图4.3所示:
在这里插入图片描述

图4.3 管理者模块
(1)用户管理模块:该模块可观察浏览用户信息、更正、消除用户信息功能。
(2)订单管理模块:该模块主要处理买家完成的订单,查察、删除等功能。
(3)图书管理模块:该模块主要管理书籍,包括增添图书、更新图书信息、设置最新图书、推荐图书、促销图书等。
(4)书籍分类管理模块:该模块对图书类型信息进行打理,包含添加新类型、查询类别意思、改动、和消除等功能操作。其中图书类别信息主要是类别称号、类别含义。
(5)系统管理模块:书店简介信息的更新,系统维护。
(6)修改密码模块:修改管理员密码功能。

4.3 界面设计
省略

4.4 系统用户用例图
用例图的主要作用有:
(1)获取需求;
(2)指导测试;
(3)对整个系统开发过程中其它工作流起到指导作用。

4.4.1 普通用户用例图
从安全方面的角度思量,为了对买家信息和订单保密,普通用户即没有登录系统的游客不能生成订单、更新自己基本信息,只有在网站首页浏览图书基本信息和对图书查询、浏览书店简介等功能,其它功能须登录实现,普通用户用例图如图4.4所示:
在这里插入图片描述

图4.4 用例图-普通用户

4.4.2 管理员用例图
管理工作人员是该系统的焦点角色,共包含六大功能模块,管理人员的权利最大,该软件的全部功能管理人员都能操作,其能够实时更新系统所包含的书籍、订单信息,而且是动态的。管理员用户用例图如下图4.5所示:
在这里插入图片描述

图4.5 用例图-管理员
4.5 数据库的设计
数据库是一种对信息的保存的过程,它建立在选定好数据库的基础之上。进行数据库的设计除了分析用户需求之外,还需要进行概念结构的设计、逻辑结构设计以及物理结构的设计,做到与系统分析与设计的阶段相对应。根据系统需要在数据库中创建订单、用户、书籍类别、图书等表。

4.5.1 数据库概念结构设计
概念结构设计的任务是将它们笼统为不依靠任何必定机械的数据模型,即概念模型,其是建立在需求分析阶段生成的需求规范的基础上。概念模型让设计者能集中注意力于最重要的新闻的组织结构和处理模式上。

概念结构设计最直观的表达方式是E-R图即是实体-联系图,它更加清晰的、方便的、直观的去看实体属性之间的联系,将现实社会物体非常好的展现出来,其能直观的看出实体具有的属性,对数据库设计起到辅助作用。

综上,使用E-R图的设计方法对数据库设计,以下对数据表进行E-R图设计,可以直观地观察到表中各属性的结构。
系统主要的实体及其属性如下:
1、 普通用户实体
主要说明普通用户个体的基本信息,如图4.6所示:
在这里插入图片描述

图4.6 普通用户实体图
2、 管理员登录信息实体
主要说明了管理员要登录后台管理系统需要的用户名和密码有效信息,如图4.7所示:
在这里插入图片描述

图4.7 管理员登录信息实体图
3、 书籍信息实体
主要说明了每本书的基本信息,如图4.8所示:
在这里插入图片描述

图4.8 书籍信息实体图

4、 图书类别实体
主要说明了书籍的分类的类目,包括类目名称和介绍,其实体结构如图4.9所示:
在这里插入图片描述

图4.9 图书类别实体图

5、 订单信息实体
主要说明用户在线生成的订单的各种信息,如下图4.10所示:
在这里插入图片描述

图4.10 订单信息实体图

4.5.2 数据库逻辑结构设计
上边的数据库概念设计是在系统需求分析结果中总结实体信息,这个过程很重要,在这个基础上再对各实体及属性进行详细设计在,因此根据在数据库概念结构设计中的E-R图来设计出本系统中,涉及到的数据项和表结构,逻辑结构设计首先要把E-R图转换为关系模型,转换时要留意:一是E-R图中每个实体和关系模型一一对应;二是表中主键不能为空;三是实体之间的联系其中多对多这种情况应该将这种关系独立为一个关系模型。

下图为各实体转换后的关系模型,如图4.11所示:
在这里插入图片描述

图4.11 关系模型图

由上边关系模型图可知有6个表,以下是详细的表结构:
1、 普通用户表
描述登录该系统网站用户的登录信息,具体字段类型如表4.1所示:
表4.1 普通用户表
在这里插入图片描述

2、 图书类别信息表
描述了书籍分类的类目信息,具体字段类型如表4.2所示:
表4.2 图书类目信息表
在这里插入图片描述

3、 图书信息表
描述每本图书的基本介绍,具体字段类型如下表4.3所示:
表4.3 图书信息表
在这里插入图片描述

4、 管理员信息表
描述管理工作人员的基本信息,具体字段类型如表4.4所示:
表4.4 管理员信息表
在这里插入图片描述

5、 订单项表
该表主要描述了买家全部订单的明细信息,具体字段类型如表4.5所示:
表4.5 订单项表
在这里插入图片描述

6、 订单表
描述了用户购买图书产生的订单条目,包括订单id、书籍总价、订单是否被处理、用户昵称、订单产生时间等,具体字段类型如下表4.6所示:
表4.6 订单信息表

在这里插入图片描述

5 系统详细设计与实现
在经过上边对这个系统的一连串必要步骤进行完之后,现在正式开始系统的详细设计阶段,也就是程序编码过程。需求分析确定了系统的所有功能,系统设计阶段确定了所用到的技术以及结合自己我会不会该技术,然后数据库设计阶段确定了在该阶段我要把数据以怎样的形式存起来,详细设计是系统从分析到实现、从逻辑到物理实现的过程,该阶段是系统分析系统设计之后一重要环节。
5.1 管理员登录页面
1、描述:从确保本系统的安全性方面思量,作为管理工作者要想操作该系统后台管理系统必需先登录进系统的后台管理中。下图是后台登陆界面,界面简洁大方。
2、运行效果如图5.1所示:
在这里插入图片描述

图5.1 管理员登录界面
3、功能实现:
管理员在后台系统登录界面输入用户名和密码,点登录请求跳转到后台的action类中,在该类中进行逻辑判断,用户名和密码都对的情况下跳转到管理主界面,其中一项信息错误就出现“用户名或密码错误”提示信息,没有任何页面跳转。

登录界面判断输入信息准不准确,不准确提示错误信息的部分代码:

if (adminService.checkUser(admin.getUsername(), admin.getPassword())) {
	getSession().put("admin", admin.getUsername());
	return "main";
}
addActionError("用户名或密码不正确!");
return "login";

5.2 管理员模块
1、描述:管理员对系统管理的主界面:左侧页面显示管理员可进行操作的四大功能,而且各个模块都有对应的二级子菜单来选择具体操作。
2、运行效果如图5.2所示:
在这里插入图片描述

图5.2 管理员主页面

5.2.1 图书类目管理
5.2.1.1 添加类目
1、描述:工作人员输入类目名称,不用输入类别id,存入类别后id会自增。
2、运行效果如图5.3所示:
在这里插入图片描述

图5.3 添加图书类目

3、功能实现:
添加类别关键代码:

Action层:
			categoryService.add(category);
		return "recategory";
Service层:
public Integer add(Category category) {
		return categoryDao.save(category);
	}
Dao层:
	getSession().save(object);

5.2.1.2 图书类目列表
1、描述:管理员点左边的“类目管理”菜单,下边出现子菜单,点击“类目列表”,调用后台的逻辑处理类从数据库中查找所有的图书分类信息,右侧出来所有图书类别名称和对应操作。该页面左下角点击增添类目即可跳到增添类目页面。每个类目右边有对应修改和删除操作。

2、运行效果如图5.4所示:
在这里插入图片描述

图5.4 图书类目列表
3:实现代码:

categoryService.update(category);
	return "recategory";

5.2.1.3 类目信息删除
1、描述:点左侧“类目管理”菜单,点击“类目列表”,在类目列表页面,点击修改或者删除来实现对应操作。
2、运行效果如图5.5所示:
在这里插入图片描述

图5.5 类别删除功能
3、实现代码:

categoryService.delete(category);
public boolean delete(Category category) {
		return categoryDao.delete(category);
	}
try {
		getSession().delete(object);
	} catch (HibernateException e)

5.2.2 图书信息管理
5.2.2.1 添加图书
1、描述:点左边“图书管理”、“添加图书”,在右侧添加图书信息,填写下图中包含的图书信息,在此也可将图书直接划分到所属的类别中,使用下拉框实现。
2、运行效果如图5.6所示:
在这里插入图片描述

图5.6 图书信息录入

3、代码实现:
在该页面出版日期组件使用datepicker组件完成,初始日期是本天,对应设置语句为$( “#datepicker” ).datepicker(‘setDate’, new Date());
5.2.2.2 图书信息列表
1、描述:在管理主页面上点击左边“图书管理”菜单,在二级子目录中点击“图书列表”,调用后台的逻辑处理类查找出全部的书籍信息,将封装这些信息的collection放入请求对象中,然后带着这些数据转跳到响应的jsp页面,从而书籍信息展现在右侧页面中。
2、运行效果如图5.7所示:
在这里插入图片描述

图5.7 图书信息列表页面
3、代码实现:
图书管理关键代码:

Action层:
		bookList = bookService.getList(status, page, rows);
		return "book";
Service层:
		return bookDao.getList(status, page, rows);
Dao层:
		public List<Book> getList(int status, int page, int rows){
	return getSession().createQuery("from Book "+packSql(status)+" order by id 			desc");
		}

5.2.2.3 图书信息管理
1、描述:点击“图书管理”,出现推荐列表、最新列表、促销列表,在图书列表中,每个书后边的操作一栏中,可将该书设置成为推荐图书或最新图书或促销图书,然后可在左边栏中点击推荐列表、最新列表、促销列表来查看该书。
2、运行效果如图5.8所示:
在这里插入图片描述

图5.8 图书管理图
3、代码实现:

> <s:if test="!special"><img src="images/001.gif"/><span
> class="style1">[</span><a
> href="admin!bookSet.action?id=<s:propertyvalue="id"/>&flag=11&status=${status}&page=${page}">设为推荐</a><span
> class="style1">]</span>

其他功能“设为最新”、“设为促销”类似代码。
修改和删除类似。

5.2.2.4 图书推荐列表
1、描述:点击“图书管理”,点击“推荐列表”,右侧出现的图书均为商家对买家推荐的书籍,用户可根据爱好需求下订单。
2、运行效果如图5.9所示:
在这里插入图片描述

图5.9 推荐图书列表图
3、代码实现:

public String bookSet(){
		book = bookService.get(id);
		switch (flag) {
		case 10:
			book.setSpecial(false);
			break;
		case 11:
			book.setSpecial(true);
			break;
		case 20:
			book.setNews(false);
			break;
		case 21:
			book.setNews(true);
			break;
		case 30:
			book.setSale(false);
			break;
		case 31:
			book.setSale(true);
			break;
		}
		bookService.update(book);
		return "rebook";
	}

5.2.2.5 图书最新列表
1、描述:点击“图书管理”,点击“最新列表”,右侧出现的图书均为商家对买家推荐的最新书籍,用户可根据爱好需求进行浏览下订单。
2、运行效果如图5.10所示:

在这里插入图片描述

图5.10 最新图书列表图

3、代码实现:同上边的推荐列表部分的代码。
5.2.2.6 图书促销列表
1、描述:点击“图书管理”,点击“促销列表”,右侧出现的图书均为商家对买家推荐的最新书籍,用户可根据爱好需求进行浏览下订单。
2、运行效果如图5.11所示:
在这里插入图片描述

图5.11 促销图书列表图

3、代码实现:同上边的推荐列表部分的代码。
5.2.3 用户信息管理
5.2.3.1 用户信息列表
1、描述:消费者进入该网站首页就成为了该系统的一位用户,管理员登录后台系统后能对注册后的用户信息进行管理,点击左边栏目“用户管理“,页面链接到后台的逻辑处理类(userAction),在这个类里边,和数据库打交道取出信息,把用户信息查寻出来,进一步输出到响应的jsp显示页面。
2、运行效果如图5.12所示:
在这里插入图片描述

图5.12 用户信息列表
3、关键代码实现:
userList = userService.getList(page, rows);
5.2.3.2 管理员用户添加
1、描述:管理员在后台能增添管理员用户,这些用户都是系统保护用户,不会被删除。
2、运行效果如图5.13所示:
在这里插入图片描述

图5.13 添加管理用户图
3、代码实现:

if (adminService.isExist(admin.getUsername())) {
	addActionError("用户名已存在!");
	return "adminadd";
}
adminService.add(admin);
return "readmin";

5.2.4 订单信息管理
5.2.4.1 订单信息管理
1、描述:管理人员在后台管理页面能看到所有用户完成的订单,进而对订单进行管理。
2、运行效果如图5.14所示:
在这里插入图片描述

图5.14 订单信息管理
5.2.5 退出系统
在这里插入图片描述

2、关键代码:

<a href="../index/index.action"  target="_blank">网站首页</a>
<a href="login.jsp" target=_top>注销</a>

5.3 普通用户模块
5.3.1 系统主页面实现
1、描述:网站首页界面由四部分组成:上面是关于主题书的照片以及导航条、搜索栏,左边是各页面展示的区域,右边的上方是固定的对于网站书店(该书店是虚拟的)的简介,右边的下方是图书的分类信息以及促销书籍的展示,下方是固定区域显示其他信息。
2、运行效果如图5.15所示:
在这里插入图片描述

图5.15 网站主页面设计
3、功能实现:页面由JSP完成,具体代码不做展示。
5.3.2 图书查询
1、描述:用户在搜索框中输入图书名称查寻。调用后台的java类search.Action查询图书,在显示层jsp展示出来。
2、运行效果如图5.16所示:
在这里插入图片描述
在这里插入图片描述

图5.16 类别查询界面设计
3、功能实现:
搜索功能关键代码:

<form action="search.action" method="post" id="form_search">
		<input type="text" name="searchName" value="${searchName}" placeholder="输入图书名称" />
		<a href="javascript:void(0);" onclick="$('#form_search').submit()" style="float: 			right;margin-left:0">搜索</a>
</form>

5.3.3 用户登录注册
1、描述:游客能在网站首页浏览图书信息和书店简介信息,想成为网站的一名用户,必须通过注册登记自己的信息,成为了用户,在没有登录网站时,能做的操作有浏览书籍信息,图书查询,分类查询等,能把看好的书加入购物车,然则再提交订单时必须登录才能完成订单的生成。
2、运行效果如图5.17所示:
在这里插入图片描述

图5.17 用户登录界面设计
3、功能实现:
普通用户登录关键代码:

public boolean checkUser(String username, String password){
			return userDao.getByUsernameAndPassword(username, password);
}

5.3.4 图书分类查询
1、描述:用户可根据不同类别的名称点进去查找心仪图书,这样可减小查寻范围。
2、运行效果如图5.18所示:
在这里插入图片描述

图5.18 图书分类查询
3、功能实现:

<ul class="list">
	<s:iterator var="category" value="categoryList">
		<li><a href="category.action?category=<s:property value="id"/>"><s:property 				value="name"/></a></li>
	</s:iterator>
</ul>

5.3.5 在线下单
1、描述:一般游客若没有登录系统则不能生成订单,若登录系统就可在线买书了。
2、运行效果如图5.19、5.20所示:
用户没有登录系统下订单失败如图5.19所示:
在这里插入图片描述

图5.19 未登录下订单失败

用户登录后下订单成功如图5.20所示:
在这里插入图片描述

图5.20 登录后下订单成功
3、功能实现:
判断用户是否在线下订单关键代码:

if (getSession().get("username")==null || 														getSession().get("username").toString().isEmpty()) {
			addActionMessage("请登录后提交订单!");
			return "login";

}
要想提交订单只有登录的用户才能成功提交。以此来升高系统的安全性,防止用户没通过登录页面直接进入子菜单页面。

5.3.6 管理订单功能
1、描述:用户在成功登陆网站并完成订单后,点击 可查察所有订单,但不能删除已下订单,删除可与管理员取得联系,因为若用户可随意删除已下订单的话,对管理员很不好处理用户的订单,所以设计成只能管理员单向删除订单。
2、运行效果如图5.21所示:
在这里插入图片描述

图5.21 用户查看所有订单图

3、功能实现:
用户查看所有订单关键代码:

<a href="order.action">我的订单(<s:property value="#session.username"/>)</a>

6 系统测试
6.1 系统测试目的与意义
省略

6.2 测试过程
6.2.1 网站首页用户登录测试
测试步骤:
1、进入系统主页面,输入多次不同类型错误的信息
2、尝试登录查看效果
3、最后输入对的用户名和密码
4、点击登录查看效果
设计该模块的测试用例如表6.1所示:
表6.1 主界面的登录功能测试表
在这里插入图片描述

6.2.2 管理员删除图书信息测试
测试步骤:
1、管理员登录后台管理,在图书管理中先删除一本书籍
2、在前台搜索栏中用关键字搜索图书,看能否找到该图书
3、查看测试结果
结论:图书删除的功能正常。
删除前如图6.1所示:
在这里插入图片描述

图6.1 删除图书前效果图

删除后再搜索如图6.2所示:
在这里插入图片描述

图6.2 删除图书后效果图

6.2.3 生成订单测试
测试步骤:
1、打开系统网站首页,不登录时往购物车添加一本图书,看能不能成功
2、登录后再添加,看能不能添加成功
3、查看测试结果
结论:未登录时用户只能将商品添加到购物车,不能生成订单,登录后才能提交订单,所以生成订单功能正常。
效果图如图6.3所示:
在这里插入图片描述

图6.3 未登录提交订单效果图

6.2.4 其他错误测试
在执行程序的过程中肯定会产生种种不可预知的错误,好比说写入错误,值类型不匹配,参数的传递等问题。这些不仅需要仔细的测试,而且需要连续调试去解决掉。例如,当由于粗心错误导致的action路径配置错误引起的操作时,如图6.4所示:
在这里插入图片描述

图 6.4 action路径配置错误,运行出现的提示

7 系统的运行和维护
省略

结论
省略

本系统主要模块是前台针对用户的购书平台和后台针对管理员管理系统的平台。前台主要实现了图书信息浏览、虚拟书店介绍展示,用户注册登录、增添图书到购物车、生成订单等功能;后台模块主要实现了管理员管理用户、管理图书信息、管理订单信息、图书类别管理功能。层次分明、操作简单,用户和管理员能方便舒适的使用该系统。

参考文献
[1]郑阿奇.JSP实用教程.电子工业出版社,2008
[2] 飞思科技产品研发中心. JSP应用开发详解(第二版) [M]. 北京:电子工业出版社,2004
[3] 吴以欣,陈小宁.JavaScript脚本程序设计[M]. 北京:人民邮电出版社,2005
[4] 萨师煊,王珊.数据库系统概论(第五版)[M]. 北京:高等教育出版社,2014
[5]孙卫琴,李洪成.Tomcat与Java Web开发技术详解[M]. 北京:电子工业出版社,2004
[6] 刘中兵,李伯华,邹晨.JSP数据库项目案例导航.清华大学出版社,2006.
[7] 刘长生,谢强,丁秋林.Java应用中的汉字乱码问题分析[J]. 计算机技术与发展,2006,16(1):158-161
[8] Tsui,Frank F. JSP EM DASH A RESEARCH SIGNAL PROCESSOR IN JOSEPHSON TECHNOLOGY[C]. IBM Journal of Research and Development,Vol24, No2,1980:243-252
[9] Sanden, Bo. SYSTEMS PROGRAMMING WITH JSP:EXAMPLE - A VDU
[10] Mark Wutka,Alan Moffet,Kunal Mittal.Sams Teach Yourself JAVAServer Pages 2.0 with Apache Tomcat in 24 Hours[M].Sams Publishing,2003 [14]James Turner,Kevin Bedell. Struts Kick Start[M]. SAMS,2004 [15] Kong Michael. An environment for secure SQL/Server computing [M].Oxford University Press Inc., 1993: 149

致谢
省略

附录:外文原文
省略

中文翻译
省略


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于java+JSP+MySQL的网上购书系统设计与实现(源码+文档)_SSH_JSP_BS_网上购书系统.zip
  • 7
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值