刷新页面重复提交问题的解决,及其衍生的思考

本文记录了一个javaweb商城中遇到的购物车重复提交数据问题的解决过程。在用户增加商品数量后刷新页面导致数据重复提交,通过分析入口和出口,设置操作值判断入口来源,避免了重复提交。同时,对数据回路的高效传递进行了讨论。
摘要由CSDN通过智能技术生成

背景及简单的介绍

由于没有截图保存下来,所以这篇博客可能有点不生动,这是几天后进行回顾时写的记录,主要记录这次问题解决的过程,及一些漫谈思考

问题描述

写一个javaweb的网上商城,在购物车里对商品的数量增加一个,数据到数据库后,又返回了这个页面,形成了数据由页面到后端又返回此页面显示商品数量的一个回路。
暂且不提购物车里的数据在此时是否应该直接拿到数据库,还是一次次数量加一后,再一起拿到数据库,因为都会在刷新此页面的时候重复提交数据到后端,因此这个问题成了一个致命的bug,急需处理

处理过程

使用的环境

MVC三层开发,即模型、视图、控制器三层
页面视图层是jsp写的,然后传到servlet(控制层),servlet调用模型层的类写入数据库

首先,空指针

在这之前,是由于遇到了几个空指针的bug要处理,然后才引入了这次重复提交数据的问题的解决。

接着,还原案发现场

解决了空指针后,发现原来这个数据由页面前端到后端再回来的这个回路里,有几个入口和出口,然后才是这个回路。
进入查看我的购物车界面之前要通过控制层的servlet调用,然后将查出来的数据库的数据返回给页面

进入这个servlet的入口有两个:

入口1、在商品详情页面将商品加入购物车后,直接跳转到servlet,此时没有点击购物车里的商品数量加一件按钮,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值