前言
1.一周没有更新了,主要是不知道大家想要了解哪方面的知识。
2.希望大家可以把想要了解的内容私信或者评论告诉我,我一定努力为大家出对应的详细的介绍。
3.今天就来说一下如何通过Cookie来实现购物车。
应用场景
1.通常来说,如果我们的数据量少,用户量少,我们完全可以将购物车写到数据库中 ,但是当用户量一旦变大,数据库负担很重很容易崩掉。
2.当然也可以使用Session来实现购物车,但是有个缺点就是会占用大量的服务器资源,导致的结果可能比数据库崩掉更严重。
3.也可以使用一些中间件来实现,但是也是相当占用资源。
4.所以我认为使用Cookie是一种非常有效且速度极快的一种实现方式。
应用难点
1.我们知道,在Java中Cookie的数据类型只能是String,但是我们要存储的可能并不只有这一种类型。
2.我们在购物车中,一般需要放置商品的信息以及对应的数量,在用户提交订单后在数据库中生成对应的订单。
3.我们需要解决的难点就是如何拼串、解读字符串中我们需要的数据。
代码实现
1.我们此次为了方便演示,直接在Controller中实现逻辑代码。
2.首先我们创建CartVo.java,该类中包含我们购物车所需要的所有信息。
CartVo.java
3.接下来我们来编写实现购物车需要工具方法。
a. 首先我们创建购物车Cookie,判断是否存在名为“cart”的Cookie,如果存在直接使用,否则就创建名为“cart”的Cookie。
b.获取Cookie 中的购物车商品列表,为了避免抛出异常,我们同样先判断是否存在Cookie。
c.接下来我们写一个方法,用来制作Cookie中存储的商品列表的value,也就是将商品数据拼串。
4.以上我们算是将我们在操作Cookie时需要的方法编写完成了,接下来实现我们的CartController.java来实现我们购物车的增、删、改、清的方法。
a.导入我们需要的包
b.我们来编写添加商品至购物车当中,当购物车中存在相同商品,则将其数量加1。
c.获取购物车列表。
d.清空购物车。
e.根据ID删除购物车中的商品,即点击减号减少商品。首先需要判断购物车中商品数量,如果数量大于1则数量减1,否则直接从购物车中删除该商品。
5.直接调用Controller即可。
最后
1.前台以及数据访问层我们就不做过多的赘述。大家可以自由发挥,当然Cookie还有很多的操作可以进行拓展,大家如果有什么好的想法可以告诉我。
2.如前言所说,最近也是想不到有什么好的内容可以分享给大家,如果大家有什么想要了解的,可以告诉我。
3.感谢大家的关注和阅读,希望日后可以给出更多的好的文章。