关于指令牌-一个有趣的帖子
2009-04-14 16:06
274 查看
基本原理:
服务器端在处理到达的请求之前,会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧的令牌进行替换。这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌就和服务器端的令牌不一致,从而有效地防止了重复提交的发生。
找一般的流程中插入个中间的action
多写一个action如nonoaction
在nonoaction中 this.saveToken(request); //设置指令牌 return 跳转到执行逻辑功能的action中如doaction |
在doaction中 ...... if(this.isTokenValid(request)) //如果指令牌相同 {..... ...实现功能的代码 this.resetToken(request);//取消指令牌 }else //执行else说明提交是重复提交 { 可以跳转回首页.并报错如写 ActionMessages errors= new ActionMessagers(); errors.add(“token”,new ActionMessages(“token”)); //可以把错误信息写在资源文件中然后显示 this.saveErrors(return.errors); //保持错误信息 跳转…. } |
相关文章推荐
- 一个有趣的函数——关于时间
- 转的一个帖子 关于CreateBitmap
- 从别人的一个“如何防止SQL注入“的帖子联想出来的一个有趣的解决方案”
- C++ Primer----一个关于 vector 的有趣的问题
- 一个关于list的有趣的问题
- [置顶] 关于虚函数的一个有趣的故事跟大家分享下。
- 百度知道上的一个帖子,感觉有些意思(关于 星际争霸)
- 关于<context:property-placeholder>的一个有趣现象
- 今天需要获取一个网站的web服务反馈回来的数据,找到份不错的帖子关于WebClient类的使用,记录下来·
- 关于asp.net1.0升级到asp.net2.0时发现的一个有趣的问题
- PHP关于变量声明的一个有趣的实验
- 关于CacheLookup一个有趣的问题
- 一个很有趣的关于线程锁的问题
- 关于继承和接口的一个非常有趣的比喻
- (转载)一个有趣的问题:关于Java中的Integer
- 今天看到了一个关于学习英语的帖子,学习下
- C++ Primer----一个关于 vector 的有趣的问题
- 一个不错的关于mysql和posgresql比较的帖子
- 关于数据类型Char(看了论坛的帖子后自己写的)——原来一个中文字在java中也是一个char
- 关于 IOCP 整合 SSL 的一个帖子