第15章 防止表单重复提交
来源:互联网 发布:淘宝开店取名字 编辑:程序博客网 时间:2024/05/21 08:26
使用Token拦截器或者TokenSession拦截器
原理:当客户端请求页面时,让服务器生成一个唯一标记,并在服务器和表彰里各保存一份这个标记的副本。此后,在用户提交表彰的时候,表单里的标记将随着其他请求参数一起发送到服务器,服务器将对它收到的标记和它留存的标记进行比较,如果两者匹配,这次提交上来的表单则是有效的,服务器将对之做出必要的处理并重新设置一个标记。随后提交相同的表单就会失败,因为服务器上的标记已经重置。
15.1 标记管理
Token标签必须与Token TokenSession拦截器配合使用。在遇到重复提交的情况时,会返回“Invalid.token”结果并加上一个动作错误。出错消息为"The form has already been processed or no token was supplied, please try again."如果要修改默认消息,在配置文件中修改。TokenInterceptor.properties里面,位于/WEB-INF/classes/org/apache/struts2/intercetpor的子目录下。
struts.messages.invalid.token=You have submitted the form the second time.Please contact the administrator.
15.2 Token拦截器使用
动作申明:假如对pay_input动作使用该拦截器。
<package name="app15" extends="struts-default"> <action name="pay_input"> <result>/payment.jsp</result> </action> <action name="pay" class="app15.payment"> <interceptor-ref name="token" /> <interceptor-ref name="basicStack" /> <result name="invalid.token">/jsp/error.jsp</result> <result name="input">/jsp/error.jsp</result> <result>/jsp/thanks.jsp</result> </action></package>
表单里面:
<s:form action="pay"><s:token /><s:textfield name="amount" label="amount" /><s:submit /></s:form>
15.3 Token Session拦截器
同Token拦截器。
- 第15章 防止表单重复提交
- 防止表单重复提交
- 防止重复提交表单
- 防止表单重复提交
- 防止表单重复提交
- 防止表单重复提交
- 防止表单重复提交
- 防止表单重复提交
- 防止表单重复提交
- 防止表单重复提交
- 防止重复提交表单
- 防止表单重复提交
- 表单防止重复提交
- 防止表单重复提交!
- 防止表单重复提交
- 防止表单重复提交
- 防止表单重复提交
- 防止表单重复提交
- SSH2整合注意事项
- 简单选择排序
- trunc用法
- 实例iPhone编程入门教程-第四天
- 简单介绍一下windows8开发平台
- 第15章 防止表单重复提交
- domainservices.client.domainoperationexception:load operation failed for query错误的原因
- 用params关键字增强代码的可读性
- asp.net 错误跟踪与调试
- 实战LSMW
- 好的东西 存起来
- 写给我的父亲
- linux C 开发中重要的数据结构——结构体
- 一个简单的CI分页类