您好, 访客   登录/注册

基于J2EE的社区电商平台系统的设计与开发

来源:用户上传      作者:

  摘 要:近年来大型电商行业蓬勃发展,而面向社区及村镇等小范围内的应用场合的电商平台却较为少见。因此,文中设计一个基于JavaEE和MySQL数据库的电商平台系统。该平台基于浏览器/服务器(B/S)设计模式,使用SSM框架开展项目开发,简化代码让系统层次结构更清晰。同时给出了系统的总结结构和方案,并进行详细设计,包括接口设计、数据库设计、架构设计等方面。结果表明,通过该平台用户可以完整的网络购物流程入注册登录、使用购物车、结账等功能,管理员能够对通过后台对系统进行管理。
  关键词:浏览器/服务器;网购;MySQL;数据库;SSM框架;JavaEE
  中图分类号:TP393.1;TN911 文献标识码:A 文章编号:2095-1302(2020)06-00-05
  0 引 言
  在互联网和通信行业日新月异的今天,网购已成为一种潮流,一种快速便捷的生活模式。互联网提供更多的购物方式选择,你在外出时可能买不到的东西,只需打开网页鼠标点击,下订单、付款,就可以在家里等待货物被送到手上。因此本文基于JavaEE[1]平台和SSM[2]框架,设计了一个小型电商平台,可用于小型社区和城镇的电商管理。
  1 系统需求分析和设计方案
  1.1 用户用例分析
  本系统涉及的角色有用户和后台管理员两种。用户中的买家可以进行的操作有:登录、注册、浏览商品、查看商品详情、将商品添加到购物车、删除订单,买家的用例图如
  图1所示。后台管理员以管理员的身份登录后台系统后可以对商品和订单以及用户信息进行查看和部分信息进行修改删除增加等操作。由于该角色功能比较单一,所以在此不再给出用例图。
  1.2 设计方案
  系统采用B/S设计模式,在功能上把用户界面和管理员界面独立拆分成两个单独的系统,对两个系统分别设计。系统的开发环境为JDK 1.8,MySQL 5.6和Tomcat 8.0。技术方面采用以SSM框架为核心来实现本设计,辅助以Maven来控制版本Shiro来增强授权认证功能。
  1.3 用户模块
  本设计主要有两个角色的大功能,其中用户系统分为
  6大功能模块,如图2所示。
  (1)平台门户界面模块
  该模块电商平台的门户,门户是作为该电商平台的首页,通过门户顾客可以轻松访问到该电商平台任一商品。
  (2)登录注册模块
  该模块主要用于用户在没有登录之前,在页面做拦截操作,制定拦截一些特定需要账户信息的操作,将商品加入购物车等,使用户完成登录或者注册的操作;在进行注册操作时,利用邮箱验证用户信息是否合法。注册成功后的用户可以用过手机号或者邮箱登录。
  (3)修改个人信息模块
  用户在完成下单操作之前,需要先完善自身的信息,包括收货地址,联系方式等,除此之外还包括修改用户昵称和修改登录密码。
  (4)商品详情展示模块
  商品展示功能能够展示商品的详细信息,包括商品的价格、商品的评价、商品的优点和商品的评价等等。
  (5)商品购物车模块
  在用户浏览商品时,点击将商品加入购物车,即在页面右下角显示购物车内容,包括购物总金额、数量等信息。
  (6)订单模块
  当用户点击购物车旁边的按钮“我选好了”,跳转页面至订单详情页。该页面可以显示加入购物车的所有商品的详情,并且添加收货地址和选择付款方式。点击提交订单,即可在用户个人界面查看该订单记录。可以执行取消、删除等操作。
  1.4 管理员模块
  本系统中,管理员系统分为管理员的登录和管理员后台两大功能模块。
  (1)管理员的登录模块
  为了区别于用户,且本身管理员自身的操作就关系到整个系统的安全性,所以对管理员登录模块做了不同于用户的登录设计,加入了Shiro安全框架,来确保管理员身份的合法性。
  (2)管理员的后台模块
  管理员根据职责的不同,负责的内容不同。在管理后台时也有权限的划分,比如一号管理员只拥有查看商品信息的权限,而二号管理员拥有新增和删除商品的权限。为了监管系统数据的安全添加了日志模块,可以实时记录是哪一位管理员在什么时候对什么进行了操作。
  2 系统架构设计
  使J2EE体系[3]的软件在安全性、可扩展性、健壮性方面具备极大优势[4]。系统架构[5]设计是系统编程实现的基础,是项目设计的核心。本系统采用三层架构系统模式,即controller(控制层),service(业务层)和dao(数据持久层)。
  根据系统需求一共设計9张表,利用数据库建模工具,构建表结构图和表间关系图如图3、图4所示。
  SSM框架整合示意图如图5所示。
  3 电商平台前端功能实现
  根据顾客在购买商品过程的要求,该电商购物平台系统的用户模块设计目标包括如下内容。
  (1)浏览商品。不管用户是否注册,只要打开指定网页即可浏览所有商品。
  (2)登录注册。一旦用户点击加如购物车操作或者访问会员界面时,检测用户是否登录,如果没有登录则登录,没有注册的应先注册再登录
  (3)加入购物车。用户可以将任何一件想要购买的商品加入购物车,进行结算。
  (4)个人中心。在个人中心中完善个人信息、地址、电话、姓名等。
  (5)订单结算。对加入购物车中的商品可以进行结算操作,使用微信付款、支付宝付款、货到付款都可以。
  (6)订单查询。对已经结算的商品可以查看相关信息。
  3.1 主页面模块实现   首页的页面设计的布局如下:上方为导航栏、左侧为分类栏、中间和右侧的大部门面积用于商品信息展示,如图6所示。
  首页展示的内容由/WEB-INF/pages中的pisa.jsp来决定,其中的图片通过js动态加载实现。在项目环境部署完成的情况下,在controller包下的PiSa类中编写如下代码,即可访问这个页面。
  @RequestMapping("doIndex")
  public String doIndex(){
  return"pisa";
  }
  当服务器开启后,在浏览器中输入:localhost:8080/pizaking/doIndex.do后就可以看到如图7所示的门户首页内容。
  3.2 用户登录注册
  在下单之前,必须要使用用户登录账户,如果没有账户则可以通过手机号码、邮箱进行注册,这样可以方便获取用户信息、保护用户信息,给用户一个安全的交易环境,为了保证账号的有效性引入了邮箱验证,如图8所示。
  该页面由以下代码实现。
  Public Boolean findone(HttpServletRequestrequest,Stringphone,String password)
  {
  PkUse user = userService.findone(phone, password);
  if(user==null) return false;
  request.getSession().setAttribute("user",user);
  request.getSession().setAttribute("cart",null);
  return true;
  }
  将页面传入的phone和password两个参数,通过业务层传达到数据层查询数据库,看是否查询到该用户信息,返回一个布尔值,生成Session对象,存入用户和商品属性。
  3.3 修改个人信息
  从上面的用户注册可以知道,虽然在注册时存入了用户的手机号、密码、邮箱,但是对于一个完整的用户对象来说,这些信息还不够,当访问个人中心时可以发现还需要填写很多信息才能完成下单支付操作。个人信息界面如图9
  所示。
  @RequestMapping("doUpdateUseruNameUI")
  @ResponseBody public JsonResultdoUpdateUseruNameUI(HttpSessionsession,Stringuname,String gender){
  userserService.updateUseruName(session,uname,gender);
  return new JsonResult("update ok");}
  在登录的时候准备了一个Session用来存放用户的信息,在这里就可直接调用这个Session,通过调用doGetObject()方法,去Session中取值,直接拿到现在登录用户的所有信息。如果这时执行的是对已经设置了性别和姓名的用户进行修改操作,再点击修改时会有数据回显。
  3.4 商品详情
  当顾客点击某个商品时就能跳转到指定商品详情页面,商品详情页面便会展示出商品的详细信息,包括品牌名、价格等信息。商品详情页面如图10所示。
  3.5 购物车功能
  通过首页展示的页面可以知道,点击加入购物车,就能将对应商品添加到购物车,而且应该在页面右下角提示用户当前购物车内金额是多少。将商品添加到购物车得到的页面如图11所示。部分代码如下:
  @RequestMapping("findstate")
  @ResponseBody
  Public JsonResultfindstate(HttpServletRequest request){
  PkUser user= ShoppingWebUtil.getUser(request);
  if(user==null){
  return new JsonResult(0);}
  else { return new JsonResult(1);}
  }
  通过前端页面Ajax发起后端请求,查询用户当前状态,登录状态可以执行加入购物车操作,非登录状态提醒用户登录。携带商品id查询数据中商品信息,库存大于0则可以将商品添加到购物车即session對象中的商品属性中,小于0则提示用户商品库存不足,请重新选择。
  3.6 订单功能
  商品已经在购物车了,金额也计算出来了,这时需要实现的就是提交订单的操作。订单操作中,填写好相关订单信息后可以选择支付方式。提交订单页面如图12所示。
  点击提交按钮后,所有的商品信息会被存入到以订单id为主键的订单信息表中,其中外键包括商品id和用户id。用户可以在个人信息中心查看订单信息。
  4 电商平台后台功能实现
  根据平台对商品和用户的管理需求,此系统的后台管理模块设计目标包括如下内容。
  (1)登录。只有指定的管理员账号才能进行后台管理系统登录。
  (2)商品管理。可以对商品进行增删改查,批量导出商品信息到Excel。
  (3)用户管理。查看用户删除用户,批量导出用户信息到Excel。
  (4)订单管理。取消订单,查看订单详情,导出订单信息到Excel。   (5)查看日志。删除指定日志,导出日志信息到Excel。
  4.1 管理员登录
  管理员与用户不同,用户只要下单之后就不用再管之后的操作,全部交给管理员来做后续订单的执行操作,所以管理员的登录就比用户相较而言要严格很多。因为如果被非法登录,便可以执行所有和订单有关的操作,查看用户的所有信息。这是一种安全隐患,基于这种情况,区别于用户登录对管理员的登录进行了认证操作。这里使用到之前提到的框架—Shiro框架。后台管理员登录页面如图13所示。部分代码如下:
  @RequestMapping("doLogin")
  @ResponseBody
  public JsonResultdoLogin(String username, String password){//1.对用户信息进行封装
  UsernamePasswordToken token = new
  UsernamePasswordToken(username,
  password);
  Subject
  Subject = SecurityUtils.getSubject();
  subject.login(token);
  return new JsonResult("login ok"); }
  通过controller层只知道获取了页面传入的username和password,并且通过UsernamePasswordToken对象将账号和密码存入到token中,之后又获取一个subject对象;通过subject对象的login方法将token提交给securityManager,按照上述的原理,已经执行到一半,剩下的一半就是去查询这个用户的真实信息。
  底层是调用Shiro框架封装好的功能,其中需要自己去完成最关键的一步是认证方法的方法体,在此不做过多赘述。
  4.2 后台管理
  通过复杂的用户前端页面的介绍后,后台基本上就是实现一个对信息的增删改查的操作。这个在前面已经涉及到很多关于增删改查的操作,这里就不在继续分析。下面主要介绍一下日志功能的实现。
  日志功能利用Spring的AOP功能实现在进入方法体之前对该方法进行一个判断操作,结合Shiro授权,查询管理员是否具有操作权限。如果有就可以继续执行目标方法,并且在方法执行完后执行自定义方法,记录执行目标方法具体信息。日志功能页面如图14所示。
  5 结 语
  本文设计了面向社区的电商购物平台,使用SSM框架和maven工具实现版本控制。该平台的设计与完成,能够使消费者更加便捷地在互联网上进行购物,与此同时使企业的运营成本降低很多,实现了企业与消费者的双赢。
  参考文献
  [1]冯文霞.J2EE框架应用的性能优化分析与研究[J].硅谷,2013(6):52-54.
  [2]姜帆,田永春,孫丽琼.SSM框架下的物联网安全管理系统设计
  [J].单片机与嵌入式系统应用,2020,20(2):84-87.
  [3]张志浩,张丽.基于B/S和MVC模式的物流仓储管理系统研究
  [J].中国储运,2019(11):124-126.
  [4]吴倩,应捷,韩旭.基于SSM框架的高并发电子商务平台设计与实现[J].电子商务,2019(3):63-66.
  [5]杨运平,吴智俊.Apache Shiro安全框架在技术转移服务系统中的应用[J].计算机与现代化,2014(3):158-160.
  [6]庄巧蕙.基于J2EE的电子商务平台的研究与构建[J].大庆师范学院学报,2018,38(6):59-63.
  [7]蒋薇,赖青贵,秦玲,等.基于ADO.NET数据访问技术的研究和应用[J].微计算机信息,2010,26(30):141-143.
  [8]周茜,陈钰,曹庆花,等.基于Struts+JPA+Spring架构的电子商务系统的设计与实现[J].软件导刊,2011,10(1):88-91.
  [9]刘高军,夏景隆.基于Spring MVC和iBATIS框架的研究与应用[J].计算机安全,2012(7):25-30.
  [10]白海婷,田茂,王雄兵.基于Maven和EasyUI的远程监控系统的设计与实现[J].物联网技术,2015,5(12):15-16.
转载注明来源:https://www.xzbu.com/8/view-15249743.htm