【java毕业设计】基于java+SSH+jsp的网上体育商城设计与实现(毕业论文+程序源码)——网上体育商城

基于java+SSH+jsp的网上体育商城设计与实现(毕业论文+程序源码)

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

文章目录:

1、项目简介

  1. 本系统的设计严格遵循软件开发流程,使用MVC模式,采用开源框架Struts2、Spring、Hibernate进行开发,使用java语言编写,后端的数据库采用MySQL,通过Spring配置文件与数据库进行无缝连接,应用可以跨平台的Web应用技术与SSH结合开发的网上购物系统—网上体育商城,通过使用这些框架,使开发过程中的逻辑更加清晰,更有层次,也简化了代码的书写,更好的了解了Web应用程序和这些开源的框架技术,熟练了使用框架开发的流程。
  2. 该体育商城网站的前台页面非常简单明了,当用户第一次访问该商城时,可以清晰的看到商城中的新款商品与销量排行,可以非常方便的挑选到自己需要的商品,后台的管理也很方便,管理员可以对商品、订单等进行管理,所以该网上体育商城的创建可以更好地解决人们因没有时间到实体店而不能买到自己需要的体育用品的问题,商家使用该系统,也可以方便管理,提高工作效率。

2、资源详情

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


3、关键词:

网上体育商城;Struts2;Spring;Hibernate;MVC

4、毕设简介

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

第1章 前 言
1.1系统开发背景
省略

设计该系统的最初目的就是要实现在线销售体育商品,顾客可以注册会员、浏览商品、在线留言、购物下单等一系列功能,可以保证顾客不用出家门就能够在该体育商城购买到自己非常喜爱的商品,最终用户可以买到自己喜欢的商品,商家也可以获取更多的利润,形成一个互利的局面。

1.2国内外研究现状
省略

现在网络正处于大力发展的时候,各行各业都需要计算机的辅助加以提高效率,购买体育用品更应该求助于快速并且方便的网络工具——网上体育商城。

1.3系统开发目的及意义
省略

第2章 相关技术工具介绍
2.1 Struts2与MVC
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,Struts2中对于用户的请求是通过拦截器来处理的,当用户在客户端对浏览器发出HTTP请求,根据web.xml配置,该请求被FilterDispatcher接收,根据struts.xml配置,找到需要调用的Action类和方法,并通过IoC方式,将值注入给Aciton,Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证,Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面,返回HTTP响应到客户端浏览器,简单的说,就是用户在页面发出一个请求,通过struts找到对应的方法进行处理,处理完成把结果返回。

MVC模式是项目开发中最常用的设计模式,英文即Model-View-Controller,模型里有JavaBean,JavaBean的主要工作是负责数据模型,进行业务逻辑和访问数据库,视图中有JSP,JSP可以允许在HTML中插入JAVA代码,控制层里有Servlet,Servlet的作用是接收请求和控制应用程序,当用户在客户端发送请求时,服务器响应客户端的执行过程是,先执行Servlet,Servlet调用JavaBean,JavaBean访问数据库,数据库返回数据给JavaBean,Servlet调用了JavaBean之后,转向JSP页面,然后JSP页面就可以动态的显示数据呈现给用户,主要目的就是把大量的数据分开展示,也就是模型层和视图层的分离,中间用控制层来协调,起着一个类似中介的作用,将模型运算的结果发送到视图,视图负责将这部分数据显示给客户。

模型(Model)相当于人体的骨骼,里面封装了各种拥有私有属性和set/get方法的类。

视图(View)相当于人体展示的动作,将数据用控制层提供的方法从模型层中取出来放在视图层中展示出来。
控制器(controller) 相当于人体的大脑,封装了各种读取模型层中数据的方法,主要控制各种业务逻辑。

这三者之间的关系如图2-1所示。
在这里插入图片描述

图2-1

2.2 Hibernate
Hibernate是一个开源持久框架。它是由Gavin King在2001创建。简单来说,Hibernate是一个轻量级的ORM(对象关系映射)解决方案或java工具、Hibernate框架进行简化,用java开发应用程序与数据库的交互。Hibernate框架的主要优点是:比起JDBC,Hibernate没有很多复杂的SQL语句需要书写。使用Hibernate框架,没有必要在JDBC中完成所有不必要的繁琐工作;域对象与关系数据库的高效映射。因此,没有必要集中精力管理数据库中的数据;它的性能更好,速度快,因为使用缓存内部处理。Hibernate框架在数据库中自动创建表,因此不需要手工创建表。它简化了复杂的连接,由于这种简化,它很容易从多个表中获取数据。Hibernate支持继承、集合和关联。Hibernate有自己的独立数据库查询语言。

