主要的应用技术是三层架构,其中表现层(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,进入添加链接描述

353

被折叠的 条评论
为什么被折叠?



