一:模仿JD,在用户不登录的情况下,可以实现添加商品到购物车内。---将商品存放到cookie中
此处是商品详情页面-----点击加入购物车按钮的连接:端口:8090 参数:商品id 、 商品数量
在购物车模块的controller层代码
@pathVariable 注解可以获取URL 路径中的参数----(参数的名字要与 URL的参数一致)
@RequestParam 注解设置num的默认值为 1
HttpServletRequest request 、 HttpServletResponse response 是为了后面调用cookie
主要的逻辑思路:
1.从cookie中获取购物车列表
2.然后将购物车商品遍历,判断购物车中商品是否存在
3.如果找到商品,则让商品的数量 +1
4.如果没找到商品,就在购物车中添加新的商品信息,并且将购物车重新添加到cookie,然后返回到添加成功页面!
二:登录后,添加购物车模块。
大致逻辑:
1.对每一个购物车相关的操作,都进行一个用户是否登录的判断。
2.如果登录,将购物车信息存放到redis中。
3.如果没有登录则将购物车存放到cookie中。
4.这样就可以达到,两种方式处理购物车,如果用户登录了,则将购物车存放到redis中,并且将cookie中购物车与登录后的购物车进行合并处理,如果用户没有登录,则采用cookie的方式处理购物车。
三:用户登录拦截器模块
在taotao-cart-web 模块进行对用户登录拦截,获取用户登录信息(判断该用户是否登录)
创建拦截器类一定要去实现HandlerInterceptor接口--然后实现preHandle、 postHandle 、afterCompletion三个方法。
在本出,是要在preHandler的方法中实现对用户登录信息的拦截。也就是前处理方法:执行handler之前执行此方法。
来源:CSDN
作者:qq_40125268
链接:https://blog.csdn.net/qq_40125268/article/details/104906276