2.3 Spring
Spring 是一个开源框架,通俗来说是用来关联两个对象的,对象和对象之间不再需要实例化,只需用在spring的配置文件中配置一下就可以确定两个对象之间的依赖关系,spring的两大特点是依赖注入和控制反转,简单点来说,就是在代码中对对象实例化以后,需要调用对象的方法,但是使用了spring以后,就可以直接在代码中指向需要的对象和对象的方法,只需要在配置文件中自动把类注入,不需要自己在写new,是系统的耦合度降低了,这样做的好处是只需要知道对象的名称而不需要知道对象具体是干什么的,一旦对象改变只需要简单的改一下配置文件即可。

AOP又称为面向切面编程,它的实现原理还是用了反射,通过对某一个种类的方法名做监控来实现统一处理,面向切面编程最大的用途就是提供了事务管理的能力,事务管理非常的复杂,而我们的目的是去访问数据库,而不想管理太多的事务,所以spring在我们访问数据库之前,自动帮我们开启事务,当访问数据库结束时,会自动提交或回滚事务,这样可以使我们写的代码更加的简洁,注重于它实际需要解决的问题。

2.4开发工具以及环境
2.4.1 Eclipse工具说明
Eclipse是IBM公司投资开发的,是一个开源、功能强大、最为流行的Java编程工具,因为可以免费下载使用,所以大多数人都是将Eclipse作为Java的集成开发环境使用。

Eclipse里的插件非常多,基本上能想到的插件都有,可以无限的进行扩展,尤其是公司做项目时,用eclipse找各种插件非常的方便,而且eclipse的图形化界面非常好,不会出现字体丑的问题,它提供的快捷键非常的好用,还可以设置自动补全,它里面的很多功能都是为java量身定做的,用它编写java代码非常的快。

2.4.2 MySQL工具说明
MySQL数据库软件中的一种,是当前比较受欢迎的开源的小型关系型数据库管理系统,因为它可以免费使用,而且体积小、速度快,所以受到很多中小型企业的喜爱,其被甲骨文公司收购后,由甲骨文进行开发、分发和支持。MySQL可以运行在所有的操作系统上,包括Linux,UNIX和Windows,可以说应用非常广泛,但是MySQL最常用于是基于Web的应用程序,由于它的性能优越,搭配JAVA和Apache tomcat可组成良好的开发环境。

2.4.3 Tomcat服务器介绍
Tomcat 服务器是SUN公司官方推荐的服务器和Jsp容器,是由java语言开发的,它只是一个servlet容器,是Apache的扩展,主要用来处理动态网页,是jsp的服务器之一,如果网页是纯html静态网页,通过浏览器就可以直接解析查看效果,但是网页一旦用jsp来生成动态网页,浏览器就无法直接解析了,需要用Tomcat服务器来进行解析,在这次开发中也应用到了。Tomcat部署很简单,只需要先将Tomcat添加到eclipse中,然后把需要运行的项目添加到Tomcat中,然后启动Tomcat服务器,Tomcat会自动检测这个文件,通常情况下第一次运行速度比较慢,而后运行速率会加快,因为在第一次部署完成后Tomcat要将jsp转化为Servlet文件后才能编译。

2.4.4 系统运行环境
操作系统:Windows7及以上。
Web服务器:tomcat7.0
浏览器:Fire Fox、Google Chrome。

第3章 系统的分析
3.1 系统可行性分析
省略

3.1.1 经济可行性
省略

3.1.2 技术可行性
省略

开发该体育商城系统所采用的语言是主流语言java,数据库用的是Mysql,目前jsp是比较火的制作动态网页的技术,因此使用它作为处理动态网页的技术,这些开发所需用的技术都可以很方便的寻找到资源,并且能够顺利完成开发工作,因此从技术方面来讲开发此系统是可行的。

3.1.3 操作可行性
省略

3.1.4 时间可行性
省略

3.1.5 法律可行性
省略

3.2 系统需求分析
根据对该网上体育商城的功能进行分析,为了满足用户的需求,该系统应该满足以下功能,接下来从前台的客户端界面和后台管理界面分别对该系统的功能加以描述。

前台页面的功能主要包括:
1.体育商品分类:当用户第一次访问该商城时,可以按照商品分类快速查找到自己所需商品是属于哪一类型。
2.所售商品描述:当用户看到某一商品时,可以很快看到这件商品的详细介绍。
3.商品销量排行:在该商城的客户端界面,用户可以清晰的看到该商城畅销的前五件商品。
4.商品的搜索栏:当用户不想逐一类别的查找自己需要的商品时,可以在搜索栏进行查找,该搜索栏必须支持模糊查询,用户只输入关键字,就可以快速查找到自己需要的。
5.会员留言:该功能是用来专门给用户提供反馈意见的机会,用户对在该商城买的商品有某些意见,可以进行留言,或者对该商城有某些建设性的建议,也可以进行留言,总之,就是为用户提供一个与商家交流的窗口。
6.会员的注册登录:该功能是一个购物网站不可缺少的主要功能,用户只有注册登录成功后,才可以进行后续的一系列操作,不然就只能浏览商品,不能进行购买。
7.购物车:该功能也是一个购物网站必须的功能,用户不可能看中一件商品就去付一次款,这样对商家和用户都不是很方便,用户可以先将看中的商品加入购物车中,等挑选结束后,再进行统一付款。
8.查看订单:该功能主要是方便用户查看自己的订单,当用户下一次单时,商家可以受理此订单并进行发货,用户收到货后,可以确认收货并评价商品。
9.查看个人信息:当用户在该商城进行注册时,需要填写自己的个人信息,如姓名、性别、地址、邮箱、电话、QQ等信息,注册成功后,该商城会把每一位注册成功的用户信息保存下来,用户登录成功后,可以查看并修改个人信息。
10.联系我们:该功能主要是给用户提供商家的联系方式,当用户有某些需求时,可以直接跟商家电话联系。
11.网站公告:该功能主要是方便商家对顾客发布一些公告,如商城搞活动或有新商品上架等。
12.后台登录:在前台页面的下方提供一个管理员登录后台的按钮,管理员点击该按钮,可以进入后台登录界面,方便管理员进行管理。

