想请教一下,我的项目是SSH架构的
在插入数据的时候怎么实现幂等,书上写的是在<form action="xxx.do" method="get">中method用get就可以
可是我这么写的,还是不行啊
请教高人.xiexie

解决方案 »

  1.   


    就应该是get方式来实现幂等的请求阿,楼主说的不行是怎么不行?
      

  2.   

    就是我用"get"了,可还是不能实现幂等
    当我多次点击的时候,还是插入了多条重复数据
      

  3.   

    查看了很多幂等相关知识,发现楼主对幂等的概念理解有误!以下内容摘自
    http://www.tzwhx.com/newOperate/html/1/11/114/8351.html4. 正确地使用get和postW3C的官方建议是:当且仅当form是幂等(idempotent)的时候,使用get。幂等是一个数学上的术语,其定义是:对于一个函数f : D -> D,如果D中的所有x满足f (f x) = f x,那么这个函数是幂等的。HTTP specification(比如RFC 2616)中,将幂等解释为:多次相同请求产生的副作用,和一次请求的副作用相同。打个比方,如果你提交一个form会从Google上查询一个关键词,那么我们可以认为这个form是幂等的,因为1次提交和10次提交的副作用是差不多的(10次查询可能会多消耗一些电能);如果你提交一个form是订购一个终极大黄蜂(Utimate bumblebee),那么这就不是幂等的:要是你不小心多提交了1次form的话,你可能会被老婆乱骂,你不小心又提交了10次的话,你可能就破产了——一次提交和多次提交的副作用明显不同,所以这不是幂等的。所以,一般来说,如果提交这个请求纯粹只是从服务端获取数据而不进行其他操作,并且多次提交不会有明显的副作用,应该使用get。比如:    * 搜索引擎的查询:http://www.google.com/search?q=yandixin;
        * 分页:ArticleList.asp?Page=1。如果提交这个请求会产生其它操作和影响,就应该使用post。比如:    * 修改服务器上数据库中的数据;
        * 发送一封邮件;
        * 删除一个文件。