主要的应用技术是三层架构,其中表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得;业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理;数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。
数据数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.
业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。
表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx, 如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
而对于这三层具体的区分方法有:1:数据数据访问层:主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作。而不必管其他操作。2:业务逻辑层:主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。3:表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。

运行环境:IDEA/MYSQL/Tomcat。
本项目的数据库表根据项目功能需求自行设计,总体ER图如下图所示。一共有七个表,其中对应的也增添了一些自己的字段,为了数据更加清晰也相应地创建了一些表,例如用户表整加了role的字段,区分用户与管理员,创建了收获地址表等。

管理后台登录

为了界面的美观,管理后台的登录界面背景采用轮播图的形式进行展示,也只有后台管理员才可进行登录,具体是由数据库的role字段进行设置,role值为0是管理员的身份,值为1则是用户的身份,界面效果如图所示。


管理后台各模块管理功能

管理员后台有用户管理、商品管理、订单管理三个模块,用户管理可进行用户的增删改查如图所示。商品管理可查看商品分类、添加商品分类、查看商品、添加商品如图所示,订单管理可对前台提交的订单进行查看如图所示。管理后台的功能基本满足管理员的需求,其中添加商品不止对商品商品的分类、描述、价格等信息,还可提交图片、评价等信息,所有的管理功能均可对数据库进行操作,同时将数据同步到前台。





系统前台功能

登录、注册功能

前端接收数据提交给controller实现数据交互,后端对用户的合法性做判断,实现用户的登录与注册,页面简洁得体,同时使输入框摆放在页面相对美观合理的位置。其中用户登录界面如图所示,登录界面加上了验证码的功能,同时加上自动登录的逻辑,同时也考虑登录注册的安全性问题也有对注册进来的密码进行Base64的加解密算法进行测试,具体如图6-6所示;用户的注册界面如图所示,同样采用bootstrap框架考虑注册信息的需求及数据表设计进行相应的注册页面设计。


前台购物首页

前台购物首页根据设计的需求分成了四个专区,分别为护肤、彩妆、男士专区、母婴专区。首页采用layui框架优化界面设计,加入商品轮播以及相应的商品展示等。如图所示。

各商品列表展示功能

从数据库获取商品图片、名称、评价以及上架时间进行显示,加上展示的细节优化如回到顶部等细节功能便完成了哥商品列表展示功能。其中护肤类别的商品列表如图所示、彩妆类别的商品列表如图所示、男士专区的商品列表如图所示、母婴专区的商品列表如图所示。



查看商品详细信息及搭配推荐

点击任意一个专区商品的图片,便可可以查看商品的详细信息,其中商品的名称、价格、上架时间、评价、详细介绍、商品图片都是从数据库中获取。具体的页面实现如图所示。

同时根据需求我们也加入了搭配推荐的特色功能,可根据对应的商品推荐已经存储在数据库可相搭配的商品进行5个商品的推荐。

该功能运用了相对合理简单的搭配推荐算法,具体操作为数据库每十个数据为一个分区,每当前端点击图片跳转到servlet,此时会把图片id传进来,然后取改图片ID的十位数,接着使用random 函数随机产生5个不重复的10以内数字,进一步去查多5次数据库。在测试的过程中也发现了小bug,如当传进的ID是10,它随机出来的是10-20的数,但这其实是另一个分区的,所以需要将十位数减1。具体的随机算法代码如下:

