【《基于JSP的品牌服装网上商城的设计与实现》12000字(论文)】_第1页
【《基于JSP的品牌服装网上商城的设计与实现》12000字(论文)】_第2页
【《基于JSP的品牌服装网上商城的设计与实现》12000字(论文)】_第3页
【《基于JSP的品牌服装网上商城的设计与实现》12000字(论文)】_第4页
【《基于JSP的品牌服装网上商城的设计与实现》12000字(论文)】_第5页
已阅读5页,还剩48页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于JSP的品牌服装网上商城的设计与实现摘要近10年来,电子科技发展十分快速,电脑技术亦发展得十分完善,已然成为人们离不开的生活小助手。通过管理系统在电脑上的应用,人们能更好的管理信息,储存数据。为了能够提供品牌服装销售的方便性,开发了本次基于JSP的品牌服装网上商城的设计与实现项目。本基于JSP的品牌服装网上商城的设计与实现的开发采用的是热门的Java技术,采用了MySQL来作为数据的存储和管理。根据基于JSP的品牌服装网上商城的设计与实现的初期分析,对系统进行了详细的功能设计,得出系统需要有管理员管理功能以及用户前台功能,使得用户实现在线购买品牌服装,管理员能够更好的管理信息。本文首先是从课题的背景介绍出发,概括了课题研发的目的和意义,通过市场调研,确定了系统的需求和可行性。针对系统需求,对系统功能进行了划分,依照功能模块图,设计了数据库结构,并实现了各个功能模块。该系统前端部分使用HTML5、CSS3[1]、JQuery、JavaScript[2]等技术栈来开发;而后端部分则使用SSM[3]开发实现后端;对数据的永久存储使用的是MySQL数据库;通过Tomcat服务器来搭建并运行项目,完成项目的对外发布。最后进行编码、测试以及上线完成最终项目的实现。本次开发的基于JSP的品牌服装网上商城的设计与实现是一个具有实际使用意义的系统,能够投入市场使用。关键词:MySQL数据库;Java技术;HTML;商城目录1前言 前言背景自从人类迈入信息社会以来,各种电子科学技术飞速发展,人们得以应用的电子产品越来越多,也对电子科技产生了依赖性。在人们的日常生活中,手机和电脑已经成为了必不可少的电子产品。而人们对手机和电脑的依赖,是因为通过手机以及电脑,能够运用各种各样的系统,通过虚拟网络完成一系列的事项,十分省时且快捷。我国的经济发展是大家都有目共睹的,在经济水平提高后,需要以更完善的电子科技来满足人们对生活便利性的需求。构建一个基于JSP品牌服装网上商城,不仅为人们带来在线购买品牌服装带来方便,还更方便系统管理用户的操作,直接通过电脑,使用键盘就可以输入信息、保存信息、快速查找信息以及删除不必要的信息。让管理用户有了更方便的操作途径,节省了更多时间与精力。基于JSP品牌服装网上商城能够满足不同用户的不同需求,使得用户使用上获得更大的方便。开发目的和意义随着全球经济一体化和全球化进程的加快,信息技术在各个领域中的应用越来越广泛。计算机网络与人们日常生活之间的关系变得越来越紧密,计算机的普及程度越来越高,社会信息化得到了加强。电子科技的发展,为人类社会带来便宜,各种网上系统的出现,让人们有了能够随时随地处理相关事宜的途径,免去了人们奔波劳累、耗时耗精力的辛苦。创建一个品牌服装销售系统,可以实现用户通过网络在线购买品牌服装,同时也让后台的管理者更好的管理信息,也让信息有了更好的储存条件。电子科技的发展,同时也对经济的发展做出了重大贡献。人们利用电脑,通过虚拟空间记录、储存各种信息,更加方便了信息的查看,在记录信息时,只要通过简单的键盘打字以及鼠标操作,就能够快速将信息记录并归类好。与传统的纸质记录信息的方式不同,电脑记录信息的方式,储存信息的途径为数据库储存,不会发生储存介质遭到外界破坏而发生信息丢失的可能,只要能够登陆系统,就能够找到储存在数据库的信息。同时,这也为人们带来许多便利,通过计算机信息系统,所储存的信息可以无数次修改,并且不会留下修改痕迹,当信息废弃后,可以进入数据库删除信息,当需要在原有信息的基础上增添信的信息时,也可以随时增添,这更是为系统管理员省去了大量的麻烦,减轻的管理员的不少工作量。主要工作本次开发的基于JSP的品牌服装网上商城的设计与实现,主要工作分为以下几个部分:首先,从系统题目出发,分析系统开发需要解决的问题,在当前市场上为人们带来什么意义,具有什么样的使用价值,从而确定系统的大致功能。其次,查阅相关的文献以及书籍,对比大量的资料,分析当前市场上大多数相关系统的功能,以及开发系统使用的技术,找出适合本次基于JSP的品牌服装网上商城的设计与实现开发的技术,了解这些技术的优缺点,从而进一步确定系统开发所使用的技术。通过对功能的进一步划分,使用绘图软件绘制出系统详细的功能模块图,使功能模块更清晰的呈现,接着做出各个用户的用例图和系统E-R图。紧接着就是编程,针对系统的各个功能,进行编程,实现一个完整的基于JSP品牌服装网上商城。最后,程序写好了,就可以调试了。在调试程序时,需要将系统各个功能操作一遍,看是否能实现所有功能,查找系统中的BUG,并一一改正。本文研究内容经过分析,确定本文分为六个部分对基于JSP的品牌服装网上商城的设计与实现进行阐述。第一部分是前言,主要叙述了基于JSP的品牌服装网上商城的设计与实现是在什么背景下完成的,它的完成具有什么目的,在人们生活中存在的意义,以及做出这个基于JSP的品牌服装网上商城的设计与实现需要进行哪些步骤,以及本文研究内容。第二部分中,对于本次开发的技术中,选取介绍了Java和MySQL等这几个代表性强的技术,介绍系统开发的关键技术的原因以及它们的优点和缺点。第三部分中,是基于JSP的品牌服装网上商城的设计与实现的全面性分析,包括可行性、性能、用例的分析,做出了UML用例图,还介绍了系统流程。第四部分是对系统设计的介绍,叙述了系统结构设计的重要性,以及基于JSP的品牌服装网上商城的设计与实现的各个结构的划分,从最开始,要通过功能结构图对系统的整体结构做出绘制,然后通过E-R图对数据库的设计模型作出简单的描述,最后列举出所需要的数据表。第五部分是系统实现,在这个部分,以系统操作过程中的实现图片来展示了系统的主要成果,并且结合了文字来展开描述。

