精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-11-16
请知道的详细说下,或者把文章的链接地址写下也好。 应用环境是tomcat,struts1.2,jsp,hibernate 下面是问题,请看到后能给一个解决方案。 1。如果点击一次提交按钮后,服务器开始处理,在后台的代码中使用struts的token机制控制重复提交。然后服务器处理完毕返回到一个新的列表页面。此时刷新页面,则服务器当作重复提交对待。 2。如果点击一次提交按钮后,服务器开始处理,在后台的代码中使用struts的token机制控制重复提交。然后服务器处理时发生一个异常,于是返回一个错误页面,告诉用户哪个字段有错误,然后用户点击返回按钮,返回上一个页面,再次提交页面时,用户器则把这次的提交当作了重复提交对待。 3。如果点击一次提交按钮后,服务器开始处理,在后台的代码中使用struts的token机制控制重复提交,服务器还没有处理完毕时,用户等不及了,再次单击提交按钮,则struts的token机制不会把此当作重复提交,而是会两样处理这次的提交。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-11-16
rusult类型更改一下就好了
|
|
返回顶楼 | |
发表时间:2007-11-16
lz用的是Struts1.2而不是2.0哦,所以没有Result只有forward。
1。如果点击一次提交按钮后,服务器开始处理,在后台的代码中使用struts的token机制控制重复提交。然后服务器处理完毕返回到一个新的列表页面。此时刷新页面,则服务器当作重复提交对待。 token机制就能处理呀? 2。如果点击一次提交按钮后,服务器开始处理,在后台的代码中使用struts的token机制控制重复提交。然后服务器处理时发生一个异常,于是返回一个错误页面,告诉用户哪个字段有错误,然后用户点击返回按钮,返回上一个页面,再次提交页面时,用户器则把这次的提交当作了重复提交对待。 重置token标记 3。如果点击一次提交按钮后,服务器开始处理,在后台的代码中使用struts的token机制控制重复提交,服务器还没有处理完毕时,用户等不及了,再次单击提交按钮,则struts的token机制不会把此当作重复提交,而是会两样处理这次的提交。 用户点击后把按钮设定为disable |
|
返回顶楼 | |
发表时间:2007-11-16
引用 2。如果点击一次提交按钮后,服务器开始处理,在后台的代码中使用struts的token机制控制重复提交。然后服务器处理时发生一个异常,于是返回一个错误页面,告诉用户哪个字段有错误,然后用户点击返回按钮,返回上一个页面,再次提交页面时,用户器则把这次的提交当作了重复提交对待。 重置token标记 可是点击返回按钮的时候,只是浏览器在起作用,没有到action中去,如何重置token? |
|
返回顶楼 | |
发表时间:2007-11-16
绝大多数情况是不需要使用token的.
我不知道token适用于什么情况,反正我也没用过.不过我想它既然存在,应该有道理的吧. 重复提交是个经典的老问题了,但是似乎于struts无关吧?你自己直接写jsp,或是servlet,不是照样存在这个问题吗? 这是个对MVC的理解的问题. 做完一个事情,比如处理表单提交,插入了一条记录.之后页面要流转到显示列表的页的时候,应该是一个 redirect,而不是forward. struts1 的forward 是可以设置的, 好象是 redirect=true,或着是 type=redirect ,具体我忘了.好久没用了. 设置了就自动是redirect了.. |
|
返回顶楼 | |
发表时间:2007-11-16
yyjn12 写道 绝大多数情况是不需要使用token的.
楼上,你没有看具体的应用环境,我的应用程序就是使用了struts1.2框架的。而struts又提供了解决这个重复提交的问题的机制。我不知道token适用于什么情况,反正我也没用过.不过我想它既然存在,应该有道理的吧. 重复提交是个经典的老问题了,但是似乎于struts无关吧?你自己直接写jsp,或是servlet,不是照样存在这个问题吗? 这是个对MVC的理解的问题. 做完一个事情,比如处理表单提交,插入了一条记录.之后页面要流转到显示列表的页的时候,应该是一个 redirect,而不是forward. struts1 的forward 是可以设置的, 好象是 redirect=true,或着是 type=redirect ,具体我忘了.好久没用了. 设置了就自动是redirect了.. |
|
返回顶楼 | |
发表时间:2007-11-17
我们是用了最笨的方法.是针对refresh页面时重复提交的问题.当进入一张表单时往session写个值设为true,提交后在action处理的时候往session里设这个值为false,在方法里判段它为true时才执行数据库等操作.就杜绝了重复提交.
|
|
返回顶楼 | |
发表时间:2007-11-28
两种方法都是可行的
1.使用token 2.forward设置redirect=true |
|
返回顶楼 | |
发表时间:2007-11-28
forward设置redirect=true有时刷新过快好像还能发生重复提交
token使用起来老是觉着不是十分顺手,但一般处理重复提交还是使用token,心里觉着踏实些 |
|
返回顶楼 | |
发表时间:2007-11-28
post 。。。action名。。。
|
|
返回顶楼 | |