zoukankan      html  css  js  c++  java
  • 为什么注册页面刷新一次,数据库就多了一条数据?????

      

            web项目为什么点击注册按钮跳转不到注册页面?(上一篇博客)

      从上次注册页面能成功访问之后(上一篇博客),我就开始编写注册页面。最终成功的将用户名和密码插入到数据库中!

    但是问题百出!我登录刚刚注册的页面,系统就开始报错了!!

    nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
    	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75)
    	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:371)
    	at com.sun.proxy.$Proxy6.selectOne(Unknown Source)
    

      看到红色的字体我就猜到是登陆的时候从数据库查到了两个用户名!

    为什么会有两个用户名呢???去查了一下数据库,发现我刚才注册的用户名真的重复了!(用户名并不是主键,所以可以唯一)

    很怀疑为什么为是两个,于是我又注册了一个用户名,发现数据库里面也是两个。。。。

    很想不通,我注册的时候应该只会有一个用户名呀,无意中发现,每当我刷新一次页面,数据库就会多一条重复的记录。

     很费解为什么会这样!


    后来我发现了问题,就是当我完成注册,跳转到登录页面之后,URL是没有改变的!!!因为我用的是转发!     重定向和转发的区别这里就不细讲了。

    这里我只说明一下转发地址栏中的URL不会改变!!!

    所以,当我完成注册跳转到登录页面的时候,我的URL并没有改变,仍然是注册页面的URL。再加上我的请求时get请求,参数都在URL上。

    http://localhost:8080/springmvc_mybatis1110/login.action?usercode=123&password=123

    所以,每当我刷新一次页面,就会调用一次注册功能的接口,数据库就会多一条数据!

    那么问题找到了;

    下面来解决问题

    问题很简单,将转发改成重定向到登录页面,URL也会改成登录页面的URL,这样数据库里就不会莫名的增加数据了!

     

  • 相关阅读:
    金蝶数据库执行语句
    金蝶 更新价格分录表触发器
    金蝶触发器,生成条码信息
    SQL从中文中获取拼音首字母
    C语言 typedef用法
    这姑娘漂亮不,说实话,有糖吃
    条码开发的意义在哪里
    ERP开发,重点不在功能
    金蝶出入库数据库表里加字段后出现的问题解决
    解决金蝶未检测到K/3许可文件,并且该账套已超过演示版期限问题
  • 原文地址:https://www.cnblogs.com/ilovessf/p/7527054.html
Copyright © 2011-2022 走看看