• java毕业设计——基于java+Spring+JSP的宠物网站设计与实现(毕业论文+程序源码)——宠物网站


    基于java+Spring+JSP的宠物网站设计与实现(毕业论文+程序源码)

    大家好,今天给大家介绍基于java+Spring+JSP的宠物网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。

    文章目录:

    1、项目简介

    1. 本系统是采用Java技术来构建的一个基于Web技术的B/S结构的宠物网站,该网站建立在Spring和Struts2框架之上,前台使用JSP作为开发语言,后台使用MySQL数据库管理系统对数据进行管理,开发环境选用MyEclipse,应用服务器采用Tomcat。

    2. 宠物网站系统为广大用户实现便捷的购买宠物的功能,实现宠物商店的网络化管理。网站前台系统主要负责与用户打交道,实现用户的注册、登录、宠物预览、提交订单等功能。网站后台系统主要实现管理员登录、会员中心、新闻动态、完成订单、系统维护等功能。结果表明,本系统能够实现所需的功能,并且运行状况良好。

    3. 本文分为六个部分。在绪论里首先分析了课题的研究背景与研究现状;第二章介绍了本系统开发采用的技术;第三章根据软件开发流程,对系统进行可行性分析和需求分析;第四章为系统概要设计,本章提出系统总体功能模块的设计,并对数据库的结构进行设计;第五章着重介绍各个功能模块的实现方案;最后,第六章介绍系统单元测试和性能测试的设计,以及对测试结果的分析。


    2、资源详情

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


    3、关键词:

    宠物商店网站系统;JSP;Mysql数据库;Spring和Struts2框架

    4、毕设简介

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

    绪论
    1.1研究的背景和意义
    省略

    1.2国内外研究现状
    省略

    1.3研究内容和步骤
    本文主要分为六个章节,第一部分为前言,主要介绍了课题背景、研究意义、国内外研究现状、课题的研究方法、技术路线以及本文研究的主要内容等。

    第二部分为相关技术简介,主要介绍了JSP技术、MyEclipse、Tomcat、以及Oracle数据库等。

    第三部分为系统分析,主要介绍了可行性分析、包括技术可行性、经济可行性、操作可行性等。

    第四部分为需求分析,主要进行了系统的功能需求分析和非功能需求分析等。

    第五部分为系统概要设计,主要介绍了系统设计过程。

    第六部分为系统详细设计,对系统详细设计实现进行了介绍。

    第七部分为测试,主要对系统功能进行了测试。

    2基本技术方案
    2.1系统采用的技术
    2.1.1JSP技术
    Jsp技术sun倡导并联合其它公司创建的动态生成HTML,xml或其他文档的技术规范,JSP是一门技术规范,也是一门脚本语言,在Jsp中我们可以使用特定语言即Java语言编写html,xml,以及其他文档的编写规范。

    在这里插入图片描述

    图2.1.1 项目中Jsp部分的代码

    (1)Jsp拥有java语言的所有特性,列入面向对象,健壮,安全,可移植,高性能,多线程等。

    (2)Jsp运行与jsp的容器之中,比较典型的有tomcat。

    (3)在开发项目过程中,jsp文件会转换成servlet文件,servlet会在转换成相应的class文件。

    (4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下

    (5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。

    内部对象说明:request 客户端请求,此请求会包含来自GET/POST请求的参数; response 网页传回客户端的响应;pageContext 网页的属性是在这里管理; session 与请求有关的会话; application servlet正在执行的内容;out 用来传送响应的输出流; config 代码片段配置对象;page JSP网页本身; exception 针对错误网页,未捕捉的例外。

    2.1.2 JavaScript技术
    JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。在HTML基础上,使用Javascript可以开发交互式Web网页。JavaScript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。在本系统中很多地方使用了JavaScript技术,比如说,检验用户输入数据的有效性,是否重复,是否为空等等。

    2.1.3Servlet技术
    Servlet是servlet加applet的缩写,applet是运行Java客户端中的小程序,java诞生的时候也就是因为applet而闻名于世,不过现在applet现在很少有人使用了,而servlet在不断的发展和更新之中,现在已经成为很多技术的基础比如spring和strutes2等等。Servlet本质上也就是JAVA类,所以在编写时要尊崇java规则,不过servlet与普通的java类也有所不同,比如说,它没有main方法,他是靠服务器所运行的,它的创建和销毁都是由它自己的容器说产生的。这里说的容器我们这的是类似于tormat服务器。有自己的servlet规则,因此他有一些普通java类所不具有的特性。Servlet与http是紧密联系的,所以使用servlet可以处理所有与HTTP相关的类容,这也是servlet广泛应用的原因之一。
    在这里插入图片描述

    图2—1 项目中servlet 的代码

    我的项目中几乎每一个JAVA文件都要用到servlet,其中我们使用到的最主要的方法为service(httpServlet Request,httpServletResponse)方法。
    在这里插入图片描述

    图2—2 项目中service 的代码

    通过request与response的来实现前台与后台之间的数据传输。我们可以在xml文件中配置servlet属性,其中servlet用来注册个servlet,而它有两个主要元素一个是servalet—name和servlet-class,前者用来定义servlet的名称,后者用来确定servlet的完全限定名,还有映射servlet-mapping标签。下面是servlet的主要流程图
    在这里插入图片描述

    图2 servlet的主要流程图

    Servlet的生命周期主要有service,init,destroy等。
    使用Servlet的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。Servlet是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2002年3月成为ASF的顶级项目。它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller〔MVC〕设计模式的应用框架〔Web Framework〕,是MVC经典设计模式中的一个经典产品。它的优点在于:
    (1),Servlet基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌控开发的过程;
    (2),使用OGNL进行参数传递;
    (3),强大的拦截器;
    (4),易于测试;
    (5),易于扩展的插件机制;
    全局结果与声明式异常。

    2.2基于B/S的WEB应用体系结构
    Web,全称为World Wide Web,缩写为WWW。Web有许多译名,诸如环球网、万维网、全球信息网等。简单地说,Web是一种体系结构,通过它可以访问分布于Internet主机上的超文本页面。这一说法包含以下两层含义:第一, Web是Internet提供的一种服务。 第二,Web是存储在全世界Internet计算机中、数量巨大的文档的集合,或者可以说,Web是世界上最大的电子信息仓库[7] [8]。

    Web上的海量信息是由彼此关联的文档组成的,这些文档称为主页或页面,它是一种超文本信息,使其联接在一起的是超链接。

    Web的内容保存在Web站点中,用户可以通过浏览器访问Web站点。因此,Web是一种典型的基于B/S的体系结构。
    工作过程:如下图2-1所示描述了Web的工作原理。

    在这里插入图片描述

    图2-1 Web的工作原理

    客户端浏览器的主要作用是向Web服务器发出请求,当接到Web服务器传送回来的数据以后,对这些数据进行解释和显示[14]。浏览器以URL为统一的定位格式,使用超文本传输协议HTTP接收采用HTML语言编写的页面,其基本结构如下图2-2所示:
    在这里插入图片描述

    图2-2 使用超文本传输协议HTTP接收采用HTML语言编写的过程

    省略

    2.3MyEclipse简介
    MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括完备的编码、调试、测试和发布功能,支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate[1]。
    在结构上,MyEclipse的特征可以被分为7类:

    1. J2EE模型
    2. WEB开发工具
    3. EJB开发工具
    4. 应用程序服务器的连接器
    5. J2EE项目部署服务
    6. 数据库服务
    7. MyEclipse整合帮助

    MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。

    省略

    2.4Tomcat简介
    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

    诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为8.0.0-RC1 (alpha) Released。

    Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

    2.5Struts 2框架
    Struts 2是由出色稳定的struts1和webwork框架整合而来,吸取了两大框架的优点,提高了开发效率和规范性,减少了非常多的冗余代码,更好的实现了mvc架构,层与层之间的关系更加明确直接,解除了与servlet的强耦合性,无需启动服务器便可以进行单元测试,功能测试,极大的节约了我们的时间。是在 struts 1和WebWork的技术基础上进行了合并的全新的Sruts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

    Struts2的意义
    1.自动封装表单提交数据:属性驱动,模型驱动。提高了开发效率和简洁性。
    2.便捷的实现上传文件:fileUpload.
    3.使网站通用于国内化:国际化
    4.通过配置完成表单验证:校验器
    5.强大的标签库:struts2标签库,OGNl标签库

    省略
    在这里插入图片描述

    图2-3 servlet的主要流程图

    图2-4 在这里插入图片描述
    struts2的主要流程图
    可以看出在struts2中用filter代替了servlet的作用,这是struts2的核心思想

    本项目中到struts2的核心程序段为:
    在web.xml中配置filter

    <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    
    <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    Struts.xml的代码

    !--该标签用于Struts默认行为标签 -->
    <!-- 开发模式下使用,这样可以打印出更加详细的错误信息 -->
    <constant name="struts.devMode" value="true" />
    <!-- 默认我们struts2的请求后缀是action,如果我们不配置该元素,我们至拦截action文件,如果我们配置了,可以拦截action/do的wenjian -->
    <constant name="struts.action.extension" value="do, action"/>
    <constant name="struts.multipart.saveDir" value="d:/test"></constant>
    <constant name="struts.configuration.xml.reload" value="true"/>
    <!-- 该标签为包标签,用于区分不同的请求文件标签 -->
    
    <package name="admin" extends="struts-default" namespace="/admin">
    
    <action name="usersmanager"  class="com.daowen.action.UsersAction">
    </action>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    图2-4-1 struts2的核心程序段

    对于Struts1框架而言,由于与JSP/Servlet耦合非常紧密,因而导致了一些严重的问题。首先,Struts1支持的表现层技术单一。由于Struts1出现的年代比较早,那个时候没有FreeMarker、Velocity等技术,因此它不可能与这些视图层的模版技术进行整合。其次,Struts1与Servlet API的严重耦合,使应用难于测试。最后,Struts1代码严重依赖于Struts1 API,属于侵入性框架。

    在这里插入图片描述

    图2-5 Http请求流转流程图

    省略

    2.6 Spring框架
    Spring就是为了解决企业的复杂性而创建的,它的特性之一就是基于分层架构,分成架构可以让我们决定使用哪个组件而开发的,同时也为我们J2EE的开发创建了条件。Spring是一个轻量级级控制反转(ioc)和面向切面(aop)的容器框架,他主要是为了解决企业应用开发的复杂性而诞生的:它的目的就是为了解决企业开发的复杂性,它的主要功能为使用基本的JAVABEAN来代替EJB,并且他提供了更多的企业级应用功能,它的适用范围是JAVA的任何应用,spring不简单单的是服务器端的开发,从简单性,可测试性,低耦合性的角度而言,任何的java应用都可以从spring中受益,sping的核心是面向切面和控制反转,spring存在有它得天都后的优势:

    1:它定位的领域是许多framework而没有的,spring致力于一个统一的方法来管理你的业务对象
    2:spring是全面的和模块化的,sping是分层结构的,这意味着你可以使用孤立与它的任何一个成分,它的框架依然是内在的和稳定的。
    3:它的设计是从底部帮助你易于测试的代码。Spring是测试驱动的理想的framework。
    3.spring是潜在的一站式解决服务,定位与典型应用的大部分基础结构,当然它也设计到了其他framework所考虑到的内容。

    Spring有以下优点:
    1:低侵入式设计,代码污染率极低
    2:write once,Run anywhere
    3:DI有效的降低了耦合度
    4:aop提供了通用任务的管理
    5:ORM和DAO简化了数据库的访问
    6:高度的开放性,并不强制,它的这种优点贯穿与表现层,业务层,逻辑层,在实际的开发过程中,并不强制依赖spring。作为开发者你可选择使用spring一部分框架或者全部框架来进行你的全部开发。

    Spring的核心模块:
    1.核心容器(spring core)
    2.应用上下文(spring context)
    3.Aop模块(spring aop)
    4.Jdbc和DAO模块(spring DAo)
    5.对象实体映射(spring orm)
    6.Web模块(spring web)
    7.Mvc模块(spring web mvc)
    在这里插入图片描述

    图2-6 Mvc模块核心图

    1.软件应用分层架构
    标准三层架构:
    1:数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.
    2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。具体的讲主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。
    3:表示层:主要表示WEB方式,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。
    4.IOC(inversion of control) 是spring的核心,贯始至终。所谓IOC,对于spring框架来说,就是由spring来负责生命周期和对象间的关系。

    省略
    在这里插入图片描述

    图2-7 普通处理方法

    在这里插入图片描述

    图2-8 spring处理方法

    2 Spring相关概念
    省略

    3.系统需求分析
    3.1功能需求分析
    当我们对已有系统进行分析时,通过分析系统的功能和实现去确定系统的即将要达成的目的。因此,我们要收集足够的信息去验证我们的分析结果,在该次毕设中,我们获取的信息大多都是从网上,书库中了解到的。在任何的实践中获取的信息其实才是最可靠,最具有说服力的信息,所以,我们找到其他的宠物用品店,然后注册成为会员来获得有用信息。

    1. 从用户角度来看:
    用户同时使用网站的注册登录功能,进入系统后可以获得一部分功能。在处理消息时,可以进行对宠物资料的浏览,进行购买宠物用品然后对订单进行单个购买或者取消,同时也可以清空购物车中的所有订单,或者全部进行结账等功能。
    2.从网站的角度看:
    (1)网站应该包含宠物搜索功能。
    (2)订单处理功能,确认订单方式:
    a). 电话通知方式
    b). E-mail方式
    (3)管理员管理:
    其任务是查看用户订单,查看用户信息,并在根据查看了用户的信息和用户订单之后,将商品的发送到购买者的身边。
    (4)宠物浏览
    a). 宠物名 b).宠物类型
    c). 价格 d). 订购号

    通过分析,系统主要分为前台和后台两大模块,前台主要由用户体验使用,实现了用户登录、注册、查找商品、商品类别等功能导航;后台主要由系统管理员操作使用,用来维护系统,管理员主要实现了订单管理、商品管理、公告管理、会员管理、用户管理、个人信息维护等主要功能。
    在这里插入图片描述

    图4-1 功能需求分析图

    3.2系统设计规则
    无论哪个网站都要有它自己的设计规则。该系统也一样,它的主要设计规则有:
    简单性:在实现系统的功能的同时,尽量让系统操作简单易懂,这对于一个系统来说是非常重要的。

    针对性:该系统设计是宠物商店网站系统及后台管理的定向开发设计,所以具有专业突出和很强的针对性。

    实用性:系统接受来自系统管理员的请求,管理员可以对商品信息以及用户信息进行增、删、改、查等操作,具有良好的实用性。

    3.3系统的可行性分析
    3.3.1技术可行性
    (1)硬件可行性分析
    省略

    (2)软件可行性分析
    省略

    3.3.2经济可行性
    省略

    3.3.3操作可行性
    省略

    3.3.4 技术可行性分析
    本次宠物用品店系统的开发采用了java,jsp作为语言,采用了servlet,javaBeans技术,sqlserver2008作为数据库,Web服务器的选择是tomcat7.0。这次的开发对于一个即将毕业的我来说是一项复杂的系统工程。但是上述所用到的语言,我们在大学期间都有所接触过,在杰普基地实习的时候也都有所接触,所以很容易着手进行开发,但是为了保证系统开发的成功,我们只能采用工程化的系统开发方法,并且可以适当的研究有些符合标准的开发方法,并研究出一些符合工程化标准的开发方法。新研究出来的开发方法是为了加快系统开发的速度,在保证质量的同时尽可能的去降低开发的成本。对于任何一个物件来说,在质量有所保证的情况下,所消耗的资源越少越好。

    3.3.5 运行可行性分析
    省略

    3.3.6 经济可行性分析
    省略

    3.4运行环境
    本系统是一个web版的应用程序,需要在服务器上部署中间件Tomcat、Oracle数据库,其他的客户端通过网络进行访问该服务器即可。
    (1)开发硬件平台:
    CPU:酷睿双核 3.2GHZ
    内存:4G以上
    硬盘:320GB

    (2)服务器端硬件平台:
    Web服务器参考配置:Intel Xeon Quad Core E5530 80W 2.40GHz/5.8GT/8MB Cache, 2x2GB DDR3-1066MHz, 2.5in HS 146GB SAS,HS 675W PSU, ServeRAID MR10i(RAID 5), 2*Giga Ethernet,Light Path, CD-RW/DVD Combo, 1U,3 Years Onsite Next Business Day. 146GB 10K 6Gbps SAS 2.5" SFF Slim-HS HDD x3550M2/x3650M2/HS22

    数据库服务器参考配置:Intel Xeon Quad Core E5504 80W 2.00GHz/4.8GT/4MB Cache, 2x2GB DDR3-800MHz, 2.5in HS 146GB SAS, 670W PSU, ServeRAID BR10i(RAID 0,1), 2*Giga Ethernet, DVD ROM,5U,3 Years Onsite Next Business Day. 146GB 10K 6Gbps SAS 2.5" SFF Slim-HS HDD x3550M2/x3650M2/HS22

    (3) 开发软件平台:
    操作系统:Windows7以上均可
    数据库:mysql

    4.宠物网站系统概要设计
    4.1系统功能结构图
    系统主要分为前台和后台两大模块,前台主要由用户体验使用,实现了用户登录、注册、查找商品、商品类别等功能导航;后台主要由系统管理员操作使用,用来维护系统,管理员主要实现了订单管理、商品管理、公告管理、会员管理、用户管理、个人信息维护等主要功能。系统功能图如下图5-1所示。
    在这里插入图片描述

    图4-1系统功能结构图
    4.2系统交互图
    系统架构类的工作流程:
    1、当用户在jsp页面输入了相应的信息后,对象会根据用户的请求向请求业务处理类处理数据。
    2、当业务处理类收到相应的请求后,会向相应的权限管理类对象发送验证请求。
    3、通过权限管理类验证过后会把相应的验证权限结果返回给相应的业务代理类。
    4、业务对象会根据接受到不同的验证权限结果进行两部不同的处理操作:若权限不符,这返回到相应的JSP用户界面,若权限相符,则进行到相应的业务逻辑类。
    5、业务逻辑类的业务对象进行相应的业务处理。在业务处理中的数据持久化操作,靠访问数据库访问类进行操作,可以进行读取,写入等操作,期间若发生任何的异常,交给异常处理类来完成。
    6、业务代理对象类最后将最终结果返回给jsp用户界面。
    系统交互图如下图5-2所示:
    在这里插入图片描述

    图4-2 系统交互图

    4.3数据库设计
    在概念设计中,通常用下面的四种方法:
    自顶向下:第一,把全局概念结构的框架定义好,之后再慢慢细化;自底向上:第一,把各局部应用的概念结构定义好,之后把他们再集合起来,最后得到全局的概念结构;逐步扩张: 首先把概念结构里最核心的地方定义好,之后再向外面扩充,最后直到总体概念结构;混合策略: 把自顶向下和自底向上两种相结合,设计一个全局概念,使用自顶向下的策略。结构的框架, 设计的各局部概念结构,以它为骨架集成,使用自底向上的策略。

    在物理结构设计阶段,首先应该分两步走:
    一是,在关系数据库中,确定数据库的物理结构,主要是指存取方法和存储结构。时间和空间效率是对物理结构的评价。.

    二是要选取存取方法,并且是正确的关系模式,存取索引方法、聚簇存取、HASH存取方法等都是常用的方法。数据库的概念设计整体属性E-R图如下图5-3所示:

    在这里插入图片描述

    图4-3宠物商品网站系统E-R模型图

    3、数据库设计
    宠物商店网站系统ER模型中的实体转换为物理表,得到物理表结构部分如下:

    1、宠物信息表book:表中显示了关于宠物的所有详细信息,对于字段的属性也有详细的描述。可以很明显的看出表中的内容显示的是哪方面的信息。
    在这里插入图片描述

    图4-1 宠物信息表booK

    2、管理员表admin:表中显示了管理员的属性信息。表中的字段就是管理员所拥有的详细信息。
    在这里插入图片描述

    图4-2 管理员表admin
    3、宠物类型表booktypes:
    在这里插入图片描述

    图4-4 宠物类型表types

    4、用户注册表users
    在这里插入图片描述

    图4-5 用户注册表users

    5、定单详细信息表orderbook
    在这里插入图片描述

    图4-6 订单详情信息表
    6、定单表num
    在这里插入图片描述

    图4-7 订单表

    4.4系统概要设计
    4.4.1系统的前台
    系统的界面按照常规的WEB界面进行设计,设计的原则是界面友好,易于操作,容易上手,尽可能的贴切用户实际。系统主页界面如下图5-4所示。
    在这里插入图片描述

    图a 狗狗商城

    在这里插入图片描述

    图b 热卖商品推荐
    在这里插入图片描述

    图c 精品推荐
    图4-4 系统主界面图

    所有的用户都可以进入该首页,想要使用购买商品等功能,需要进行登录操作,登录时需要输入用户名、密码进行验证,通过之后才能使用这些功能。系统登录功能界面如图4-5所示:
    在这里插入图片描述

    图4-5 系统登录界面图
    在这里插入图片描述

    图4-6 系统注册界面图
    在这里插入图片描述

    图4-7 购买界面图

    在这里插入图片描述

    图4-8 订单信息图

    4.4.2系统的后台

    图4-9 在这里插入图片描述
    系统后台登录界面图
    在这里插入图片描述

    图4-10 会员管理界面图
    在这里插入图片描述

    图4-11 网站后台管理菜单
    在这里插入图片描述

    图4-12 商品管理界面图

    5.系统的详细设计与功能实现
    5.1应用层配置
    系统采用目前流行的Struts2框架进行开发。先来看看Struts2框架是如何配置到应用程序中的。
    在WEB-INF/web.xml文件的配置代码如下:

    < <bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest"
         name="myRequestParser" class="com.daowen.util.RequestParseWrapper"
         scope="default" optional="true" />
        
        <package name="admin" extends="struts-default" namespace="/admin">
           
        <action name="usersmanager"  class="com.daowen.action.UsersAction">
        </action>
       
          <action name="friendlinkmanager" class="com.daowen.action.FriendlinkAction">
         </action>
         
          <action name="jiaodiantumanager" class="com.daowen.action.JiaodiantuAction">
          </action>
        
         
            </action>
             <action name="sysconfigmanager" class="com.daowen.action.SysconfigAction">
         
            </action>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    5.2登录功能的实现
    在这里插入图片描述

    图5-1 登录信息

    public class LoginAction extends Action {
    	
    	public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) {
    		    try {
    		    	response.setContentType("application/x-www-form-urlencoded; charset=UTF-8");
    		    	List userlist=null;
    		    	Session  s=HibernateSessionFactory.getSession();
    		    	Transaction t=s.beginTransaction();
    		    	String username=request.getParameter("username");
    		    	String password=request.getParameter("password");
    		    	String action=request.getParameter("action");
    		    	System.out.println("action="+action+"username="+username+"password="+password);
    		    	SQLQuery query=s.createSQLQuery("select * from [users] where username='"+username+"'");
    			    userlist=query.list();
    			    String s1="";
    			    if(!userlist.isEmpty())
    			    	s1="res=true";
    		    	 
    			    else
    			    	s1="res=false";
    			      System.out.println("json="+s1);
    			      response.getWriter().write(s1);
    								
    			}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    5.3注册功能的实现
    在这里插入图片描述

    图5-3 注册功能

    <script  src="<%=SystemParam.getSiteRoot()%>/webui/jquery/jquery-1.5.2.min.js"
    	type="text/javascript"></script>
      <script  type="text/javascript" src="<%=SystemParam.getSiteRoot() %>/webui/jquery/jquery.validate.min.js"></script>
        <script type="text/javascript"  src="<%=SystemParam.getSiteRoot() %>/webui/jquery/jquery.metadata.js" ></script>
        <script type="text/javascript"  src="<%=SystemParam.getSiteRoot() %>/webui/jquery/messages_cn.js" ></script>	
       <script type="text/javascript">
        
           $(function(){
        	   
        	   $.metadata.setType("attr","validate");
        	   $("#form1").validate();
           })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    5.4商品管理功能的实现
    在这里插入图片描述

    图5-4 商品管理模块

    <tr>
    			<td align="right">商品编号:</td>
    			<td><input name="spno"
    				validate="{required:true,messages:{required:'请输入商品编号'}}"
    				value="${requestScope.shangpin.spno}" class="input-txt" type="text"
    				id="spno" />
    			</td>
    		</tr>
    		<tr>
    			<td align="right">商品类别:</td>
    			<td><input type="hidden" name="sptype" /> <input type="hidden"
    				name="sptypeid" /> <web:dropdownlist id="sptype"  cssclass="dropdown" 
    					value="${requestScope.shangpin.sptypeid}"
    					datasource="${sptype_datasource}" textfieldname="mingcheng"
    					valuefieldname="id">
    				</web:dropdownlist></td>
    		</tr>
    
    	
    	</div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    5.5订单管理模块的实现
    订单管理模块主要实现管理员对进行中的订单、历史订单信息的查询,进行退款、拒绝、介绍并发货等操作。订单管理模块如图6-2所示。
    在这里插入图片描述

    图5-5 订单管理模块

    <link href="<%=SystemParam.getSiteRoot() %>/webui/treetable/skin/jquery.treetable.theme.default.css" rel="stylesheet"
            type="text/css" />
           <script src="<%=SystemParam.getSiteRoot() %>/webui/treetable/js/jquery.treetable.js" type="text/javascript"></script>
    
            <script src="<%=SystemParam.getSiteRoot() %>/webui/combo/combo.js" type="text/javascript"></script> 
    		<script type="text/javascript">
    			$(function() {
    			    
    				$(".ui-record-table").recordTable();
    				$("#btnDelete").click(function(){
    			        if($(".check:checked").length<1)
    			        {
    			           $.dialog.alert("请选择需要删除的记录");
    			           return;
    			        } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    5.6会员管理模块的实现
    在这里插入图片描述

    图5-6 会员管理模块

    <head>
    <title>会员信息</title>
    <link href="<%=SystemParam.getSiteRoot()%>/admin/css/common.css"
    	rel="stylesheet" type="text/css" />
    <link href="<%=SystemParam.getSiteRoot()%>/admin/css/web2table.css"
    	rel="stylesheet" type="text/css" />
    <script type="text/javascript"
    	src="<%=SystemParam.getSiteRoot()%>/webui/jquery/jquery-1.9.0.js"></script>
    <link
    	href="<%=SystemParam.getSiteRoot()%>/webui/artDialog/skins/default.css"
    	rel="stylesheet" type="text/css" />
    <script
    	src="<%=SystemParam.getSiteRoot()%>/webui/artDialog/jquery.artDialog.source.js"
    	type="text/javascript"></script>
    <script
    	src="<%=SystemParam.getSiteRoot()%>/webui/artDialog/iframeTools.source.js"
    	type="text/javascript"></script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    6.测试与性能分析
    6.1系统测试目的与意义
    省略

    6.2测试环境
    WIN7 64位,FireFox,TOMCAT6,JDK1.6

    6.3测试过程
    在测试之初,由于将数据库中的数据是随便输入,没有实用性,为了使系统更加完善,在系统测试的过程中,本系统将一开始编程随便输入的数据全部清理后,输入了一些有效的测试数据,这样可以更真实的反映系统的功能实现情况。
    测试的每个步骤在逻辑上与前一个步骤都有关联。准确来说是上一个步骤的继续。每个模块写的是不同的功能,多个模块,就相对于多个功能组成了一个系统,而多个小的系统组成了一个大型的系统,所以,大型的软件系统的测试是分布进行的,就类似如下所述:
    (1)模块测试:该测试中发现的一般是编码和详细设计的错误。
    (2)系统测试:该测试中发现的一般是软件设计中的错误,也可能发现需求说明中的错误。
    (3)验收测试:该测试中发现的一般是系统需求说明书中的错误。

    这样不断发现问题,经过反复的测试、调试,把问题一个个的解决,最终系统可以正常运行。

    6.4测试的主要内容及结果
    (1)单元测试
    单元测试是检查每个软件中单位最小的,通过检测去发现原来定义该模块的功能说明和本身所需要实现的实际的功能是不符合要求的状况,或者检测出模块的错误。
    身份认证时候要保证在以下输入情况时候系统能够健康运行:
    ① 输入的用户ID:不存在
    ② 输入的用户ID:重复
    ③ 输入的用户ID:输入信息为空。
    ④ 输入的用户ID:与密码不相符合。
    ⑤ 输入的用户的信息 格式不正确
    (2)集成测试
    (3)确认测试
    (4)系统测试
    测试结果:注册测试:输入的错误信息符合要求如图
    在这里插入图片描述

    图7-1 注册失败情况

    在这里插入图片描述

    图7-2 注册成功情况
    在这里插入图片描述

    图7-2 登录失败情况
    在这里插入图片描述

    在这里插入图片描述

    总结与展望
    本文主要阐述了如何利用JSP技术的Struts2框架开发一个性能优化、可扩展性强和安全可靠的宠物商店管理系统。系统主要分为前台和后台两大模块,前台主要实现了用户登录、注册、查找商品、商品类别等功能导航;后台主要实现了订单管理、商品管理、公告管理、会员管理、用户管理、个人信息维护等主要功能。然后根据这些功能进行分析设计,对所有到的技术Struts2框架就行简要的介绍。接着进行需求分析的描述。接着是概要设计和详细设计。描述这个系统的部分功能的实现方案及过程。

    本设计所实现的是一个宠物商品系统,主要介绍了JSP,Struts2技术。系统按照总体设计、数据库设计、各个模块设计和代码分析,宠物商品系统的基本功能已得到实现。由于时间及本人所学有限,该系统还有许多地方需要改进,并且还有许多自己未起到的功能,本人会在以后的学习过程中进一步加强和完善。
    本系统具有以下优点:
    1、该系统可以运行在多个操作系统平台(Windows 7和Windows 8),数据库采用mysql,开发语言选择Java,可移植性好。
    2、系统的用户权限进行划分,分为会员用户和管理员,不同的用户具有不同的操作权限。这不仅方便了用户,也保证了系统的安全性。
    3、该系统界面简单,操作方便,容易使用。

    参考文献
    [1] 刘志诚.JSP程序设计实例教程.北京:人民邮电出版社,2009.5
    [2 ]孙卫琴.精通Struts:基于MVC的JavaWeb设计与开发.北京:电子工业出版社,2004.11
    [3] 李刚.整合Struts+hibernate+Spring应用开发详解.北京:清华大学出版.
    [4] 张桂元、贾燕枫.Struts开发入门与项目实践.北京:人民邮电出版社,2005.12
    [5]孙卫琴.Tomcat与Java Web开发技术详解.北京:电子工业出版社,2003.11
    [6] 吴其庆.Java模块设计实例经典.北京:冶金工业出版社2004.6
    [7] 刘斌.《精通Java Web整合开发》,电子工业出版社,2007.11
    [8] [美]Rogers Cadenhead. Java编程入门经典.梅兴文译.第4版.北京:人民邮电出版社,2007
    [9] 赵文靖.Java程序设计基础与上机指导.北京:清华大学出版社,2006
    [10] 赵毅.跨平台程序设计语言——Java.西安:西安电子科技大学出版社,2006
    [11] 王路群.Java高级程序设计.北京:中国水利水电出版社,2006
    [12]雍俊海.Java程序设计习题集.北京:清华大学出版社,2006
    [13] 朱福喜.Java语言习题与解析.北京:清华大学出版社,2006
    [14] 吴其庆.Java程序设计实例教程.北京:冶金工业出版社,2006

    致谢
    省略

    附录:英文翻译
    1.英文原文
    省略

    2.中文翻译
    省略


    5、资源下载

    本项目源码及完整论文如下,有需要的朋友可以点击进行下载

  • 相关阅读:
    2022 年 8 月 GameFi 报告
    数据结构 day4 链表
    matlab bin格式转txt输出
    STC15单片机-通过PWM调整灯亮度
    中文编程开发语言工具编程案例:计时计费管理系统软件连接灯控器编程案例
    Ant Design for Figma设计系统组件库 支持变量 非社区版
    被一位读者赶超,手摸手 Docker 部署 ELK Stack
    SpringBoot概述
    CNN实现与训练--------------以cifar10数据集为例进行演示(基于Tensorflow)
    Neo4j离线环境搭建与基于python中py2neo的简单操作
  • 原文地址:https://blog.csdn.net/m0_66238867/article/details/125554858