后台管理页面的功能主要包括:
1.系统参数:该功能可以使管理员看到该商城系统的版本号和作者及作者的邮箱,有需要改进的地方可以直接和作者联系。
2.管理员维护:该功能可以让管理员对自己的密码进行修改。
3.注册会员的管理:管理员可以对前台已经注册的一些会员用户进行管理,当某些会员用户有非法操作时可以进行删除,防止对该商城系统造成大的损害。
4.商品管理:该功能使管理员对该商品的类别和具体商品进行管理,对商城所售商品的类别进行增加、修改和删除,对具体某一件商品进行添加和删除。
5.订单管理:当某一用户在前台下单后,管理员在后台可以查看订单明细,受理此订单或删除该订单,方便管理员对订单的管理。
6.销量管理:管理员在后台可以对该商城所售商品的销量进行管理,商品的销量按从高到低进行排列。
7.留言公告管理:管理员在后台可以查看或删除用户的留言,发布最新的公告或删除过期的公告。
8.退出后台:该功能主要是方便管理员的退出,当管理员想退出后台管理页面时,点击此按钮,可以迅速返回到后台的登录页面。

以上就是该体育商城的前台客户端页面和后台管理页面所需要实现的所有功能。

3.3 业务流程分析
网上体育商城的主要工作流程为:启动服务器并进入系统界面,用户可以浏览网页,挑选自己喜欢的体育商品,管理员的权限是最大的,既可以管理整个系统,又可以管理已经注册的会员用户,对所售体育商品进行添加、修改和删除,还可以处理客户订单,以及对商品销量进行查看管理、查看留言。

用户在该体育商城系统中的业务流程图如图3-1所示。
在这里插入图片描述

图3-1

第4章 系统的设计
4.1 系统的设计
在该网上体育商城的设计过程中,突出了面向对象的设计理念,使用的开发模式为B/S模式,后台管理系统与前台客户端的处理层次分的很清楚,并且考虑到了不同用户浏览网页的方式不同,在页面的开始设置了一个搜索栏,系统的界面非常简单友好,用户在访问的过程中,操作方便,系统的响应速度非常快,占用的资源很少,可以满足大多数用户的购买需求,页面设计比较人性化,匿名用户第一次访问该网站,可以很轻松的找到自己想要的商品。在设计和开发这个系统时,模块化的设计理念也很突出,把一个大的系统划分成好几个小的模块,简化设计,有利于更好的开发。

4.2 业务对象设计
在该体育商城的系统设计中,普通用户的权限有注册会员、登录网站、浏览商品、查询商品、加入购物车、下单购买,因为普通的用户登录网站主要就是想买到自己喜欢的体育用品,所以拥有这些权限足够了,普通会员用户的用例图如图4-1所示。

在这里插入图片描述

图4-1
也有一些访问者可能是匿名用户,用例图如图4-2所示。
在这里插入图片描述

图4-2
在该商城系统中,核心的管理者是系统管理员,管理员对商城里的各个功能模块都可以进行操作,对商城里的所销售的体育用品信息也可以修改,处理客户的订单,并能及时的增加一些时下流行的体育商品,下架一些过时的体育商品,反馈客户的留言,发布公告,管理员的用例图如图4-3所示。

在这里插入图片描述

图4-3
4.3 业务流程设计
4.3.1 业务流程图
在该体育商城的系统中,普通的用户第一次访问商城网站时,不能立即购买商品,只能浏览网页,要想马上购买商品,就必须要注册会员,输入自己的基本信息,设置正确格式的用户名和密码,然后登录,就可以买喜欢的商品了,而要想进入这个体育商城系统的后台管理界面,身份必须要是管理员,输入正确的名字和密码后就可以进入后台管理界面。管理员成功登陆后可以对访问该网站的会员人员进行管理、对商品的基本信息管理、对订单、销量、留言等进行管理。

根据以上的叙述,建立了普通用户的系统流程图,如图4-4所示。
在这里插入图片描述

