MVC购物车第一部分

之前给大家分享的都是些简单的购物车界面功能,每个用户和界面没有直接的关系,那么今天我们一起来学习一下,各个界面与用户有直接关系的购物车吧

一、数据库表格和效果图

这是数据库需要建立的表格,我们会发现这些表格都是有关联的,这样就可以添加用户和购物车的关联性

这里有写好的表格数据

create table car_user
(
    id       number primary key,
    account  varchar2(30) not null,
    password varchar(32)  not null
);

comment on column car_user.ID is '用户编号';
comment on column car_user.account is '用户账户';
comment on column car_user.password is '用户密码(MD5)';

create table car_goods
(
    id       number primary key,
    name     varchar2(20)                        not null,
    describe varchar2(100) default '此商品暂时没有介绍🤣' not null,
    price    number                              not null
);

comment on column car_goods.ID is '商品编号';
comment on column car_goods.name is '商品名称';
comment on column car_goods.describe is '商品描述';
comment on column car_goods.price is '用户价格';

create table car_order
(
    id      number primary key,
    user_id number not null,
    total   number not null
);

comment on column car_order.ID is '订单编号';
comment on column car_order.user_id is '谁的订单!';
comment on column car_order.total is '订单总价';

create table car_order_item
(
    id       number primary key,
    order_id number not null,
    goods_id number not null,
    quantity number not null,
    total    number not null
);

comment on column car_order_item.ID is '订单项编号';
comment on column car_order_item.order_id is '哪个订单!';
comment on column car_order_item.goods_id is '哪个商品!';
comment on column car_order_item.quantity is '下单数量';
comment on column car_order_item.total is '订单项总价';

comment on table car_user is '购物车用户表';
comment on table car_goods is '购物车商品表';
comment on table car_order is '购物车订单表';
comment on table car_order_item is '购物车订单项表';

create unique index car_user_account_idx on car_user (account);

insert into car_user
values (1, '[email protected]', 'ff9830c42660c1dd1942844f8069b74a');-- root123

insert into car_user
values (2, '[email protected]', 'e10adc3949ba59abbe56e057f20f883e');-- 123456

insert into car_goods
select 1, '丝袜奶茶', '冰冰娘娘,很好喝', 99
from dual
union
select 2, '勃勃奶茶', '啊~,好冰冰', 29
from dual
union
select 3, '蜜雪大补丁', '可以加个桃桃🍑', 59
from dual
union
select 4, '臭🐟咖啡', '人气最高', 88
from dual
union
select 5, '雪王咖啡', 'incredible taste', 999
from dual
union
select 6, '拉稀弹筒', '👌,就亿点点', 1
from dual;

insert into car_order_item
values (1, 1, 1, 2, 99 * 2);
insert into car_order_item
values (2, 1, 2, 3, 29 * 3);
insert into car_order_item
values (3, 1, 6, 100, 100);

insert into car_order
values (1, 1, 99 * 2 + 29 * 3 + 100);

insert into car_order_item
values (4, 2, 3, 2, 59 * 2);
insert into car_order_item
values (5, 2, 4, 3, 88 * 3);
insert into car_order_item
values (6, 2, 5, 100, 999 * 100);

insert into car_order
values (2, 2, 59 * 2 + 88 * 3 + 999 * 100);

select *
from car_user;
select *
from car_order;
select *
from car_order_item;
select *
from car_goods;

项目效果图

登录界面,记住数据库里的密码是加密的,如果输入错误会跳回登录界面

首页

 购物车界面(里面原先是没有数据的,这两个是我从首页添加过来的)

 可以进行增减(最多买五个,最少一个)

 

二、制作购物车功能

在制作前我们一定导入jar包(没有的话可以联系我哦)

项目文件

  

 1.实现登录功能

 创建一个专门写servlet的包,我们先在包中添加一个实现登录功能的类

在很多页面可能都会出现乱码问题,很多都会做登录验证,会如果每个都写的话就会很麻烦该怎么解决嘞?我们可以给项目添加一个过滤器

过滤器(Filter)有四种规则

  • 精准匹配 /a.jsp
  • 扩展名匹配  *.jsp
  • 路径匹配  /manager/*
  • 匹配所有  /*

我们为这个项目添加一个过滤器

过滤器流程

遇到 @WebFilter("/*")之类的一定要重启服务器,因为有可能识别不出来

需要注意一点:LoginFilter.java与LoginServlet.java中的名字要一样,如下

 

下面是哪个界面进行放行的判断,如果按照这种一个个进行判断,代码会写得过长,也会比较麻烦,我们可以进行改善

 改善方法:

建立一个集合,添加需要放行的页面

List<String> list=new ArrayList<>();
{
	list.add("/login.jsp");
	list.add("/login.do");
	list.add(".css");
	list.add(".js");
}

判断访问路径是否在list集合中

//获得路径
String path=req.getServletPath();
//判断访问路
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值