【《基于SSM网上购物商城的设计与实现》8900字(论文)】_第1页
【《基于SSM网上购物商城的设计与实现》8900字(论文)】_第2页
【《基于SSM网上购物商城的设计与实现》8900字(论文)】_第3页
【《基于SSM网上购物商城的设计与实现》8900字(论文)】_第4页
【《基于SSM网上购物商城的设计与实现》8900字(论文)】_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

基于SSM网上购物商城的设计与实现摘要互联网技术如雨后春笋般的成长速度,让一代人可以方便地在网上购买他们需要的产品。现在大家普遍都喜欢淘宝、京东等大型的购物平台、一目了然的网上购物网站。带来的是更加的方便与快捷,在网络市场上比实体网上销售有着更强大的发展前景。采用SSM框架开发的的网上商城,根据百货公司产品的状态,线上运营促进了门店与顾客之间的无缝连接,让购物变得不在复杂,给以用户一个轻松的体验。一个系统很难完成我们全部的功能,因此我们采用两个子系统组合而成的一个完整的购物系统,此系统是采用SSM框设计与实现的,第一个子系统是面向广大的消费群体使用的,第二个子系统是面向商家和管理员使用的,用户可以通过注册的方式来成为我们的用户,来购买自己所需要的产品,并生成与之对应的订单,用户可以采用两种支付方式的的任意一种来进行支付操作,商家可以通过第二套系统,可以查询到与用户相对应的商品订单,并对该订单进行确认发货操作生成物流信息,用户端可以确认收货,或者拒绝收货,还可以对以收货的订单,进行评价。关键词JSP,SSM,B/S,MySQL,购物商城目录TOC\o"1-3"\h\u16770一绪论 二系统的开发语言、工具与环境2.1JSP技术JSP全称JavaServerPages,Java服务器页面类似一种运行在服务器端的小程序,和Servlet一样,是sun公司定义的一种动态网页技术。基于HTML模板,可以在HTML模板嵌套Java代码和JSP标签。JSP的优势在于与纯Servlet相比,JSP可以轻松编写或修改HTML页面,而无需处理许多Println语句,因此JSP的出现大大的简化了后端人员的开发,后端开发者只需要将数据封装好,在JSP中动态加载数据即可,JSP的出现是将那些单方面的技术整合起来得到一个全新的技术,方便程序员的开发。JSP缺点在于传输量大,使用异步,尽量不刷新页面,每次都要拼接大量的字符串,页面静态化技术。2.2MySQL数据库MySQL是一个多客户端并且支持线程同步的服务器,MySQL数据库管理系统是一种关联数据库管理系统,该数据库的服务器具有快速,可靠和容易使用的特点,并且数据库的服务器是可以在客户端,服务器环境下工作,当然也可以运行在嵌入式系统中,该数据库管理软件还是免费且开源的,非常适合初学者将其作为学习对象。程序中经常使用到的数据库无非就只有两大类,一类是拥有关联关系的关系型数据库(Oracle,DB2,MySQL,等),一类就是没有任何关联关系的非关系数据库(NoSql,MongeDB,等)。不同的数据库之间各有优缺点,在此不再一一介绍。MySQL适用于线程同步,它可以方便地使用服务器资源并合理地提高速度。它还提供了各种方法来连接数据库,例如TCP/IP,ODBC和JDBC。尽管其作用还不够强大,但其经营规模相对较大。很小,但是对于系统软件来说足够了,此外,您还可以扩展室内空间对数据库表结构的二次开发。2.3MVC设计模式MVC技术的使用使得每个版本中的语音转换变得越来越轻松和有序。MVC技术的最大特点是兼容模式好,无论您选择使用哪种语言表达来开发和设计程序,MVC框架都相互兼容,以确保程序执行的速度和项目成本。同时,MVC技术还具有内置的技术调整功能,这对于开发人员开发和设计程序以及程序的调试都是必不可少的。MVC技术由于其相对完整和出色的作用方式已被广泛用于当前的程序开发中。但是,开发人员并未停止对程序的持续研究以不断改进体系结构。MVC模式的实际含义是数据模型(Modle),视图(View)和控制器(Controller)。他们分担职责以解决工作中的日常任务。模型涵盖了程序流的所有数据信息、状态和逻辑。它与视图和控制器是分开的。View视图可以将数据模型Model中的数据状态和逻辑状态通过以视图的形式展示在页面上,根据Modle数据模型中的数据信息,相同的数据信息信息可以由不同的视图指示。控制器存在于视图和模型的中间,具有传递功能,将输入的信息分解给模型的功能,起到一个桥梁的作用。MVC方法将它们分开,提高了系统软件的协调性和复用性。它完成了视图和模型的分离。图2-1MVC模式图2.4SSM框架开发框架是一套标准和一个已经完成项目大部分功能的代码集合。它帮助大家完成很多基础功能,为程序员节省了大量的编程工作,也让程序员可以将大量精力投入到系统软件领域模型解决方案中。它不仅可以提高程序流程的标准化和编码的重要性。并且还可以提高程序流程的可扩展性和可维护性。让我们谈谈SSM是什么。Spring的普遍应用是因为其自身的IOC特性,将原先耦合死的对象,进行了解耦,并让Spring来对其进行管理,大大的简化的开发,提升了开发效率,根据Spring的AOP特性,将重复控制模块集中,完成事务管理。操作日志和管理权限。为其他优秀的开源框架提供集成支持。SpringMVC的优势在于SpringMVC是一个轻量级的Web框架,它应用了MVC设计解决方案的概念。将web层解耦,让你的开发设计更加简洁,与Spring无缝对接,数据校验便捷。Mybatis采用XML文件配置的方式对数据库进行操作,消除了SQL编码的耦合,通过配置XML文件给出的映射标识,让数据访问层可以与之对应,不仅支持实体对象和数据库ORM字段关系的映射还支持实体对象关联的建立,通过XML提供的标记,可以做到SQL的动态化操做。三系统分析3.1可行性分析网上商城的核心目标是完成商品的网上购物和市场销售。明确目标后,大家应该从以下两个方向制定一个可行的计划,看看能否完成这个系统的软件目标。3.1.1技术可行性在网上商城中,JSP技术,MVC策略模式,SSM架构,MySQL数据库的关键选择在应用程序软件的开发中具有详细的作用,易于应用的功能,并创建具有详细数据信息和稳定性的数据库,安全性强的数据库,数据信息安全系数高,数据信息可靠性高的库。在线商城的开发技术使用的是一些被市面上所高度使用的技术,技术对使用人员的要求较低,因此系统软件的开发是可行的。3.1.2操作可行性网上商城的登录界面简单易操作。通用页面对话框用于登录界面让人与机器交互起来更加简易。用户只需要使用计算机上的浏览器进行访问操作即可,本系统的开发使用的是JSP语言采用的是SSM框架。这种开发环境使系统更加健壮,更加的简单化,所以采用此技术架构对开发,可以节约大量的不必要的花销。该系统操作简单,易于管理。3.2需求分析此次开发的在浏览器端运行的商城购物系统是为了开发和设计一个基本的电子商务系统,使客户可以轻松完成网上购物,并让商户随意发布自己的产品信息。一个网上商城系统应该分为两个子系统,每个子系统的职责分工不同,针对不同的使用群体给予响应的服务。用户子系统是面向广大用户群体的,用户可以查询,购买自己所需要的产品。商户子系统又称管理员子系统是面向广大商户的,商户可以在该子系统发布产品的售卖信息传入与之对应的数据库中永久存储,让用户子系统的商品信息是时刻处于更新状态的以达到两个子系统间的交互。3.2.1用户购物系统用户购物系统是面向广大的消费者的,其中包含了八大核心功能模块,和一些配套的小功能模块,这里就不一一介绍了,在下面的前台用例分析中可以看到这些功能。3.2.2购物管理系统购物管理系统是面向管理员的(也就是我们的商家和超级管理员),普通的商家会受到超级管理员的约束控制,超级管理员可以对普通的管理员给予他们所需要的权限,以方便普通商家的使用,具体功能模块看下面的用例分析。3.2用例分析用例图是用户和系统之间交流的最简易的表达方式,可以很直观的展示用户与其他的用例之间存在的某种关联关系,通过用例图可以很简单,且直观的看到不同用户的不同用例。3.2.1用户购物系统用例分析图3-1前台购物系统用例图3.2.2商家管理系统用例分析图3-2后台购物系统用例图3.3系统功能模块设计根据对系统软件的需求分析,系统软件主要分为前台网上商城子系统和后台管理管理子系统。系统软件整体程序模块图如图3-3所示。图3-3系统功能结构图四数据库设计4.1概念结构设计通过数据库的概念设计和结构设计绘制出以下的实体关系E-R图:图4-1商品实体E-R图图4-2商品类别实体的E-R图图4-3用户实体E-R图图4-4购物车实体E-R图图4-5订单实体E-R图图4-6订单详情实体E-R图图4-7管理员实体E-R图图4-8系统总E-R图4.2物理结构设计数据库的物理结构,根据数据库的逻辑结构来选定要是用的数据库产品(本系统采用的免费且开源MySQL数据库),设计并执行数据库的存储结构和存储方式。基于前面的分析和设计方案,设计方案具有如下数据库表结构。表4-1商品表键名数据类型长度是否为空是否主键备注pidpnamepimgpricestocktitledescbytimeclassidintvarcharvarcharfloatintvarcharvarchardatetimeint1120100115050011NOTNULLNOTNULLNOTNULLNOTNULLNOTNULLNULLNULLNOTNULLNOTNULLYNNNNNNNN商品编号名称图片价格库存标题描述上架时间类别编号表4-2商品类别表键名数据类型长度是否为空是否主键备注classidcnamedescintvarcharvarchar112050NOTNULLNULLYYNN类别编号类别名称描述表4-3用户表键名数据类型长度是否为空是否主键备注uidheadimgunamepasswordmynamesexbirthdayvipphoneidnumemailaddresssignaturestatusbytimelasttimeintvarcharvarcharvarcharvarcharvarcharvarcharintvarcharvarcharvarcharvarcharvarcharint