关键技术JSP技术介绍JSP是一种用来开发基于Java的Web应用程序的动态网页开发技术[4],由于JSP可以使用JavaAPI,因此JSP也属于可跨平台技术,应用在不同的系统。JSP可以使用HTML代码,另一种它可以使用的编程代码就是JAVA,这种技术已经是非常普遍的了,这两种代码是有所区别的,所实现作用有所不同,HTML代码主要能够用来支持网页静态内容的显示,而JAVA代码则用于显示网页动态内容。采用JSP技术能解决Servlet中大量HTML标签、文本以及格式堆积的所造成的开发效率低的难题,JSP技术以一种在JAVA中嵌入HTML代码的方式,带来一种无须JAVA程序控制的静态页面显示的方式。使用JSP技术,能提升用户的访问速度,节省更多时间,因为服务器能够在用户首次通过浏览器访问JSP页面时,对页面代码进行预编译,而用户编译代码后,代码会被保存,当用户再次打开JSP页面时,就能够立即只想所编译好的代码,这种方式也避免了服务器CUP资源的占用。JAVA代码中HTML页面在服务器的响应,是需要在代码中拼接标签的,而JSP技术的使用,避免了这样繁琐的过程,因为JSP文件能很好的将JAVA代码和HTML代码分别使用。JSP具有较多的标签和表达试,因此,采用JSP技术开发应用时,可以获得更多的页面动态效果,为用户带来更好的视觉体验。Java技术介绍Java在大学课程中,是非常基础的一门语言,它的热门度到了要求计算机学生必须掌握。学习过Java的都会认为它其实是比较简单的,即使是刚接触计算机语言的学生,也会比较容易拿这个技术来练手,说明这个技术易于理解,在使用上比较简单。也正由于它的基础性,使得学习它的人越来越多,这点为它本身带来了使用的广泛、普遍性,带来了许多年轻的用户。在开发时,由于这门语言本身是开源的,并且没有那么多的局限性,在许多常见的平台都能应用,因此也从很多方面迎合了程序开发的需求。采用Java来开发Android手机应用和Web后端,开发效率非常高,在编程时,由于Java的编程模式属于一种面向对象基于对象的模式,而这种模式是与人的思维模式相符的,因此,Java的编程实现是条理清晰、易于理解的,因此也让开发者更容易接受[5]。Java有一个最大的优点,就是它没有平台的限制,Java虚拟机的出现,使得Java编程时,即使更改操作系统或者升级处理器,它也能够维持程序的运行而且不出现错误。采用Java编程时,它所具有的Java虚拟机JVM能够自动解释执行,在不出现错误的条件下,它能够执行至结束。数据库技术介绍MySQL数据库作为一个被广泛认为是在开发web应用时的最好的RDBMS应用软件之一[6],通常采用MySQL数据库这个使用SQL语言的关系型数据库管理系统,是非常好的选择。MySQL是广为人知的瑞典MySQLAB公司所致力研究开发的,他们公司主打的,在Oracle旗下的一款产品,同时,MySQL得到世界广泛关注,是人们常常选择使用关系型数据库。使用MySQL,具有提高所开发软件的灵活性的特点,不同于别的数据库将所有数据放在一个大仓库内的方式,MySQL是将所有数据进行关系的归类,将所有数据信息整理成不同的表格并进行储存,因此,MySQL被称作关系型数据库管理系统。由于这种储存数据的方式,使得开发人员能够非常容易在数据库中找到所找的数据,从而实现开发人员快速查找、删除、添加数据,并能实现快速在数据库中添加新建表或试视图的功能,同时,当开发人员想取回数据时,也能快速操作。因此,MySQL数据库的使用,能够为开发者减少很多麻烦,带来很好的体验,这也成为MySQL广受欢迎的原因。MySQL不仅为开发软件的人员提供优良的开发环境,其相应速度快的特点也吸引着用户的使用,因此,目前在开发中小型网站采用MySQL,是常见的选择。B/S介绍B/S结构的兴起是在Internet兴起之后,主要为了解决C/S结构所带来的客户电脑端载荷高的问题,简单的说,B/S就是经过研究C/S的优缺点而不断改进后所得到的技术,与C/S不同的是,B/S不需要在专门的服务器上建立,因此也没有了网络硬件环境的限制,B/S不像C/S,它面对的客户群体是非常广泛而且不可知的,这也为其带来了更多的可能性。C/S架构是两层架构,在进行管理操作时,需要安装客户端。而B/S是三层架构,可以直接通过Web浏览器直接向客户端提供数据,因此无需安装客户端,对于开发人员来说,更加简便了开发流程,并且为程序的维护带来了更好了效果,增强了用户的使用体验感。采用B/S结构来开发,能为用户带来简便性,例如它能支持用户随时随地进行查询业务或者处理业务,支持用户实现共享。由于用户端使用的浏览器是具有统一性的,这就为用户免去了学习不同浏览器的功能使用方法,让用户只要懂得上网就能够对B/S网页进行浏览使用,这也就是他的可继承性强的特点。使用B/S结构进行开发,基于它的服务器端是统一采用HTTP协议的,因此开发者的开发也被大大简化了,开发者对服务器的使用有了更多的选择,也不必单独开发框架,可以直接使用现有的其他平台和框架,这对开发者来说无疑省去了大量的麻烦。系统分析可行性分析通常来说,每一个系统在开发之初都应该先进行可行性分析,因为进行可行性分析能够帮助开发者确定项目可以顺利进行的必要条件,避免项目后期进行不下而造成损失。同时,通过可行性分析,可以更加确定将要开发的系统的各个结构,熟悉系统功能,使开发系统更顺利进行。技术可行性基于JSP的品牌服装网上商城的设计与实现完成,是在Java和MySQL数据库的结合使用下实现的。基于以往对Java和MySQL的了解,以及查阅许多文献资料,决定采用这两种技术,增强系统开发的便利性。这两种技术的使用都是0成本,都是常见的软件开发技术。Java在处理各类数据时,可以快速将数据从数据库中调取出来,极大的满足用户对速度的需求。MySQL数据库的使用,可以实现开发人员从数据库中快速查找、删除、添加数据,并能实现快速在数据库中添加新建表或试视图的功能,能够为开发者减少很多麻烦,带来很好的体验。经济可行性开发一个系统,需要从开发技术和设施配置要求的角度来考虑经济成本。基于JSP的品牌服装网上商城的设计与实现所采用的开发技术均是免费使用的,且都是采用开源码。在开发完成后,可以直接通过电脑和手机就能够使用其功能,对电脑和手机的配置也没有高的要求,平常常见的电脑手机就可以满足需求了。因此,基于JSP的品牌服装网上商城的设计与实现的开发,满足经济需求。操作可行性本次开发的基于JSP的品牌服装网上商城的设计与实现,具有简单美观的界面,拒绝复杂的装饰,在用户点击操作时,能自动弹出提示框,响应速度快,功能结构划分清晰,是一款操作性良好,可供用户流畅使用的系统。时间可行性开发一个系统,需要考虑时间的限制,确定系统需在哪个具体时间之内完成,从而进行周祥的计划。本基于JSP的品牌服装网上商城的设计与实现的开发,以及在两个月的时间内完成。系统的完成,需要经历需求分析、文献调查、系统结构确定、做出详细结构图、编写程序以及调试这些环节,通过这些环节所需时间的规划,确定了基于JSP的品牌服装网上商城的设计与实现在规定时间内可以完成。因此,在时间上,本基于JSP的品牌服装网上商城的设计与实现的完成是可行的。经过以上几个角度的考虑,基于JSP的品牌服装网上商城的设计与实现的开发是可行的,所有条件的符合开发需求。可行性分析易于使用性:基于JSP的品牌服装网上商城的设计与实现的开发初衷,是为了能够满足各行各业的人们在线购买品牌服装的需求,同时,也为了让系统信息的管理提高效率,是为了能够让人们的生活和工作更加便利而开发出来的,因此系统的操作方式必须简单明了,贴合实际的应用流程,让人们一上手就能够直接操作,使用系统的功能。可扩展性:基于JSP的品牌服装网上商城的设计与实现以增强系统管理和用户体验为目标,因此,系统需要良好的可扩展性,方便系统内容的更变,支持管理员增加新的功能模块,或者对原有功能模块进行新的改变,同时要保证不对系统原有模块造成影响。稳定性:本次开发的基于JSP的品牌服装网上商城的设计与实现需要具备健壮的功能体系来维持系统的稳定性,在系统运作过程中,无论用户使用哪个功能,都能够正常运行,实现功能的使用。当用户在进行操作时输入了错误的数据,系统能够自动处理这些问题,不会让用户产生困扰。安全性:基于JSP的品牌服装网上商城的设计与实现内储存了品牌服装销售的大量信息以及用户的个人信息,因此,基于JSP的品牌服装网上商城的设计与实现必须具备良好的安全性,防止系统被黑客以及计算机病毒,同时,系统需要建立完整的安全机制,保证每个用户都必须登录个人账号才能够使用系统功能。系统用例分析UML是一种语言,一般来说,采用UML为一个软件密集系统来进行可视化建模,能够让这个软件密集系统更加有层次化,能够更深层次且直观明了的呈现在开发者眼前,除了这样的作用,它还能够为开发者掌握开发全局提供着指明方向的作用,让开发前期的所有准备不迷茫。因此,在软件开发之初,对软件进行UML建模分析是大有好处的。以下是对本基于JSP的品牌服装网上商城的设计与实现进行UML建模分析。本基于JSP的品牌服装网上商城的设计与实现的管理员UML用例图如图3.1所示图3.1管理员用例图Figure3.1Administratorusecasediagram用户UML用例图如图3.2所示。图3.2用户用例图Figure3.2UserUseCaseDiagram系统处理流程设计用户登录流程登录流程实现了管理员和普通用户的登录,系统验证使用者输入的账号密码后才可以登录该系统,如图3.3所示。图3.3用户登录流程图Figure3.3Userloginflowchart添加信息流程本次开发的系统目的是为了系统信息更具管理性,因此,添加信息功能是必不可少的。添加信息流程如图3.4所示。图3.4添加信息流程图Figure3.4Addinformationflowchart修改信息流程本次开发的系统目的是为了系统信息更具管理性,因此,修改信息功能是必不可少的。修改信息流程图如图3.5所示。图3.5修改信息流程Figure3.5Modifytheinformationflow删除信息流程本次开发的系统目的是为了系统信息更具管理性,因此,删除信息功能是必不可少的。删除信息流程图如图3.6所示。图3.6删除信息流程图Figure3.6Deleteinformationflowchart

