基于java的宠物管理系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
基于JAVA的宠物网站的设计与实现
本系统是采用Java技术来构建的一个基于Web技术的B/S结构的宠物网站,该网站建立在Spring和Struts2框架之上,前台使用JSP作为开发语言,后台使用MySQL数据库管理系统对数据进行管理,开发环境选用MyEclipse,应用服务器采用Tomcat。
宠物网站系统为广大用户实现便捷的购买宠物的功能,实现宠物商店的网络化管理。网站前台系统主要负责与用户打交道,实现用户的注册、登录、宠物预览、提交订单等功能。网站后台系统主要实现管理员登录、会员中心、新闻动态、完成订单、系统维护等功能。结果表明,本系统能够实现所需的功能,并且运行状况良好。
本文分为六个部分。在绪论里首先分析了课题的研究背景与研究现状;第二章介绍了本系统开发采用的技术;第三章根据软件开发流程,对系统进行可行性分析和需求分析;第四章为系统概要设计,本章提出系统总体功能模块的设计,并对数据库的结构进行设计;第五章着重介绍各个功能模块的实现方案;最后,第六章介绍系统单元测试和性能测试的设计,以及对测试结果的分析。
宠物商店网站系统;JSP;Mysql数据库;Spring和Struts2框架
目 录
摘 要..................................................................................................................... i
ABSTRACT........................................................................................................... ii
1绪论.................................................................................................................... 1
1.1研究的背景和意义..................................................................................... 1
1.2国内外研究现状......................................................................................... 2
1.3研究内容和步骤......................................................................................... 4
2基本技术方案...................................................................................................... 5
2.1系统采用的技术......................................................................................... 5
2.1.1JSP技术.......................................................................................... 5
2.1.2 JavaScript技术............................................................................ 5
2.1.3Servlet技术................................................................................... 6
2.2基于B/S的WEB应用体系结构................................................................. 7
2.3MyEclipse简介........................................................................................... 9
2.4Tomcat简介.............................................................................................. 11
2.5Struts 2框架.............................................................................................. 11
2.6 Spring框架.............................................................................................. 14
3.系统需求分析.................................................................................................... 21
3.1功能需求分析.......................................................................................... 21
3.2系统设计规则.......................................................................................... 22
3.3系统的可行性分析................................................................................... 22
3.3.1技术可行性.................................................................................... 22
3.3.2经济可行性.................................................................................... 22
3.3.3操作可行性.................................................................................... 22
3.3.4 技术可行性分析............................................................................ 23
3.3.5 运行可行性分析............................................................................ 23
3.3.6 经济可行性分析............................................................................ 23
3.4运行环境................................................................................................. 23
4.宠物网站系统概要设计...................................................................................... 24
4.1系统功能结构图....................................................................................... 24
4.2系统交互图.............................................................................................. 25
4.3数据库设计.............................................................................................. 26
4.4系统概要设计.......................................................................................... 29
4.4.1系统的前台.................................................................................... 29
4.4.2系统的后台.................................................................................... 33
5.系统的详细设计与功能实现............................................................................... 35
5.1应用层配置.............................................................................................. 35
5.2登录功能的实现....................................................................................... 36
5.3注册功能的实现....................................................................................... 37
5.4商品管理功能的实现................................................................................ 38
5.5订单管理模块的实现................................................................................ 40
5.6会员管理模块的实现................................................................................ 40
6.测试与性能分析................................................................................................ 41
6.1系统测试目的与意义................................................................................ 41
6.2测试环境................................................................................................. 42
6.3测试过程................................................................................................. 42
6.4测试的主要内容及结果............................................................................ 43
总结与展望.......................................................................................................... 45
参考文献.............................................................................................................. 46
致谢..................................................................................................................... 47
附录:英文翻译................................................................................................... 49
1.英文原文........................................................................................................... 49
2.中文翻译........................................................................................................... 54
1绪论
1.1研究的背景和意义
宠物作为我们人类的友好的朋友动物是我们人类获得快乐幸福与健康的一个重要来源,而且饲养宠物可以让人们的生活的更丰富多彩,更加幸福充实,同时陪着宠物运动对身体有很大好处能够有效的降低身体里血压和血脂,在当前越发竞争激烈的社会中可以提供良好的精神支持特别当我们遇到挫折时,我们可以通过与宠物的交流,调节我们的心情有助于我们的心理健康管理,缓解我们生活中遇到的各种压力从而提高工作上的效率。另一方面养可爱的宠物可以培养我们后代的责任心和爱心以及社会社交能力。当我们的孩子与狗狗愉快的玩耍时,狗狗可以传递许多正能量。而且最关键的是养宠物可以保护我们的家庭财产安全,可以起到家庭防止被盗窃保护作用使我们整个家庭有一种安全放心感。宠物也可以给我们以及后代带来无限的欢乐乐趣成为幸福和快乐的源泉,并能够帮助人们积极出去促进进行体育锻炼,给我们提供了许多人与他人相互沟通交流的机会。目前养宠物的人数增加的非常迅速,越来越多的宠物信息的网站应运而生。将传统宣传与日益成熟的网络宣传结合在一起,打造一个兼具传统和电子商务特色的宠物销售网站,极具意义。
随着电子商务的发展趋势日趋成熟伴随着社会发展的必然如何面对电子商务方式、以及如何适应数字化生存并积极参与电子商务时代的国际竞争中取得良好的机会。这是关系到每一个公民、每个公司企业和部门及国家发展与生存的重要的战略问题,而且也是我们国家管理部门现在应该规划、并鼓励其大力发展的关键问题。
目前随着我们的科学技术的不断的发展提高,我们的计算机科学水平日益发展成熟,它给我们带来的好处已被我们深刻了解,而且它已经在我们人类生活社会的各个领域范围内发挥着越来越关键的作用。这主要归功与因为计算机商品信息具有着多人工管理所不具备的优势,比如:检索迅速、查找方便、可靠性高、存储量大、保密性良好等。这些优势极大的提高了信息管理的速度,这也正是将来公司企业的科学化、正规化管理,和世界接轨的至关重要的条件。所以,我们急需研制出开发一套宠物商品网站系统对有效管理相关信息是非常必要的。
1.2国内外研究现状
最近这些年计算机和互联网建设获得了高速的发展。在中国,互联网已经是广大人民生活的一部分。现在中国社会提倡互联网加,互联网与传统行业结合,以提供效益和竞争力。使用计算机和互联网对线上销售平台进行管理,它有着很大的价值。同时有着特有的功能比如:检索快速、查看方便快捷、效率高、成本低、存储数据量大、使用寿命长、并且沟通成本低等,这些优点能为商品销售提供极大的便利。而且只要销售网站设计合理,就可以为手机厂商添加新的销售渠道,减少手机产品的库存,利用网络的共享、互动的优点,结合实体销售的优点,借助数据库管理技术实现手机产品网上销售规范化、个性化、人性化。宠物主要是以狗、猫为主。我们以狗为例,现在为什么社会越来越多的人喜欢它而且愿意养它呢?狗起源于狼,目前已经得到了共识,但围绕着具体的发源地和时间则是众说纷纭。到目前为止,最早的狗化石证据是来自于德国14000年前的一个下颌骨化石,另外一个是来源于中东大约12000年前的一个小型犬科动物骨架化石。这不过养宠物对我们人类来说有诸多的好处,比如说以下几个方面
1日常生活中我们可以和狗狗玩耍,增加许多生活中的乐趣
当我们工作或学习一天后,带着浑身疲惫的回到家中,看见绕膝承欢的小狗后,一切烦恼忧愁不愉快都抛到到脑后。目前有很多老人,很多家里只有一个儿女,而且儿女长期在外地工作不在身边,养一个狗或猫,能够给老年人带来很大的精神寄托,减少他们孤独的感觉,重新帮助他们对生活的信心。
宠物也可以帮助小的孩子一颗积极纯洁向上的心,而且根据有关资料显示,狗狗也对治疗儿童痴呆症和自闭症等疾病都有莫大的帮助,每年都有很多的志愿者,带着他们的自己的狗狗到孤儿院或儿童心理疾病治疗中心去帮助那里的孩子,给哪里的孩子带来了许多快乐。甚至连一些患有高血压或者心脏病的病人靠和狗狗和猫咪的交流玩耍可以降低血压和减少心脏病的复发。
2:宠物在救援社会活动中也扮演着至关重要的角色
狗狗在我们社会中扮演者原来越重要的角色,狗因为天生具有良好的嗅觉,它的嗅觉极其发达和灵敏,利用此特性可以发掘猎物,枪支,弹药等。有专门的警犬用于帮助警察破案,而且发挥着至关重要的作用。
这些年来,由于数据仓库技术,网络信息技术,电子商务信息技术的飞速发展,可视化技术已经涉及到人们生活的各个部分,人们提出进一步定义数据可视化概念,特别注重在可视化大型数据库或数据仓库中的可视化。这是在非空间数据领域中应用可视化技术,使人们不需要束缚于通过关系数据表来研究和理解数据,而且在一个比较直观的方式下查询数据和相关结构之间的关系。在当今社会随着互联网的高速普及,电子商务成为热点,由于淘宝和京东的存在,商家传统的销售渠道受到了极大的挑战,利润降低并且销量下降,传统的模式的商家情况不容乐观。而在线网络销售网站比实体店铺具有更高的优势,只需要很少的人工和互联网环境就可以实现在线购物,用户可以直接从网上查看购买所需要的网络产品,同时网络销售网站提供了广泛和快捷的搜索途径,方便用户查找,分类精确,购物良好、风险小,完善了消费体验。所以手机销售网站受到传统模式企业的关注,并且纷纷开通在线手机销售网站。消费者在网站注册后可以浏览网站信息、按需要搜索网络产品、找到想购买的产拼后通过下定单实现用户的在线购买,使交易更加迅速、准确;管理员登录后可以管理用户、信息和定单等实现系统的更新维护。
图1-1 到2015年为止中国市场宠物产业规模现状
1.3研究内容和步骤
本文主要分为六个章节,第一部分为前言,主要介绍了课题背景、研究意义、国内外研究现状、课题的研究方法、技术路线以及本文研究的主要内容等。
第二部分为相关技术简介,主要介绍了JSP技术、MyEclipse、Tomcat、以及Oracle数据库等。
第三部分为系统分析,主要介绍了可行性分析、包括技术可行性、经济可行性、操作可行性等。
2基本技术方案
2.1系统采用的技术
2.1.1JSP技术
(1)Jsp拥有java语言的所有特性,列入面向对象,健壮,安全,可移植,高性能,多线程等。
(2)Jsp运行与jsp的容器之中,比较典型的有tomcat。
(3)在开发项目过程中,jsp文件会转换成servlet文件,servlet会在转换成相应的class文件。
(4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下
2.1.2 JavaScript技术
2.1.3Servlet技术
我的项目中几乎每一个JAVA文件都要用到servlet,其中我们使用到的最主要的方法为service(httpServlet Request,httpServletResponse)方法。
Servlet的生命周期主要有service,init,destroy等。
(1),Servlet基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌控开发的过程;
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语言编写的过程
用户通过键盘或鼠标发出请求,该请求由浏览器中的控制器接收、检查并分析用户输入,根据用户请求执行相应动作。如果用户请求可以在本机解决,例如浏览已存在本机的页面,则输出到HTTP解释器或其他解释器,解释后通过驱动程序送入显示器显示。如果用户请求不能在本机解决,则通过HTTP客户机或其他客户机及网络界面与远程服务器通信,由远程服务器解决用户请求,将用户需要的HTML文档送回,然后通过HTTP解释器或其他解释器,解释后通过驱动程序送入显示器显示。
目前两大主流浏览器是Netscape公司的Netscape Communication(简称NC)和Microsoft公司的Microsoft Internet Explorer(简称IE)。在使用这两种浏览器运行HTML文档时,只需在地址栏中输人文件的URL即可。NC和IE这两大浏览器可执行的程序并不完全相同
2.3MyEclipse简介
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开发工具。根据官方最新消息,MyEclipse 2013已经正式发布!MyEclipse 2013支持HTML5、JQuery和主流的Javascript 库。随着MyEclipse 2013支持Html5,你可以添加音频、视频和API元素到你的项目,从而为移动设备创建复杂的Web应用程序。你甚至还可以通过HTML5 可视化设计器设计令人难以置信的用户界面。同时,随着MyEclipse 2013支持JQuery,你可以通过插件提升性能,并添加动画效果到设计中。myeclipse 10.0系列 主要 有以下 改进:首先 在eclipse 3.7.2(Indigo)基础上构建最大的特色是 : 完全支持 Java EE 6With MyEclipse 10, you can now take advantage of Java EE 6features, such as:· Servlet 3.0·JSF2.0·JPA2.0·EJB3.1· JAX-RS 1.1其他的改进:1. 支持maven3.02. 支持 64-bit Windows support3. WebSphere Portal Server 7 and WebSphere 84. JRebel for MyEclipse5.EJBDeployment Descriptor Editor6. Extended DB2 Support7. Extended ApplicationClientProject Support8. Instant Deployment (Experimental)9.EJBDeploy10.J2EE Connector Architecture (JCA)
2.4Tomcat简介
2.5Struts 2框架
- 自动封装表单提交数据:属性驱动,模型驱动。提高了开发效率和简洁性。
- 便捷的实现上传文件:fileUpload.
- 使网站通用于国内化:国际化
- 通过配置完成表单验证:校验器
- 强大的标签库:struts2标签库,OGNl标签库
使用xml文件管理程序文件对应的关系,使我们的维护更加的简洁更加的安全和更加的迅速。
面向切面编程:拦截器(相当于过滤器的一种,不编写重复的代码,减少代码的冗余
可以看出在struts2中用filter代替了servlet的作用,这是struts2的核心思想
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<filter-name>struts2</filter-name>
<!-- 开发模式下使用,这样可以打印出更加详细的错误信息 -->
<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">
2.6 Spring框架
1:它定位的领域是许多framework而没有的,spring致力于一个统一的方法来管理你的业务对象
2:spring是全面的和模块化的,sping是分层结构的,这意味着你可以使用孤立与它的任何一个成分,它的框架依然是内在的和稳定的。
3:它的设计是从底部帮助你易于测试的代码。Spring是测试驱动的理想的framework。
6:高度的开放性,并不强制,它的这种优点贯穿与表现层,业务层,逻辑层,在实际的开发过程中,并不强制依赖spring。作为开发者你可选择使用spring一部分框架或者全部框架来进行你的全部开发。
- 方便解耦,简化开发。
- Aop编程的支持,通过aop的支持。我们很容易使用面向切面的过程。
- 声明式事务支持,通过spring框架中我们可以从单调烦闷的事务中解救出来,痛过生命是方式灵活的进行事务管理,从而提高开发效率和开发的质量。
- 方便程序测试,可以进行非依赖容器的方法进行所有的测试工作,再spring框架中车上不再时昂贵的操作,而是一个随手可作的事情。
- 方便集成各种优秀的框架,在spring中不排除各种框架的使用,而是降低各种框架的使用难度。
- 核心容器(spring core)
- 应用上下文(spring context)
- Aop模块(spring aop)
- Jdbc和DAO模块(spring DAo)
- 对象实体映射(spring orm)
- Web模块(spring web)
- Mvc模块(spring web mvc)
1:数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.
3:表示层:主要表示WEB方式,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。
,对于spring框架来说,就是由spring来负责生命周期和对象间的关系。
Ioc在对象过程中不会对业务对象构成很强的侵入性,使用ioc之后,对象之间具有更好的可实现性,可重用性和可扩展性:
Spring core(包含spring基本工具类,其它组件都会使用到这个包里的类,是其它组件的核心)
Java bean(是所有都需要用到的,它包含了访问配置文件,创建和管理bean,以及控制反转和依赖注入操作)
Spring context(为spring的核心提供了大量的扩展,能够找到使用application context的全部类)。
1:降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2:有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
spring容器帮我们管理业务逻辑层,里边有很多业务逻辑对象,有对象就有对象的生命周期的管理(创建,销毁).
轻量级:容器给予的业务逻辑对象多少种服务?spring给用户提供的服务完全由用户自己决定,spring想用什么服务自己开启使用。但是重量级的都是只要你用就把所有的服务都给你,不能自己定制。
spring容器从来不能独立运行,一定借助于其他容器启动,或者借助web容器启动,或者ejb容器启动。
特点:
应用模块之间耦合度小,组件都是可重用的,都是各自打包的
2:why spring?
1)动态解藕,方便开发,面向接口设计
通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用
2)方便程序的测试TDD(Test-Driven Development)
可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。
3)降低Java EE API的使用难度
Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个简单的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。
4)方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。
- AOP编程的支持
Aop(aspect-oriented programming )面向方面的程序设计,是一种比较新颖的编程思想,aop将程序分为两个部分,核心业务逻辑以及横向的业务逻辑。在spring中提供了丰富的业务支持,允许通过分离业务的业务逻辑和系统级的服务,进行类聚性的开发Aop是对oop的一种延续,也是对oop的一种补充,oop是一种静态的过程,而aop是一种动态的过程,aop的主要功能为系统级别的功能,列入:系统日志,性能统计,安全控制,事务处理,异常处理等等这些主要功能,将实现上述功能的代码从业务逻辑层中划分出来,将它们独立到非业务指导性的代码当中,处理这些代码的时候不影响其它代码的处理。使用切面代码我们可以将面向切面的代码植入程序,可以有效防止代码的混乱。Aop专门用于处理系统中分布于各个模块中交叉关注点的问题,在JAVAEE应用中,常常通过aop来处理一些具有横切性质的系统级服务,如事务管理,安全检查,缓存,对象池管理等等,aop已经成为一种非常常用的解决方案。
Aop代理其实是由aop动态生成的一个对象,该对象可作为目标对象使用,aop代理所包含的方法与目标对象方法如下图所示
图2-10 aop代理所包含的方法与目标对象方法
6)声明式事务的支持
在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。
7)对异常的处理方式,所有的都转换成Unchecked的。
8)它不是一个一体化的解决方案。
9)良好的设计,容易扩展,很多可重用的组件
3.Spring核心组件(我们主要学习的是IOC和AOP模块)
(1)、Spring Core(IOC) 核心容器,提供组件的创建、装备、销毁
(2)、Spring Context Spring上下文,是一个接口ApplicationContext(继承自BeanFactory接口)的实现
(3)、Spring Web容器,web应用上下文,是webApplicationContext接口的实现
(4)、Spring DAO容器,是SpringDAO 支持模块,是为了简化DAO的使用
(5)、Spring ORM
(6)、Spring AOP ,对AOP编程支持的模块 [面向切面编程,扩展功能不是修改源代码实现]
(7)、Spring MVC,类似于Spring表示层的一个框架
4.spring ioc(must):
IOC:Inversion of Control 控制反转
一种说法:对象之间的依赖关系,由容器在运行时依据配置文件动态的建立
另一种说法:对象的控制器转移了,转到外部容器了,避免了代码的纠缠,代码更容易被维护,模板之间的耦合性降低,容易测试
比如:有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,创建类的对象,使用对象调用方法,
创建类对象的过程,需要new出来对象。
ioc是把对象的创建不是通过new方式实现,而是交给spring配置创建类对象
IoC 控制反转意味着将你设计好的类交给容器去控制,而不是在类的内部进行控制,即控制权由应用代码中转到了外部容器
IoC:包括两部分内容
DI:Dependency Injection依赖注入,组件不做定位查询,只提供相应方法,由容器创建对象,并调用相应方法设置所需对象需要的组件
(不要求)DL:Dependency Loopup依赖查找,容器创建对象并提供回调接口和上下文环境给组件,需要时通过接口从容器中查找对象
依赖查找,现在使用不太多。(EJB使用的更多,将对象创建好后,放到容器中。)
IOC解决:对象谁来创建的问题
DI解决:对象间的关系如何建立的问题。
org.springframework.beans及org.springframework.context包是IOC容器的基础。
3.系统需求分析
3.1功能需求分析
其任务是查看用户订单,查看用户信息,并在根据查看了用户的信息和用户订单之后,将商品的发送到购买者的身边。
3.2系统设计规则
无论哪个网站都要有它自己的设计规则。该系统也一样,它的主要设计规则有:
简单性:在实现系统的功能的同时,尽量让系统操作简单易懂,这对于一个系统来说是非常重要的。
针对性:该系统设计是宠物商店网站系统及后台管理的定向开发设计,所以具有专业突出和很强的针对性。
实用性:系统接受来自系统管理员的请求,管理员可以对商品信息以及用户信息进行增、删、改、查等操作,具有良好的实用性。
3.3系统的可行性分析
3.3.1技术可行性
3.3.2经济可行性
3.3.3操作可行性
3.3.4 技术可行性分析
3.3.5 运行可行性分析
3.3.6 经济可行性分析
3.4运行环境
本系统是一个web版的应用程序,需要在服务器上部署中间件Tomcat、Oracle数据库,其他的客户端通过网络进行访问该服务器即可。
4.宠物网站系统概要设计
4.1系统功能结构图
4.2系统交互图
1、当用户在jsp页面输入了相应的信息后,对象会根据用户的请求向请求业务处理类处理数据。
2、当业务处理类收到相应的请求后,会向相应的权限管理类对象发送验证请求。
3、通过权限管理类验证过后会把相应的验证权限结果返回给相应的业务代理类。
4、业务对象会根据接受到不同的验证权限结果进行两部不同的处理操作:若权限不符,这返回到相应的JSP用户界面,若权限相符,则进行到相应的业务逻辑类。
5、业务逻辑类的业务对象进行相应的业务处理。在业务处理中的数据持久化操作,靠访问数据库访问类进行操作,可以进行读取,写入等操作,期间若发生任何的异常,交给异常处理类来完成。
4.3数据库设计
一是,在关系数据库中,确定数据库的物理结构,主要是指存取方法和存储结构。时间和空间效率是对物理结构的评价。.
二是要选取存取方法,并且是正确的关系模式,存取索引方法、聚簇存取、HASH存取方法等都是常用的方法。数据库的概念设计整体属性E-R图如下图5-3所示:
宠物商店网站系统ER模型中的实体转换为物理表,得到物理表结构部分如下:
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框架是如何配置到应用程序中的。
< <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 name="friendlinkmanager" class="com.daowen.action.FriendlinkAction">
<action name="jiaodiantumanager" class="com.daowen.action.JiaodiantuAction">
<action name="sysconfigmanager" class="com.daowen.action.SysconfigAction">
5.2登录功能的实现
public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
response.setContentType("application/x-www-form-urlencoded; charset=UTF-8");
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+"'");
System.out.println("json="+s1);
response.getWriter().write(s1);
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();
})
5.4商品管理功能的实现
<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>
5.5订单管理模块的实现
订单管理模块主要实现管理员对进行中的订单、历史订单信息的查询,进行退款、拒绝、介绍并发货等操作。订单管理模块如图6-2所示。
<script src="<%=SystemParam.getSiteRoot() %>/webui/combo/combo.js" type="text/javascript"></script>
<script type="text/javascript">
$(".ui-record-table").recordTable();
$("#btnDelete").click(function(){
if($(".check:checked").length<1)
5.6会员管理模块的实现
<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>
6.测试与性能分析
6.1系统测试目的与意义
假设测试,也很难带来成就试验人员从某种意义上说,作为设计和编码一样容易取得进展:
那个戒指是不是建立在自然破裂,找到软件错误作为测试的目标,他们负责的负面测试工作中发现错位;
准备他们的信心盲目的过程,发现错误后,所表达的意见对他们的发展能力的担忧。
软件测试,这种观点是不赚钱,提高软件产品的质量,必须澄清认识,态度。
如果你说,要找出尽可能测试的目的是错误的,那么测试应直接向软件的一部分,是更复杂或更错误之前。
为了测试错误,因为这个视图的中心可以提醒人们,而不是正常运作的演示软件。但可能会非常棘手,真的只是给这纯粹是为软件测试是为了发现错误,找不到错误的测试,其实不是这样的。
6.2测试环境
WIN7 64位,FireFox,TOMCAT6,JDK1.6
6.3测试过程
(2)系统测试:该测试中发现的一般是软件设计中的错误,也可能发现需求说明中的错误。
(3)验收测试:该测试中发现的一般是系统需求说明书中的错误。
这样不断发现问题,经过反复的测试、调试,把问题一个个的解决,最终系统可以正常运行。
6.4测试的主要内容及结果
单元测试是检查每个软件中单位最小的,通过检测去发现原来定义该模块的功能说明和本身所需要实现的实际的功能是不符合要求的状况,或者检测出模块的错误。
模块名称 |
测试用例 |
预期结果 |
实际结果 |
是否通过 |
登录模块 |
用户名:null 密码:null |
弹出错误提示,请输入用户名 |
登录失败,提示请输入用户名 |
通过 |
登录模块 |
用户名:m1 密码:null |
弹出错误提示,请输入密码 |
失败,提示输入密码 |
通过 |
登录模块 |
用户名:m1 密码:1 |
弹出错误提示,用户名或者密码错误 |
登录失败,提示用户名或者密码错误 |
通过 |
商品管理模块 |
添加商品信息后提交 |
添加成功 |
录入成功 |
通过 |
用户密码修改 |
随意一个用户登录,修改密码 |
修改成功,退出后用新密码登录,并登录成功 |
修改成功 |
通过 |
总结与展望
1、该系统可以运行在多个操作系统平台(Windows 7和Windows 8),数据库采用mysql,开发语言选择Java,可移植性好。
2、系统的用户权限进行划分,分为会员用户和管理员,不同的用户具有不同的操作权限。这不仅方便了用户,也保证了系统的安全性。
参考文献
[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
Servlet是运行在Web服务器或应用服务器上的Java程序,它是一个中间层,负责连接来自Web浏览器或其他HTTP客户程序的请求和HTTP服务器上的数据库或应用程序。
·servlet 2.3和JSP(独立服务器)。Java 1.2或更新的版本。
·J2EE 1.3(包括servlet和JSP 1.2)。Java 1.3或更新的版本。
·servlet 2.4 和JSP 2.0(独立服务器)。Java 1.3或更新版本。
·J2EE 1.4(包括servlet 2.4和JSP 2.0)。Java 1.4或更新版本。
Set PATH=C:\j2sdk1.4_01\bin;%PATH%
如果您想下载已经配置好的autoexec.bat文件,包含PATH设定以及本章论述的其他设置,可以到http://www.eoreservlets.com/,转到相应的源代码档案文件后,选择第2章。
在UNIX中,如果SDK安装在/usr/j2sdk1.4.1_01中,并且您使用C外壳。您需要将下面的内容放入到.cshrc文件中。
基于java的宠物管理系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)相关推荐
- 基于java的连连看游戏系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
项目说明报告 基于Java的连连看游戏设计与实现 连连看是一种消除类益智游戏,核心要求是在规定的时间内,消除游戏界面中选中的两张相同的图案,直至完全消除所有图案.这款游戏操作简单(只需单击鼠标左键操作 ...
- 基于java的出租车计价器系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
项目报告 出租车计价器设计与实现 在我国,出租车行业是八十年代初兴起的一项新兴行业,随着出租车的产生,计价器也就应运而生.但当时在全国没有一家企业能够生产,因而那个时期的计价器是由台湾引进.台湾是计价 ...
- 基于java的俄罗斯方块游戏系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
基于Java的俄罗斯方块游戏的设计与实现 俄罗斯方块是一款风靡全球,从一开始到现在都一直经久不衰的电脑.手机.掌上游戏机产品,是一款游戏规则简单,但又不缺乏乐趣的简单经典小游戏,上手容易,适用范围广泛 ...
- 基于java的校园二手平台系统毕业设计(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
以下是一个基于Java的校园二手平台系统的毕业设计建议: 1. 系统概述: 校园二手平台系统是一个用于学生之间进行二手物品交易的应用程序.通过该系统,学生可以方便地发布和浏览二手物品的信息,并进行交流 ...
- 基于jsp的项目管理平台系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
项目报告 基于Java EE平台项目管理系统的设计与实现 随着社会信息化的发展,很多的社会管理问题也一并出现了根本性变化,项目公司的报表及文件管理也发生了变化,以前的管理是一个分布式的信息,然后围绕中 ...
- 基于jsp的农产品销售管理系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
项目报告 基于WEB的农产品销售管理系统 本文论述了基于JAVA.Web的农产品销售管理系统开发的目的及意义,目的是为了农产品资源的合理利用和物资的充分交流,有些地方富余而卖不出去,有些地方却吃不上. ...
- 基于java的新闻发布及管理系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
项目说明报告 题 目:新闻发布及管理系统的设计与实现 本课题来源及研究现状: 课题来源 21世纪是信息的时代,是网络的时代,进入信息社会高速发展的时代,数字化革命给所有领域带来新的改变.信息技术的 ...
- 基于jsp的网上招标系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
说明书报告 从本世纪初,互联网开始加速发展,各种创新型应用和互联网新概念不断出现,例如搜索引擎.电子商务.博客.维基百科.RSS.3G.web2.0.长尾理论等.这些应用和概念与知识管理都有着或多或少 ...
- 基于jsp的高校固定资产管理系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
摘本文基于Java语言,设计与实现了一个高校固定资产管理系统.该系统提供了资产信息管理.资产入库.资产领用.资产报废等功能,旨在帮助高校高效管理和维护固定资产.本文详细介绍了系统的需求分析与设计.数据 ...
最新文章
- ISA Server中基于L2TP实现远程拨入***
- Promise 化回调式函数
- 成功解决FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `ar
- STM32开发 -- base64详解
- [vue] vue自定义事件中父组件怎么接收子组件的多个参数?
- java三个线程 顺序执行_如何确保三个线程顺序执行
- 服务器虚拟化 远程,服务器虚拟化 远程
- 帝国php使用系统变量,帝国cms常用变量汇总
- 【广度优先搜索】一个实例+两张动图彻底理解 BFS | 思路+代码详解 | 用 DFS 自动控制我们的小游戏
- 【NOIP2015】【Luogu2670】扫雷游戏(搜索,字符串输入输出)
- 【优化算法】社会群体优化算法(SGO)【含Matlab源码 1449期】
- ssh配置config文件
- java 宿舍管理系统教学,java学校宿舍管理系统
- svn忽略不需要同步的文件夹_配置管理-SVN使用指南 - wuli潇潇
- 万字综述:如何打造自动驾驶的数据闭环?
- 计算机考试没有输入法怎么办,输入法没有了怎么办呢 解决方法有哪些
- 图像修复实例解析(二)
- logstash 数据重复问题
- java 个人博客开发_Java实现个人博客系统
- 【LoadingDialog】标准款待加载对话框
热门文章
- python测试驱动开发_使用Python进行测试驱动开发的简单介绍
- vue开发规范(单文件组件)
- 服务器虚拟化专用ovf模板,科学网—开放虚拟化格式规范2.0.0——OVF package - 唐宏伟的博文...
- 台式计算机强制关机,台式电脑强制关机按什么键
- Python学习培训方法
- Unity Shader graph 毒液
- 【日常开发必备】1.5W+字的 MySQL 速查手册
- 在Centos8上部署Django环境(Nginx+mysql+uwsgi)
- C# - 音乐小闹钟_BetaV1.0
- CSS使用小操作(隐藏滚动,实现三角行等...)