public List change(String s) {int a;//十位数int b;//个位数int c = Integer.parseInt(s); //传进来的数b = c / 10;a = c % 10;System.out.println("a"+a);System.out.println("b"+b);int k[] = {a, b};// 创建Random对象Random r = new Random();List list=new ArrayList();list.add(c);if(c==10||c==20||c==30||c==40){b=b-1;}while (true){int random=new Random().nextInt(10)+b*10+1;if(list.contains(random))continue;list.add(random);if (list.size()==6) //摇五个数break;}for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}return list;}

加入购物车功能

进入商品详情页可将商品加入购物车,并显示加入成功界面如图所示。

点击首页页面右上角的购物车,便可显示刚才加入的商品,如图所示,有金额的结算、删除加入的商品、清空购物车功能,同时添加收获地址便可进行下一步提交订单的操作。

将商品加入购物车后便可进行提交订单操作,如图所示,但进行下一提交订单前,需编辑好收获,可以在首页页面的右上角chen(用户)点击进去用户界面进行编辑或添加收货地址如图所示。


点击我的订单可以显示订单列表,由于本项目的支付做的尚未成功提交的订单都是未支付的状态,如图所示,同时我们也可点开订单详情显示刚才所购买的商品信息,如图所示。同时也可选择对应的支付方式进行支付,如图所示。



项目链接在github,点个sta,进入添加链接描述

基于JavaWeb的化妆品购物商城相关推荐

  1. 基于nodejs+vue+mysql在线化妆品购物商城网站设计

    开发软件:Vscode + Mysql + node 开发技术:nodejs + vue + egg框架(基于KOA,就是nodejs的mvc框架) 这是一个在线化妆品购物商城网站,2个身份包括用户和 ...

  2. 基于javaweb+mysql的在线购物商城shop系统(仅前台购物)

    基于javaweb+mysql的在线购物商城shop系统(仅前台购物) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 ...

  3. 基于javaweb+SpringBoot+MyBatis在线购物商城shop系统(仅前台购物)

    基于javaweb+SpringBoot+MyBatis在线购物商城shop系统(仅前台购物) 开发工具:eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕 ...

  4. 基于javaweb的水果店商城超市系统(java+ssm+jsp+ajax+jquery+mysql)

    基于javaweb的水果店商城超市系统(java+ssm+jsp+ajax+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea ...

  5. 基于javaweb的网上图书商城系统(java+ssm+jsp+mysql+redis+jwt+shiro+rabbitmq+easyui)

    基于javaweb的网上图书商城系统(java+ssm+jsp+mysql+redis+jwt+shiro+rabbitmq+easyui) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥ ...

  6. JAVA化妆品销售网,区块链技术基于SSM的化妆品销售网站、基于JavaWeb的化妆品在线商城源码...

    第8179篇区块链技术文章区块链技术基于SSM的化妆品销售网站.基于JavaWeb的化妆品在线商城源码 需求分析 基于SSM技术设计实现一个化妆品销售网站, 支持商家在线售卖化妆品, 整个网站设计采用 ...

  7. 基于javaweb的在线蛋糕商城系统(java+jsp+jdbc+mysql)

    基于javaweb的在线蛋糕商城系统(java+jsp+jdbc+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/s ...

  8. 基于JavaWEB的在线电子书商城

    022基于JavaWEB的在线电子书商城(含文档) 开发环境: Jdk7(8)+Tomcat7(8)+Mysql+IntelliJ IDEA(Eclipse) 数据库: MySQL 技术: Sprin ...

  9. 基于javaweb的仿天猫商城系统(java+jsp+springboot+ssm+mysql)

    基于javaweb的仿天猫商城系统(java+jsp+springboot+ssm+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclipse/s ...

最新文章

  1. Fragment提交transaction导致state loss异常
  2. 苹果官方 Crash文件分析方法 (iOS系统Crash文件分析方法)
  3. Java虚拟机常量池和本地变量表、自己定义的数值自动装入常量池
  4. 基于zookeeper实现系统配置中心
  5. python合并两个数据框_python 学习的第五天 数据框合并
  6. 大学考试分数越高学分越多吗_大学的绩点和学分有什么用?影响学生毕业吗
  7. 300plc与组态王mpi通讯_S7-300与S7-200之间的MPI通信
  8. CCNA-第七篇-思科私有路由协议-EIGRP-初级
  9. django 1.8 官方文档翻译:6-5-1 Django中的测试
  10. 安装Linux虚拟机(一)
  11. 视唱练耳——调式调号听辨
  12. iOS 10诸如相机、相册、通讯录、麦克风、定位权限设置,防止奔溃或上架被拒
  13. 【2017年第3期】电信大数据在信用风险管理中的应用
  14. 美团配送和亚马逊AWS的异曲同工
  15. 包(package)与模块的导入--from与import
  16. 一个连接态DRX下的paging接收专利
  17. 【极客时间-SQL必知必会】学习笔记1-了解SQL
  18. 中文分词之11946组同义词
  19. wangeditor支持图片和视频上传
  20. 拼多多风波不断,上市是危机还是契机?_创成汇

热门文章

  1. ts文件转js(亲测有效)
  2. Ubuntu 新建用户 Shell 命令行显示异常
  3. 解决阿里云ECS安装Mysql失败:GPG密钥已安装,但是不适用于此软件包
  4. ESP8266 TCP客户端代码(自动连接,断开识别)
  5. 智能机器人建房子后房价走势_未来房价将迎来改变,智能机器人建房成香饽饽,碧桂园拉开新帷幕...
  6. jscc控制器说明书_JSCC精研SPC系列调速器
  7. 中国大陆手机微电子产业崛起F4
  8. java多线程与并发_漫画 | Java多线程与并发(一)
  9. 时间戳有什么作用,如何定义时间戳??
  10. 部署Redis高可用集群