背景及简单的介绍
由于没有截图保存下来,所以这篇博客可能有点不生动,这是几天后进行回顾时写的记录,主要记录这次问题解决的过程,及一些漫谈思考
问题描述
写一个javaweb的网上商城,在购物车里对商品的数量增加一个,数据到数据库后,又返回了这个页面,形成了数据由页面到后端又返回此页面显示商品数量的一个回路。
暂且不提购物车里的数据在此时是否应该直接拿到数据库,还是一次次数量加一后,再一起拿到数据库,因为都会在刷新此页面的时候重复提交数据到后端,因此这个问题成了一个致命的bug,急需处理
处理过程
使用的环境
MVC三层开发,即模型、视图、控制器三层
页面视图层是jsp写的,然后传到servlet(控制层),servlet调用模型层的类写入数据库
首先,空指针
在这之前,是由于遇到了几个空指针的bug要处理,然后才引入了这次重复提交数据的问题的解决。
接着,还原案发现场
解决了空指针后,发现原来这个数据由页面前端到后端再回来的这个回路里,有几个入口和出口,然后才是这个回路。
进入查看我的购物车界面之前要通过控制层的servlet调用,然后将查出来的数据库的数据返回给页面
进入这个servlet的入口有两个:
入口1、在商品详情页面将商品加入购物车后,直接跳转到servlet,此时没有点击购物车里的商品数量加一件按钮,