系统设计系统结构设计一个完整的系统,需要实现多个模块的功能,因此,系统结构能够清晰的呈现在开发者的眼中,能够为开发者理清头绪,在模块与模块、功能与功能之间不易搞混,从而发生不必要的麻烦。理清一个系统,需要将系统不同用户的使用功能,以功能结构图的方式呈现出来,并且在制作功能结构图时必须划分清晰,这样有助于保持开发过程思路的清晰,不容易造成混乱。在结构设计过程中,需要先分析系统需求,初步确定系统功能,再将功能模块细化,完成系统结构的最终设计。本基于JSP的品牌服装网上商城的设计与实现的结构图如图4.1所示:图4.1系统结构设计图Fig.4.1Homepagerenderings系统顺序图使用顺序图是为了把系统的功能模块化,让各个模块的功能更明确。下面就介绍本系统几个主要模块的顺序图。登录模块顺序图管理员可进行登录系统后台,登录模块的顺序图如图4.2所示。图4.2管理员登录顺序图Figure4.2Administratorloginsequencediagram添加商品信息模块顺序图管理员登录后可进行添加商品信息操作,添加商品信息顺序图如图4.3所示图4.3添加商品信息顺序图Figure4.3Sequencediagramofaddingcommodityinformation删除商品信息模块顺序图管理员登录后可进行删除商品信息操作,删除商品信息顺序图如图4.4所示图4.4删除商品信息顺序图Figure4.4Sequencediagramofdeletingcommodityinformation修改个人信息模块顺序图用户登录后可进行修改个人信息操作,修改个人信息顺序图如图4.5所示图4.5用户修改个人信息顺序图Figure4.5Sequencediagramofusermodifyingpersonalinformation数据库设计数据库作为一个系统中用以处理数据,让数据请求和回应有了一个专门处理的核心部分,并且使系统得以储存数据的部分,它的重要性可见一斑。因此,开发一个系统时,重视数据库的作用的必须的,在数据库中,数据库表的内容将成为系统的重要数据,因此,我们需要将表和表之间的关系清楚的呈现出来,使系统开发更为清晰,借此来发挥数据库的优势。数据库E-R图设计概念结构设计是在数据库建立之前,通过对应用的需求分析,将分析得出结论采用抽象的信息结构表述出来,让开发者能够更易于理解数据之间各个关系的连接,充分反映出数据库内部各个结构,以及能够在应用环境和要求需要作出变化时,便于修改和扩充的数据模型,可以说,概念设计的存在,能让用户的数据要求更清楚的表述出来,它是各种数据模型的基础。在概念设计中,常用E-R模型来描述,从而做出来主要的实体模型图,数据库E-R图[7]设计如图4.6所示图4.6数据库E-R设计图Figure4.6DatabaseE-RDesignDiagram数据库表设设计在开发系统时,进行数据库物理设计是必要的流程,首先要将数据库进行定义,然后确定逻辑数据结构,然后将最适合的数据库管理方法通过进行选择后确定储存文件的结构和位置,从而实现对物理数据结构的最优化、最有效的一种方法,在这个过程中,用户系需要权衡时间、空间效率以及维护代价,使得数据库物理结构呈现出最优化。同时,在数据库表建立过程中,需要结合用户界面的视觉体验来为字段选择合适的数据类型,在命名数据库、表和字段上也需要作出思考:表4.7admins表Table4.7adminstable字段名称数据类型长度是否主键是否可空idint11是否usernamevarchar255否是passwordvarchar255否是表4.8goods表Table4.8goodslist字段名称数据类型长度是否主键是否可空idint11是否namevarchar255否是covervarchar255否是priceint11否是introvarchar255否是type_idint11否是表4.9items表Table4.9theitemstable字段名称数据类型长度是否主键是否可空idint11是否priceint11否是amountint11否是order_idint11否是good_idint11否是color_idint11否是size_idint11否是表4.10orders表Table4.10theorderstable字段名称数据类型长度是否主键是否可空idint11是否totalint11否是amountint11否是statustinyint4否是paytypetinyint4否是namevarchar255否是phonevarchar255否是addressvarchar255否是systimetimestamp255否是user_idint11否是表4.11shopcart表Table4.11shopcarttable字段名称数据类型长度是否主键是否可空idint11是否amountint11否是good_idint11否是color_idint11否是size_idint11否是user_idint11否是表4.12sku_color表Table4.12sku_colortable字段名称数据类型长度是否主键是否可空idint11是否namevarchar255否是