图4-4

建立了管理员的系统流程图,如图4-5所示。
在这里插入图片描述

图4-5
4.3.2 系统前台功能图
根据系统的需求分析,设计了普通用户的功能模块图,如图4-6所示。
在这里插入图片描述

图4-6
4.3.3 系统后台功能图
根据系统的需求分析,设计了管理员的用户模块图,如图4-7所示。
在这里插入图片描述

图4-7
4.4 数据库
省略

4.4.1 数据库需求分析
该体育商城系统的数据库需求具体体现在对所有的注册会员的用户进行管理,对各种体育商品的情况进行管理,这就要求数据库能及时的更新数据,确保每一条数据都能够保存,保证对每个会员,每件商品进行有效的管理,为最终项目的成功运行提供保障。

4.4.2 数据库概念结构设计
数据库的概念结构设计在整个开发过程中非常的重要,没有一个好的概念设计,编码做得再好都是徒劳,一般可以利用E-R图进行数据库的概念设计,E-R图可用于描述各个实体之间的关系。
经过对该体育商城系统的分析:
得出一个系统管理员可以管理多个体育商品,而一个体育商品也可以被多个管理员进行修改,所以是多对多的关系,如图4-8所示。
在这里插入图片描述

图4-8
管理员实体的E-R图如图4-9所示。
在这里插入图片描述

图4-9
登录用户的E-R图如图4-10所示。

在这里插入图片描述

图4-10
每个体育商品的E-R图如图4-11所示。
在这里插入图片描述

图4-11
商品订单的E-R图如图4-12所示。
在这里插入图片描述

图4-12
4.4.2 数据库逻辑结构设计
该体育商城系统的概念结构设计完成后,该数据库的逻辑结构设计可以参照概念结构设计转化过来。

网上体育商城数据库中各个表的设计如下所示,每个表格表示在数据库中的一个表。

描述管理员各个属性的表为管理员表 t_admin,主要包含管理员的ID号、用户名和密码,如表4-1所示。
表4-1
在这里插入图片描述

描述商品所有类别的表为商品类别表 t_catelog,主要包含商品类别的ID号、类别的名称和具体描述,如表4-2所示。
表4-2
在这里插入图片描述

描述公告信息的表为t_gonggao,主要包含某条公告的ID号、公告的标题、公告的内容、公告的发布时间和发布者,如表4-3所示。
表4-3
在这里插入图片描述

描述用户留言的表为 t_liuyan,主要包含用户留言的ID号、留言的标题、留言内容、留言的日期和留言人,如表4-4所示。
表4-4
在这里插入图片描述

描述商品具体属性的表为 t_goods,主要包含某件商品的ID号、商品的名称、商品的详细描述、商品图片和该商品所属类别的ID号,如表4-5所示。
表4-5
在这里插入图片描述

描述商品订单属性的表为 t_order,主要包含订单的ID号、某条订单的编号、订单的日期、订单目前的状态、订单的金额、订单的送货方式和付款方式,还有下此条订单的用户ID号,如表4-6所示。
表4-6
在这里插入图片描述

描述商品订单明细的表为 t_orderitem,主要包含该订单明细的ID、订单的ID号、商品的ID号和商品的数量,如表4-7所示。
表4-7
在这里插入图片描述

描述会员用户属性的表为 t_user,主要包含用户的ID号、用户名、密码、真实姓名、地址、性别、电话、邮箱和QQ号,如表4-8所示。
表4-8
在这里插入图片描述

描述用户评价的表为 t_ping,主要包含该评价的ID号、评价某条订单的ID、订单明细的ID、所评价商品的ID、商品的名称、用户的ID、写该条评价的用户名、评价的具体内容和评价的日期,如表4-9所示。
表4-9
在这里插入图片描述

第5章 系统的实现
根据对该体育商城系统的需求分析,该商城的界面主要分为后台管理页面和前台客户端页面,用户只可以访问前台客户端页面,通过浏览网页来满足自己的购物需求,商城前端的所有功能都是通过后台的管理来实现的,所显示的所有商品信息都需要通过后台管理系统来增加、修改和删除,后台管理页面只有管理员可以访问。因为在后台需要对所有商品的信息进行处理,所以后台管理部分的开发比前台客户端要复杂。

对于该体育商城系统,概括起来,主要实现了以下功能:
前台部分
商品分类:用户可以查看商品的所有分类,方便用户快速找到自己需要的商品。
商品描述:用户可以查看每件商品的详细描述。
销量排行:用户可以看到该商城中商品销售排在前五的商品。
商品搜索:用户可以搜索自己感兴趣的体育商品,该搜索栏支持模糊查询,只需输入关键字就可以查到。
会员注册:用户填写自己的基本信息,可以成为该商城的会员用户。
用户登录:注册成功后,可以登录该商城的网站。
购物车:用户看中一件商品不需要马上付款,可以先加入到购物车中,挑选结束后再整体付款。
订单管理:用户可以查看自己已下的订单,看是否被管理员受理,收到商品后,可以点击收货,并对商品进行评价。
留言:用户可以对网站进行留言,发表自己的建议或意见。
公告管理:管理员可以在后台发布公告,用户可以在前台进行点击看到公告的详细信息。
联系我们:提供网站的联系方式,用户有某些需求可以直接联系。