datetimedatetime111002011202141020505050501NOTNULLNULLNOTNULLNOTNULLNULLNULLNULLNOTNULLNULLNULLNULLNULLNULLNOTNULLNOTNULLNULLYNNNNNNNNNNNNNNN用户编号头像用户名密码姓名性别生日积分手机证件号码电子邮箱地址个性签名登陆状态注册时间最后登录表4-4购物车表键名数据类型长度是否为空是否主键备注cariduidpidnumberspriceallcartbytimeintintintvarcharfloatdatetime11111111NOTNULLNOTNULLNOTNULLNOTNULLNULLNOTNULLYNNNNN购物车编号用户编号商品编号商品数量总价添加时间 表4-5订单表键名数据类型长度是否为空是否主键备注orderidordercodeuidstatusorderaddresspostalfeeorderdateorderpostcodeorderpostnameintvarcharintintvarcharfloatdatevarcharvarchar115011111005050NOTNULLNOTNULLNOTNULLNOTNULLNOTNULLNOTNULLNOTNULLNULLNULLYNNNNNNNN订单编号订单编号用户编号订单状态收货人地址邮费创建日期快递单号物流方式 表4-6订单详情表键名数据类型长度是否为空是否主键备注odetailidorderidpidpimgpimgpnameodetailnumintintintvarcharvarcharfloatint111111505011NOTNULLNOTNULLNOTNULLNOTNULLNOTNULLNOTNULLNOTNULLYNNNNNN详情编号订单编号商品编号商品图片商品名称商品价格订购数量表4-7管理员表键名数据类型长度是否为空是否主键备注adminidaimganamepasswordgradeintvarcharvarcharvarcharint1110020111NOTNULLNOTNULLNOTNULLNOTNULLNOTNULLYNNNN管理员编号头像用户名密码权限等级五系统实现5.1前台购物系统的实现5.1.1注册登录模块图5-1登录页面图5-2注册页面图5-3登录流程图5.1.2商品模块商品模块主要实现了商品的浏览与查询功能,商品列表与商品信息页面如图所示:5-4商品列表页面图5-5商品信息页面当用户选择导航中的列表选项后会发送/product/showpro请求,跳转到商品列表界面,核心代码如下所示:从实现代码可以看到,发送请求会传递一个参数classid,而productSSelCount(classid)和productSvc.findPage(page)会对参数进行处理,从而进行分页显示商品(分页原理请看源码注释),如果classid为null,那么显示的就是所有商品的分页列表。在商品列表页面,无论用户点击哪一件商品的图片都会向后台发送一个请求获取与上平对应的数据库信息然后经过封装得到一个JSON格式的对象,在通过服务器响应到页面上,此现象叫数据的回显,关键代码如下所示:5.1.3购物车模块 在购物车模块中用户可实现对商品的结算,返回继续购物,删除购物车订单的操作,如下图所示:图5-6购物车页面在商品详情信息点击“加入购物车”会发送请求/usercart/addcart,关键代码如下:前台通过from表单发送post请求,并携带请求参数,找到与之对应的控制器,控制器获取请求参数,通过cart.setPriceall()将计算得到的总价封装到商品对象中,最终将封装的对象信息添加到购物车,只需要执行shoCartSvc.addCart(cart)就可以实现,此时请求返回的方法通过响应重定向的方式跳转进入购物车页面,加载购物车数据进行显示,购物车显示就是通过查找已登录用户的id进行查找,删除则指向要删除的购物车id。图5-7购物车多选页面如图5-7所示:购物车可以实现多选操作,这里传递的参数是商品id与购买数量的数组,这么做可以一次下单多件商品(针对购物车多选),服务器端会返回订单生成页面通过响应重定向直接跳转到该页面,在该页面用户需要填写一些收件人信息,如收货人的姓名,详细地址和联系方式信息。之后,用户如果选择已支付会生成待发货的订单(此处通过用户选择是否付款,由于是测试,并未做付款验证),否则订单状态为未付款。代码如下所示: 除了将商品id与数量的数组获取过来之外,还将地址信息也进行获取,添加到订单表中,此时请求返回的方法通过重定向发送请求/order/getMyOrders,通过当前用户id查询,进入订单页面,显示所有订单。5.1.4用户订单模块用户订单模块可以完成的操作如去付款,申请退货,确认收货,删除订单,取消订单,一系列操作,如图所示:图5-8用户订单页面5.2后台管理系统的实现5.2.1管理员登录模块为了区分用户和商户也就是管理员,保证访问安全,商户登录单独采用数据表和登录页面来实现。当地址栏输入/admin请求时会跳转到登录页面,页面如图:图5-9管理员登录页面登录的流程和用户界面的执行流程是一样的,只是加入了一层验证。当验证成功后就可以直接跳转到管理员的主页面,如图所示:图5-10管理员主页页面5.2.2管理员管理模块对于商户的管理仅限总管理员进入,当点击“管理员”后会发出/admin/topage?page=admin_manage请求,进入相应的控制器,代码如下所示:page.equals("admin_manage")会对请求地址判断,是否需要验证。由于登录后已保存session,此处只要对admin.getGrade()进行判断,如果不是超级管理员会跳转提示页面,如下图所示:图5-11管理员权限提示页面等待3秒后,就会自动跳转到后台主页(登录页面),也可以点击后台主页选项后直接跳转到后台主页。如果管理员权限充足的话,就可以直接进入后台系统的操作界面。图5-12管理员列表页面商户列表也就是管理员列表是在进入页面后通过页面的初始化函数绑定一个异步的AJAX请求来获取的,页面中提供增加商户、移除商户、更新商户的操作。如果想修改用户管理员的信息的话,就点击页面的修改选项,这个时候会跳转到修改的页面,修个页面中,有一个初始化的函数绑定了一个异步的请求,通过这个异步的请求,就会让你选中的这条数据的详细信息回显到页面上,这样你就可以修改你想修改的部分,最后点击保存即可,添加管理,和修改共用一台页面模板,页面会做判断,是否需要数据回显,删除的话,点击删除按钮,直接发送一个请求并且携带这你要删除的那条数据的id,后台接收到请求,就会去调用相应的删除方法,去删除携带此id的那条数据。5.2.3用户信息管理模块点击“用户管理”,前台通过异步的AJAX发送请求,请求与之对应的控制器,在控制中,控制器调用完成此功能的方法,完成数据的获取,将获取到的数据封装到视图对象中,返回给AJAX,然后前台在进行显示,结果如图:图5-13用户列表页面由图5-13可以看出,此用户列表页面的管理选项中,只有修改和删除两个选项,点击修改这个时候会跳转到修改的页面,修个页面中,有一个初始化的函数绑定了一个异步的请求,通过这个异步的请求,就会让你选中的这条数据的详细信息回显到页面上,这样你就可以修改你想修改的部分,最后点击保存即可,删除的话,点击删除按钮,直接发送一个请求并且携带这你要删除的那条数据的id,后台接收到请求,就会去调用相应的删除方法,去删除携带此id的那条数据。图5-14用户信息修改页面点击“删除”即通过找到对应id进行删除,再返回页面即可更新。5.2.4商品信息与分类模块管理员在系统的操作界面左侧导航栏中选择商品模块下拉框,会有三个子菜单,当管理员点击“商品管理”即发送一个请求进行页面跳转,此时菜单栏右侧的区域会加载商品管理页面,前端再通过AJAX的异步请求方式进行商品数据加载,核心代码如下:后台会将查询到的商品数据封装到一个商品信息的List集合中在将这个集合放入到Map集合中返回到前台,前台接受到请求后,将数据加载到页面上展示。图5-15管理员商品列表页面当用户点击对应的商品修改按钮就会发送请求/adminproduct/proalter?pid=?,通过传入的参数服务器就会获取对应的商品id,查询商品信息,返回视图“backstage/pro_alter”。当用户点击“保存”时即会通过/adminproduct/admupproduct请求服务器对相应商品进行修改,具体核心代码如下所示:通过if(!("").equals(product.getPname()))来判断,若提交的内容并没有修改,则修改的内容是原来的信息,这样就不会造成将未输入内容修改成空的情况(或者在数据库命令中进行空的判断)。删除相比来说简单,获取对应商品id后执行删除语句,返回视图即可。当点击菜单栏中的商品的分类可以对商品类别进行添加分类、修改分类、删除分类的操作,具体页面如图所示:图5-16商品分类列表点击“添加分类”会发送请求/sort/addSort,系统内部会进行处理,最终再次返回页面,刷新后会获取最新分类列表;删除时通过/sort/deleteSort?classid=?传递分类的id即可进行删除;修改分类信息只需要获取输入的内容,通过修改语句修改后再返回视图则会刷新内容。5.2.5订单管理模块当管理员点击“订单模块”的时候就会得到所有的订单列表,界面如图图5-17订单列表页面订单支持列表选择,前端代码如下:管理员可对订单进行管理,都是对订单状态的修改。但是当点击“去发货”的时候,会弹出对话框,要求输入发货信息。点击确定会发送AJAX请求/adminorder/handleOrderStatus,核心代码如下:case4中的4是传过来的status参数,表示要去发货,curstatus是通过传来的orderid查询的当前订单状态,如果当前订单状态为1表示该商品“未发货”,首先把订单状态修改成“已发货”,再插入发货信息。结论经过近几个月的努力,基于SSM框架开发的网上商城所需模块设计和功能实现都已经基本完成。本次毕业设计采用Java语言来作为开发语言。初步确定了研究课题的情况和目的,随后对应用的技术性和架构概念进行了说明。在对JavaSE基础知识、JavaEE基础知识,MVC设计模式和SSM框架的学习与整合后,我用了一部分基础技术专业术语表达了自己的一小部分理解,说明了本课题的原因和结果。结合JavaEE规范,设计开发了本课题研究,运用基础理论知识与具体实践相融合的原则,使自己对商场的运营有了更加深入的了解,对市场销售的方式和专业技能上的学习有了进一步的提升。尽管根据MVC的设计模式与SSM框架的整合,在线购物商场中还仍有一部分原型,仍存在诸如容量有限,技术不足和专业知识不足之类的问题。只有经过大量的学习和训练,才能做到真正意义上的完美,通过这段时间的训练,让我累计了一些项目经验,这将受益终身。以后会再深入挖掘和扩展产

温馨提示

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

评论

0/150

提交评论