系统的实现管理员模块登录功能描述为了维护系统的安全,任何用户想要进入系统进行相关功能操作,都需要进行登录。效果展示管理员登录效果展示如图5.1所示。图5.1登录Figure5.1login实现原理系统实现login()接口,通过校验前端用户输入的账号密码与数据库的信息进行比对,校验通过就能够够进入到系统。主要代码/** *用户登录 *@return */ @PostMapping("/login") publicStringlogin(@RequestParam(required=false,defaultValue="0")intflag,Usersuser,HttpSessionsession,Modelmodel){ model.addAttribute("typeList",typeService.getList()); if(flag==-1){ flag=6;//登录页面 return"/index/index"; } if(userService.checkUser(user.getUsername(),user.getPassword())){ UsersloginUser=userService.get(user.getUsername()); session.setAttribute("user",loginUser); //还原购物车数量 session.setAttribute("total",shopcartService.getTotal(loginUser.getId())); return"redirect:index"; }else{ model.addAttribute("msg","用户名或密码错误!"); return"/index/index"; } }类目管理功能描述管理员能够管理系统类目信息,可以对类目信息进行修改、删除操作,或者新增类目信息。效果展示类目管理效果展示如图5.2所示。图5.2类目管理Figure5.2CategoryManagement实现原理系统通过实现接口@RequestMapping("/typeList"),该接口能实现将类目等的信息进行返回,前端拿到返回的数据进行处理之后进行数据回显示。主要代码/** *类目列表 * *@return */ @RequestMapping("/typeList") publicStringtypeList(HttpServletRequestrequest){ request.setAttribute("flag",1); request.setAttribute("typeList",typeService.getList()); return"/admin/type_list.jsp"; } /** *类目添加 * *@return */ @RequestMapping("/typeAdd") publicStringtypeAdd(HttpServletRequestrequest){ request.setAttribute("flag",1); return"/admin/type_add.jsp"; } /** *类目添加 * *@return *@throwsException */ @RequestMapping("/typeSave") publicStringtypeSave(Typestype,MultipartFilefile, @RequestParam(required=false,defaultValue="1")intpage)throwsException{ type.setCover(UploadUtil.upload(file)); typeService.add(type); return"redirect:typeList?flag=1&page="+page; } /** *类目更新 * *@return */ @RequestMapping("/typeEdit") publicStringtypeEdit(intid,HttpServletRequestrequest){ request.setAttribute("flag",1); request.setAttribute("type",typeService.get(id)); return"/admin/type_edit.jsp"; }属性管理功能描述管理员能够管理系统属性信息,可以对属性信息进行修改、删除操作,或者新增属性信息。效果展示属性管理效果展示如图5.3所示。图5.3属性管理Figure5.3AttributeManagement实现原理系统通过实现接口@RequestMapping("/typeList"),该接口能实现将属性等的信息进行返回,前端拿到返回的数据进行处理之后进行数据回显示。主要代码/** *sku添加 * *@return */ @RequestMapping("/skuSave") publicStringskuSave(Stringname,intstatus){ if(status>0){ skuService.addSize(name); }else{ skuService.addColor(name); } return"redirect:skuList?status="+status; } /** *sku删除 * *@return */ @RequestMapping("/skuDelete") publicStringskuDelete(intid,intstatus){ if(status>0){ skuService.deleteSize(id); }else{ skuService.deleteColor(id); } return"redirect:skuList?status="+status; }商品管理功能描述管理员能够管理系统商品信息,对商品信息进行修改、删除操作,或者新增商品信息。效果展示商品管理效果展示如图5.4所示。图5.4商品管理Figure5.4CommodityManagement实现原理系统通过实现接口@RequestMapping("/goodList")商品的列表、实现接口@RequestMapping("/goodAdd")来进行商品信息添加的实现,该接口能实现将信息进行返回,前端拿到返回的数据进行处理之后进行数据回显示。主要代码@RequestMapping("/goodList") publicStringgoodList(@RequestParam(required=false,defaultValue="0")bytestatus,HttpServletRequestrequest, @RequestParam(required=false,defaultValue="1")intpage){ request.setAttribute("flag",3); request.setAttribute("page",page); request.setAttribute("status",status); request.setAttribute("goodList",goodService.getList(status,page,rows)); request.setAttribute("pageTool",PageUtil.getPageTool(request,goodService.getTotal(status),page,rows)); return"/admin/good_list.jsp"; } /** *产品添加 * *@return */ @RequestMapping("/goodAdd") publicStringgoodAdd(HttpServletRequestrequest){ request.setAttribute("flag",3); request.setAttribute("typeList",typeService.getList()); request.setAttribute("colorList",skuService.getColorList()); request.setAttribute("sizeList",skuService.getSizeList()); return"/admin/good_add.jsp"; } /** *产品添加 * *@return *@throwsException */ @RequestMapping("/goodSave") publicStringgoodSave(Goodsgood,MultipartFilefile, @RequestParam(required=false,defaultValue="1")intpage)throwsException{ good.setCover(UploadUtil.upload(file)); goodService.add(good); return"redirect:goodList?flag=3&page="+page; } /** *产品更新 * *@return */ @RequestMapping("/goodEdit") publicStringgoodEdit(intid,HttpServletRequestrequest){ request.setAttribute("flag",3); request.setAttribute("typeList",typeService.getList()); request.setAttribute("colorList",skuService.getColorList()); request.setAttribute("sizeList",skuService.getSizeList()); request.setAttribute("good",goodService.get(id)); return"/admin/good_edit.jsp"; } /** *产品更新 * *@return *@throwsException */ @RequestMapping("/goodUpdate") publicStringgoodUpdate(Goodsgood,MultipartFilefile, @RequestParam(required=false,defaultValue="1")intpage)throwsException{ if(Objects.nonNull(file)&&!file.isEmpty()){ good.setCover(UploadUtil.upload(file)); } goodService.update(good); return"redirect:goodList?flag=3&page="+page; }订单管理功能描述管理员能够管理订单信息,可以删除订单,对订单进行发货操作。效果展示订单管理效果展示如图5.5所示。图5.5订单管理Figure5.5Ordermanagement实现原理订单管理模块的处理主要通过实现数据的增删改查功能,针对@RequestMapping("/orderDispose");操作咨询业务逻辑表操作订单数据。通过request.setAttribute("orderList",orderService.getList(status,page,rows));实现订单基本数据的查询,通过request.setAttribute("orderList",orderService.getList(status,page,rows));更新成功.","baseAdd");完成数据修改更新。主要代码@RequestMapping("/orderList") publicStringorderList(@RequestParam(required=false,defaultValue="0")bytestatus,HttpServletRequestrequest, @RequestParam(required=false,defaultValue="1")intpage){ request.setAttribute("flag",4); request.setAttribute("status",status); request.setAttribute("orderList",orderService.getList(status,page,rows)); request.setAttribute("pageTool",PageUtil.getPageTool(request,orderService.getTotal(status),page,rows)); return"/admin/order_list.jsp"; } /** *订单发货 * *@return */ @RequestMapping("/orderDispose") publicStringorderDispose(intid,bytestatus, @RequestParam(required=false,defaultValue="1")intpage){ orderService.dispose(id); return"redirect:orderList?flag=4&status="+status+"&page="+page; } /** *订单完成 * *@return */ @RequestMapping("/orderFinish") publicStringorderFinish(intid,bytestatus, @RequestParam(required=false,defaultValue="1")intpage){ orderService.finish(id); return"redirect:orderList?flag=4&status="+status+"&page="+page; } /** *订单删除 * *@return */ @RequestMapping("/orderDelete") publicStringorderDelete(intid,bytestatus, @RequestParam(required=false,defaultValue="1")intpage){ orderService.delete(id); return"redirect:orderList?flag=4&status="+status+"&page="+page; }用户管理功能描述管理员对系统用户进行管理,可以对用户信息进行修改、删除操作,或者新增用户信息。效果展示用户管理效果展示如图5.6所示。图5.6用户管理Figure5.6UserManagement实现原理用户的管理首先需要实现对用户信息表的增删改查功能,通过from表单采集数据,接口@RequestMapping(value="/userEdit");@RequestMapping("/userDelete");实现数据删除,通过添加语句信息添加@RequestMapping("/userUpdate");主要代码@RequestMapping("/userEdit") publicStringuserEdit(intid,HttpServletRequestrequest){ request.setAttribute("flag",5); request.setAttribute("user",userService.get(id)); return"/admin/user_edit.jsp"; } /** *顾客更新 * *@return */ @RequestMapping("/userUpdate") publicStringuserUpdate(Usersuser, @RequestParam(required=false,defaultValue="1")intpage){ userService.update(user); return"redirect:userList?flag=5&page="+page; } /** *顾客删除 * *@return */ @RequestMapping("/userDelete") publicStringuserDelete(Usersuser, @RequestParam(required=false,defaultValue="1")intpage){ userService.delete(user); return"redirect:userList?flag=5&page="+page; }管理员管理功能描述管理员对系统管理员进行管理,可以对管理员信息进行修改、删除操作,或者新增管理员信息。效果展示管理员管理效果展示如图5.7所示。图5.7管理员管理Figure5.7AdministratorManagement实现原理管理员的管理首先需要实现对管理员信息表的增删改查功能,通过from表单采集数据,接口@RequestMapping("/adminAdd");实现数据添加,通过添加语句信息添加@RequestMapping("/userUpdate");主要代码/** *管理员列表 * *@return */ @RequestMapping("/adminList") publicStringadminList(HttpServletRequestrequest, @RequestParam(required=false,defaultValue="1")intpage){ request.setAttribute("flag",6); request.setAttribute("adminList",adminService.getList(page,rows)); request.setAttribute("pageTool",PageUtil.getPageTool(request,adminService.getTotal(),page,rows)); return"/admin/admin_list.jsp"; } /** *管理员添加 * *@return */ @RequestMapping("/adminAdd") publicStringadminAdd(HttpServletRequestrequest){ request.setAttribute("flag",6); return"/admin/admin_add.jsp"; } /** *管理员密码重置 * *@return */ @RequestMapping("/adminRe") publicStringadminRe(intid,HttpServletRequestrequest){ request.setAttribute("flag",6); request.setAttribute("admin",adminService.get(id)); return"/admin/admin_reset.jsp"; } /** *管理员密码重置 * *@return */ @RequestMapping("/adminReset") publicStringadminReset(Adminsadmin,HttpServletRequestrequest, @RequestParam(required=false,defaultValue="1")intpage){ Stringpassword=SafeUtil.encode(admin.getPassword()); admin=adminService.get(admin.getId()); admin.setPassword(password); adminService.update(admin); return"redirect:adminList?page="+page; }用户模块注册功能描述用户必须在系统中注册属于自己的账号密码成为该系统的会员,才能进入系统进行相关操作。效果展示用户注册效果展示如图5.8所示。图5.8用户注册Figure5.8Userregistration实现原理系统通过校验前端用户输入的账号密码等个人信息进行保存入库。主要代码@PostMapping("/register") publicStringregister(Usersuser,Modelmodel){ if(user.getUsername().isEmpty()){ model.addAttribute("msg","用户名不能为空!"); return"/index/register.jsp"; }elseif(userService.isExist(user.getUsername())){ model.addAttribute("msg","用户名已存在!"); return"/index/register.jsp"; }else{ Stringpassword=user.getPassword(); userService.add(user); user.setPassword(password); return"/index/index";//注册成功后转去登录 } }登录功能描述用户进入系统进行操作时,必须进行登陆身份验证,验证通过之后,才能进入系统进行相关操作。效果展示用户登陆效果展示如图5.9所示。图5.9用户登录Figure5.9Userlogin实现原理系统通过校验前端用户输入的账号密码等个人信息进行保存入库。主要代码/** *用户登录 *@return */ @PostMapping("/login") publicStringlogin(@RequestParam(required=false,defaultValue="0")intflag,Usersuser,HttpSessionsession,Modelmodel){ model.addAttribute("typeList",typeService.getList()); if(flag==-1){ flag=6;//登录页面 return"/index/index"; } if(userService.checkUser(user.getUsername(),user.getPassword())){ UsersloginUser=userService.get(user.getUsername()); session.setAttribute("user",loginUser); //还原购物车数量 session.setAttribute("total",shopcartService.getTotal(loginUser.getId())); return"redirect:index"; }else{ model.addAttribute("msg","用户名或密码错误!"); return"/index/index"; } }浏览商品功能描述用户可以查看商品信息,能够立即购买商品以及将商品加入购物车。效果展示浏览商品效果展示如图5.10所示。图5.10浏览商品Figure5.10Browsetheproducts实现原理当用户打开首页时,系统通过@RequestMapping("/index")接口向数据库请求首页商品列表,并显示到页面。主要代码/**

*首页

*@return

*/

@RequestMapping("/index")

publicStringindex(HttpServletRequestrequest){

request.setAttribute("flag",-1);

List<Types>typeList=typeService.getList();

request.setAttribute("typeList",typeList);

List<Map<String,Object>>dataList=newArrayList<>();

for(Typestype:typeList){

Map<String,Object>map=newHashMap<>();

map.put("type",type);

map.put("goodList",goodService.getListByType(type.getId(),1,8));//取前8个

dataList.add(map);

}

request.setAttribute("dataList",dataList);

return"/index/index.jsp";

}查看商品详情功能描述可以通过点击商品,查看商品的详情信息。效果展示查看商品详情效果展示如图5.11所示。图5.11查看商品详情Figure5.11Viewproductdetails实现原理系统通过实现@RequestMapping("/detail")接口,该接口能实现将商品等的信息进行返回,前端拿到返回的数据进行处理之后进行数据回显示。主要代码@RequestMapping("/detail") publicStringdetail(intgoodid,HttpServletRequestrequest){ request.setAttribute("typeList",typeService.getList()); request.setAttribute("topList",topService.getList(Tops.TYPE_SUPPER,1,4)); Goodsgood=goodService.get(goodid); request.setAttribute("good",good); request.setAttribute("type",typeService.get(good.getTypeId())); request.setAttribute("colorList",skuService.getColorList(goodid)); request.setAttribute("sizeList",skuService.getSizeList(goodid)); return"/index/detail.jsp"; }加入购物车功能描述通过点击商品详情信息上的加入购物车按钮,把商品添加进购物车。效果展示加入购物车效果展示如图5.12所示。。图5.12加入购物车Figure5.12Addtoshoppingcart实现原理系统通过实现接口@RequestMapping("/cart"))该接口能实现将商品信息存入用户购物车,再将其写入数据库完成加入操作。主要代码/**

*购买

*@return

*/

@RequestMapping("/cart")

public@ResponseBodyintcart(Shopcartshopcart,HttpSessionsession,Modelmodel){

Usersuser=(Users)session.getAttribute("user");

if(user==null){

return-111;

}

shopcart.setUserId(user.getId());

shopcartService.save(shopcart);

inttotal=shopcartService.getTotal(user.getId());

session.setAttribute("total",total);

returntotal;

}管理购物车功能描述用户可以在购物车进行商品的修改来修改商品的数量,同时也可以通过删除商品进行清空购物车。效果展示管理购物车效果展示如图5.13所示。图5.13管理购物车Figure5.13.Managetheshoppingcart实现原理系统通过实现接口@RequestMapping("/add")、@RequestMapping("/less")、@RequestMapping("/delete")等接口实现对购物车的商品的修改和删除或清空,前端接收到操作后向后端请求动作写入数据库完成操作。主要代码/**

*添加

*/

@RequestMapping("/add")

public@ResponseBodybooleanadd(intskuid,HttpSessionsession){

Usersuser=(Users)session.getAttribute("user");

if(user==null){

returnfalse;

}

returnshopcartService.add(skuid);

}

/**

*减少

*/

@RequestMapping("/less")

public@ResponseBodybooleanless(intskuid,HttpSessionsession){

Usersuser=(Users)session.getAttribute("user");

if(user==null){

returnfalse;

}

returnshopcartService.less(skuid);

}

/**

*删除

*/

@RequestMapping("/delete")

public@ResponseBodybooleandelete(intskuid,HttpSessionsession){

Usersuser=(Users)session.getAttribute("user");

if(user==null){

returnfalse;

}

shopcartService.delete(skuid);

session.setAttribute("total",shopcartService.getTotal(user.getId()));

returntrue;

}创建订单功能描述用户在创建订单界面能够选择商品及商品数量创建订单。效果展示创建订单效果展示如图5.14所示。图5.14创建订单Figure5.14Createtheorder实现原理系统通过实现接口@RequestMapping("/buy"))该接口能实现将创建订单等的信息进行返回,前端拿到返回的数据进行处理之后进行数据回显示。主要代码/** *购买 *@return */ @RequestMapping("/buy") public@ResponseBodyintbuy(Shopcartshopcart,HttpSessionsession,Modelmodel){ Usersuser=(Users)session.getAttribute("user"); if(user==null){ return-111; } shopcart.setUserId(user.getId()); shopcart.setGood(goodService.get(shopcart.getGoodId())); //验证库存// intstock=skuService.getStock(shopcart.getGoodId(),shopcart.getColorId(),shopcart.getSizeId());// if(shopcart.getAmount()>stock){// model.addAttribute("msg","商品["+shopcart.getGood().getName()+"]库存不足!当前库存只有:"+stock);// } returnorderService.save(Arrays.asList(shopcart),user); } /** *购买 *@return */ @RequestMapping("/cart") public@ResponseBodyintcart(Shopcartshopcart,HttpSessionsession,Modelmodel){ Usersuser=(Users)session.getAttribute("user"); if(user==null){ return-111; } shopcart.setUserId(user.getId()); shopcartService.save(shopcart); inttotal=shopcartService.getTotal(user.getId()); session.setAttribute("total",total); returntotal; } /** *添加 */ @RequestMapping("/add") public@ResponseBodybooleanadd(intskuid,HttpSessionsession){ Usersuser=(Users)session.getAttribute("user"); if(user==null){ returnfalse; } returnshopcartService.add(skuid); }查看订单功能描述通过点击我的订单,可以查看到自己的订单信息。效果展示查看订单效果展示如图5.15所示。图5.15查看订单Figure5.15Viewtheorder实现原理实现接口@RequestMapping("/order")向数据库查询用户的订单并返回到界面显示出来。主要代码/**

*查看订单

*@return

*/

@RequestMapping("/order")

publicStringorder(HttpSessionses

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论