后台部分
系统参数:管理员可以查看此刻系统运行环境。
管理员维护:管理员可以对自己的密码进行修改。
会员管理:管理员可以对该体育商城的用户进行删除。
商品管理:管理员可以对商品的类别进行添加、修改和删除,对具体某一类别的商品进行添加和删除。
订单管理:管理员可以查看用户订单的详细信息,还可以受理用户的订单或删除用户的订单。
销量管理:管理员可以查看该商城中所有商品的销售情况,按商品的销售量由多到少进行排列。
留言公告管理:管理员可以查看所有用户的留言或删除,发布新的公告或删除旧的公告。
退出系统:当管理员的所有操作都结束后,可以点击退出系统进行退出。

下面分别说明这些功能进行具体的说明。

5.1 体育商城前台界面
5.1.1首页界面
用户第一次登录商城时,可以在浏览器中输入localhost:8087/tyypsc,发出请求后,前台显示index.jsp,用户可以看体育商城主界面,主要分为三个div模块,上面为一块,下面分成左右两块,界面如图5-1所示。
在这里插入图片描述

图5-1
当用户刚打开该商城网站时,点击在线留言、我的信息、购物车、我的订单,都会提示请先登录,主要是通过以下代码实现的:

<s:if test="#session.user==null">
	        alert("请先登录");//弹出对话框
</s:if>
新款上市主要是按商品ID号进行降序排列,关键代码如下:
String sql="from TGoods where goodsDel='no' and goodsIsnottejia='yes' order   by goodsId desc";//按商品ID号降序排列
List goodsYesTejiaList=goodsDAO.getHibernateTemplate().find(sql);
if(goodsYesTejiaList.size()>5)
{
	goodsYesTejiaList=goodsYesTejiaList.subList(0, 5);
 //商品列表中的前五个商品品
}
	request.put("goodsYesTejiaList", goodsYesTejiaList);

5.1.2商品分类
对商品信息进行分类,既使商家方便管理商品,更有利于用户更快的挑选自己需要的商品,该商城的商品主要分为以下四类,点击每一类,都可以查看这个类中的所有商品,如图5-2所示。
在这里插入图片描述

图5-2

点击商品信息,可以查看该商城所售的所有商品,如图5-3所示。
在这里插入图片描述

图5-3
5.1.3商品描述
用户在商城主页面点击任意一张喜欢的商品图片可以跳转到一个新的jsp页面,在该页面用户可以看到该体育用品的基本介绍,和已购买用户的评价,如图5-4所示。
在这里插入图片描述

图5-4
5.1.4 销量排行
根据顾客的喜欢程度,将销售情况较好的前五件商品展示出来,这样更有利于顾客的挑选,如图5-5所示。
在这里插入图片描述

图5-5
销量排行的关键代码如下:
sql=“select sum(goodsQuantity),goodsId from TOrderItem group by goodsId order by sum(goodsQuantity) desc”;
//按照商品销售数量的多少进行降序排列

5.1.5 商品搜索
该搜索功能支持模糊查询,只要输入所需商品关键字,点击商品搜索按钮,调用goodsAction.java中的goodSearch方法,可跳转到goodSearch.jsp页面,可以查询到用户需要的商品,如图5-6所示。
在这里插入图片描述

图5-6
5.1.6会员注册
注册功能是购物网站最基本的功能,用户只有成功注册,才能继续进行接下来的一系列操作,在该体育商城中,当用户在前台页面点击注册按钮后,会弹出注册的jsp页面,显示一个填写信息的form表单,用户按照要求填写基本信息,check1方法会判断用户填入的信息是否符合要求,如果符合要求,点击确定按钮,提示注册成功,如图5-7所示。
在这里插入图片描述

图5-7
注册成功后,用户输入正确的用户名和密码,可以成功登录该网站,登录后点击我的信息,可以跳转到userXinxi.jsp页面,在该页面中,用户可以修改自己的基本信息,如图5-8所示。
在这里插入图片描述

图5-8
用户点击注册按钮后,填完基本信息,点击确定按钮时,会弹出操作成功,提示本窗口将在3秒后自动关闭,如下图所示,这个功能主要是通过以下代码实现的。

function clock()
{
	    i = i -1;
	    if(i > 0)
	      {
	        document.getElementById("info").innerHTML = 
"本窗口将在"+i+"秒后自动关闭";
            //先获取到id为info的标签
		     setTimeout("clock();",1000);
	      }
	      else
	      {
		     closewindow();
	      }
}

5.1.7购物车
购物车模块也是一个购物网站不可缺少的功能,用户可以将喜欢的商品先放入购物车中,然后点击导航栏中的购物车,会跳转到购物车的jsp页面,在这个页面中,用户可以查看自己已挑选的商品,还可改变购买数量,这里的个数后台通过正则表达式进行限制,只可以输入正整数,如图5-9所示。
在这里插入图片描述

图5-9
限制商品数量的关键代码如下:

function modiNum(goodsId,quantity)
	{
	     var r1= /^[0-9]*[1-9][0-9]*$/  //运用正则表达式限制为正整数 
	     var val=r1.test(quantity); //str为你要判断的字符 执行返回结果 true 或 false
	     if(val==false)
	      {
	           alert("数量必须是正数,请重新输入");
	      }
	           else
	      {
	           document.getElementById("indicator1").style.display="block";
	           cartService.modiNum(goodsId,quantity,callback);
	      }
	 }

如果顾客没有输入购买个数,也会弹出提示对话框,提示“请输入购买数量”。

if(document.buy.quantity.value=="")
	  {
	       alert("请输入购买数量");
	         return false;
	  }

5.1.8 订单管理
顾客可以在前台页面点击我的订单查询自己的订单信息,点击后会跳转到myOrder.jsp页面,如图5-10所示。
在这里插入图片描述

如果自己已经收到货物,可以点击收获按钮,会显示收货成功的对话框。
点击评价按钮,可跳转到orderDetailPing.jsp页面,这个页面可显示已购买的商品名称和图片,还可填写评价,如图5-11所示。
在这里插入图片描述

图5-11
5.1.9留言
顾客在导航栏点击在线留言,可跳转到liuyanAll.jsp页面,在这个页面可以发表问题,咨询,建议并进行提交,如图5-12所示。

在这里插入图片描述

图5-12
5.1.10 公告
点击网站公告下的任意一条,可跳转到gonggaoDetailQian.jsp页面,该页面可详细介绍这条公告的完整信息,如图5-13和5-14所示。
在这里插入图片描述

图5-13

在这里插入图片描述

图5-14
5.1.11 联系我们
顾客点击导航栏的联系我们,跳转到lianxi.jsp页面,该页面可显示网站的联系方式,如图5-15所示。
在这里插入图片描述

图5-15
5.2 体育商城后台管理
5.2.1 首页界面
在该体育商城中,在前台页面的下方有个管理登录按钮,管理员点击后,可跳转到后台的登录页面,管理员按要求输入用户名、密码和验证码,就可成功登录后台管理系统,后台通过frame框架分成三部分,页面顶部为一部分,下面分成左右两部分,如图5-16、5-17和5-18所示。
在这里插入图片描述

图5-16
以下这段代码主要实现了后台登录时验证码的功能

public class RandomValidateCode {
public static final String RANDOMCODEKEY = "RANDOMVALIDATECODEKEY";//放到session中的key
    private Random random = new Random();
private String randString = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
//从这里面随机产生一个字符串
    private int width = 80;//图片宽
    private int height = 26;//图片高
    private int lineSize = 40;//干扰线数量
    private int stringNum = 4;//随机产生字符数量
    //获得字体
    private Font getFont(){
        return new Font("Fixedsys",Font.CENTER_BASELINE,18);
    }
    //获得颜色
    private Color getRandColor(int fc,int bc){
        if(fc > 255)
            fc = 255;
        if(bc > 255)
            bc = 255;
        int r = fc + random.nextInt(bc-fc-16);
        int g = fc + random.nextInt(bc-fc-14);
        int b = fc + random.nextInt(bc-fc-18);
        return new Color(r,g,b);
    }
    //生成随机图片
    public void getRandcode(HttpServletRequest request,
            HttpServletResponse response) {
        HttpSession session = request.getSession();
        //BufferedImage类是具有缓冲区的Image类,Image类是用于描述图像信息的类
 BufferedImage image = new  BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);
        Graphics g = image.getGraphics();
//产生Image对象的Graphics对象,该对象可以对图像进行各种绘制操作
        g.fillRect(0, 0, width, height);
        g.setFont(new Font("Times New Roman",Font.ROMAN_BASELINE,18));
        g.setColor(getRandColor(110, 133));
        //绘制干扰线
        for(int i=0;i<=lineSize;i++){
            drowLine(g);
        }
        //绘制随机字符
        String randomString = "";
        for(int i=1;i<=stringNum;i++){
            randomString=drowString(g,randomString,i);
        }
        session.removeAttribute(RANDOMCODEKEY);
        session.setAttribute(RANDOMCODEKEY, randomString);
        System.out.println(randomString);
        g.dispose();
        try {
            ImageIO.write(image, "JPEG", response.getOutputStream());
//将内存中的图片以流动的形式显示到客户端
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //绘制字符串
    private String drowString(Graphics g,String randomString,int i){
        g.setFont(getFont());
        g.setColor(new Color(random.nextInt(101),random.nextInt(111),random.nextInt(121)));
        String rand = String.valueOf(getRandomString(random.nextInt(randString.length())));
        randomString +=rand;
        g.translate(random.nextInt(3), random.nextInt(3));
        g.drawString(rand, 13*i, 16);
        return randomString;
    }
    //绘制干扰线
    private void drowLine(Graphics g){
        int x = random.nextInt(width);
        int y = random.nextInt(height);
        int xl = random.nextInt(13);
        int yl = random.nextInt(15);
        g.drawLine(x, y, x+xl, y+yl);
    }
     //获取随机的字符
    public String getRandomString(int num){
        return String.valueOf(randString.charAt(num));
    }
}

在这里插入图片描述

图5-17
通过frameset框架集,把后台管理界面分成了三块。

<frameset rows="59,*" cols="*" frameborder="no" border="0" framespacing="0">
  <frame src="top.jsp" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
  <frameset cols="213,*" frameborder="no" border="0" framespacing="0">
    <frame src="left.jsp" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame" />
    <frame src="version.jsp" name="mainFrame" id="mainFrame" title="mainFrame" />
  </frameset>
</frameset>

在这里插入图片描述

图5-18
5.2.2 系统参数
可以查看此刻该系统运行环境,如图5-19所示。

在这里插入图片描述

图5-19
5.2.3 管理员维护
点击管理员维护,可以修改密码,如图5-20所示。

在这里插入图片描述

图5-20
5.2.4 会员管理
点击会员管理,可以对该网站会员的信息进行查看和删除,如图5-21所示。
在这里插入图片描述

图5-21
5.2.5 商品管理
该商城的商品管理主要分为两部分,一部分是添加和删除某个商品类别,另一部分是对具体某个类别的商品进行管理,如图5-22和5-23所示。

在这里插入图片描述

图5-22
在这里插入图片描述

图5-23
5.2.6 订单管理
订单管理主要包含三个功能,一是对用户刚买的订单进行受理,二是查看订单明细,三是删除任意一条订单,如图5-24所示。
在这里插入图片描述

图5-24
5.2.7 销量管理
管理员点击销量管理,可查看该商城所有商品的销量情况,按从高到低排列,如图5-25所示。
在这里插入图片描述

图5-25

5.2.8 留言公告管理
管理员点击留言公告,可以对用户的留言进行管理,添加商城公告信息或删除已发布的消息,如图5-26和5-27所示。

在这里插入图片描述

图5-26
在这里插入图片描述

图5-27
点击退出系统就可返回到后台登录界面。
由于该系统在开始设计的时候就没有考虑的复杂,所以系统界面比较简单明了,用户使用起来也非常方便,在此不再详细叙述如何操作。总而言之,该系统界面设计虽然简单,但功能齐全无遗漏,是该体育商城的最大亮点。
5.3 配置文件说明
1.struts2的配置
在struts2中,通过Filter可以启动struts框架,在web.xml中的配置如下:

<filter>
		<filter-name>struts</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.FilterDispatcher
		</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

在StrutsPrepareAndExecuteFilter的init()方法中将会读取类路径下默认的配置文件struts.xml完成初始化操作,struts.xml文件需要存放在src目录下,struts2读取到struts.xml的内容后,以javabean的形式存放在内存中,以后struts2对用户的每次请求处理将使用内存中的数据,所以不需要每次都读取struts.xml文件,该体育商城系统中struts.xml的部分配置文件如下代码:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC   
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   
     "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<package name="liu" extends="struts-default">
<action name="upload" class="com.util.upload" method="upload">
			<result name="success">/upload/upload_re.jsp</result>
		</action>
		<action name="index" class="indexAction" method="index">
			<result name="success">/qiantai/index.jsp</result>
		</action>
</package>
</struts>

第6章 系统的测试
6.1程序调试
省略

6.2 程序的测试
6.2.1 测试的重要性及目的
省略

6.2.2 测试的步骤
一个系统的测试与开发的过程非常相似,必须一步一步来,分步骤进行,而不能随便测试,前一步的测试内容都是下一步的基础。一个大的软件系统一般是由几个小的系统组成,而每个小系统又可以分成若干个模块。因此,对于项目的测试,也需要分步骤进行:
1.代码审查
对于一个大的软件项目,代码的工作量着实不少,审查主要是对代码中的逻辑进行细致分析,看其是否合理。
2.单元测试
对于一个项目中的某一个小的模块进行测试,首先看一下它的编码有没有错误,然后看这个模块所实现的功能符不符合最初的设计要求,如果不符合,看需要从哪一方面进行改进。
3.集成测试
集成测试,是将该体育商城系统所划分的每个模块都结合在一起,同时进行测试,有的时候单个模块测试不会出现问题,但一旦进行整体测试,就会出现意想不到的错误,尤其是接口方面的错误,因此必须进行集成测试,看整个系统在运行起来有没有错误,如果各个模块之间不能很好的兼容,到开发的后期会出现很大的问题,对用户会造成很大的损失。
4.确认测试
随着单元测试和集成测试的完成,保证每个模块都没有问题,各个模块之间的组合也非常成功,接下来就该完成确认测试,确认测试主要是验证客户所提出的需求在该商城系统中有没有一一实现,对客户的要求能否满足,有没有遗漏某些功能。
5.系统测试
当整个的项目系统开发结束后,上面几步的测试也都完成,最后还要进行系统测试,系统测试首先验证客户所要求的全部功能系统能否全部实现,其次对整个系统所能承受的强度进行检测,比如当有很多用户同时访问该系统网站时,会出现什么情况,最后要对系统的安全性进行测试,例如当输入用户名和密码时,输入一个非法的或错误的数据时,看系统会出现什么结果,可以测出系统的抗干扰能力的强弱。

通过对该体育商城的测试,整个系统的测试结果如表6-1所示。
当用户登录时,输入正确的用户名和密码,提示登录成功,如图6-1所示。
在这里插入图片描述

图6-1
当输入错误的用户名或密码时,提示用户名或密码错误,如图6-2所示。
在这里插入图片描述
图6-2
当未输入用户名或密码时,提示请输入用户名或请输入密码,如图6-3和6-4所示。
在这里插入图片描述
图6-3
在这里插入图片描述

图6-4
当进行用户注册时,按要求填写基本信息,点击确定后,提示操作成功,如图6-5和6-6所示。
在这里插入图片描述

图6-5
在这里插入图片描述

图6-6
当用户名跟已注册的用户名重复时,提示该用户名已存在,请重新注册,如图6-7所示。
在这里插入图片描述

图6-7
当用户登录成功,修改个人基本信息时,如果按照要求修改,提示操作成功,如
图6-8所示。
在这里插入图片描述

图6-8
当用户购买商品时,商品数量为负数或不填都购买不成功,提示数量必须为正数,如图6-9所示。
在这里插入图片描述

图6-9
当管理员进行后台登录时,如果输入正确的用户名、密码和验证码,会提示通过验证登录成功,如图6-10所示,当用户名、密码和验证码三者中有一个没有输,都会提示输入。
在这里插入图片描述

图6-10
当管理员进行密码修改时,输入原密码、新密码,再确认密码,点击修改按钮后,提示修改成功,如图6-11所示。
在这里插入图片描述

图6-11
当管理员进行会员管理时,点击删除按钮,会弹出一个对话框,询问确定删除吗,点击确定按钮后,会提示删除成功,如图6-12和6-13所示。
在这里插入图片描述

图6-12
在这里插入图片描述

图6-13
对商品的类别和具体商品添加时,都会提示操作成功,如图6-14所示。
在这里插入图片描述

图6-14
表6-1
在这里插入图片描述
在这里插入图片描述

第7章 总结
7.1 系统总结
该体育商城系统采用的主要编码语言是主流语言Java,数据库使用的是MySQL,在开发时采用了模块化的设计思想,逻辑比较清晰,该系统满足了一般购物者所需要的基本功能,系统的前台界面比较简单,用户操作起来非常方便。

刚开始时对整个网站系统的需求以及整体开发的流程和开发过程中各部分资源的分配进行了较为详细的分析,并在此基础上对于该系统的开发所需要的技术以及环境进行了较为准确的定位,从数据库到服务器以及其他的架构和框架技术都进行了确认,这些工作保证了开发的顺利完成。开发过程中又证实了数据库的设计,各功能模块的设计基本符合开发需求。开发完成后对整个系统进行了较为全面的测试评估,其中的用户模块的用户,注册,登录,用户个人信息修改功能完全实现,商品购买模块实现的也很完美,管理员模块中会员管理对用户信息的修改,删除功能也是完全实现。

省略

致 谢
省略

参考文献
[1]赵伟,李东明 Java语言 北京航空航天大学出版社 2011
[2]Bruce Ecke Thinking in Java 机械工业出版社 2007
[3]王珊,萨师煊 数据库系统概论(第5版) 高等教育出版社 2014
[4]李爱萍,崔冬华,李东生. 软件工程. 人民邮电出版社 2014.
[5]赵志超,吴铁锋 基于J2EE的网上体育用品店的设计 数字技术与应用 2012
[6]沈洪,朱军 Photoshop图像处理技术 中国铁道出版社 2011
[7]谢希仁 计算机网络 电子工业出版社 2013
[8]Patton.R 张小松等译Software Testing 机械工业出版社 2006
[9]D Raggett HTML 4.01 Specification 1999
[10]朱少民 软件测试 人民邮电出版社 2013

外文原文
省略

中文翻译
省略


5、资源下载

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

序号毕业设计全套资源(点击下载)
本项目源码基于java+SSH+jsp的网上体育商城设计与实现(源码+文档)_SSH_MySQL_jsp_网上体育商城.zip
  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

毕业设计方案专家

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

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

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

打赏作者

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

抵扣说明:

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

余额充值