请教:spring mvc防止重复提交

问题描述

各位高手,请指教:我现在项目用到springmvccontroller是用注解方式实现的对表单验证也是用注解方式如何验证失败需要表单回写的以上功能都没什么问题,现在问题是如何防止表单重复提交?controllerdemo:@RequestMapping("/adAddsubmit.html")publicModelAndViewaddsubmit(HttpServletRequestrequest,@ModelAttribute("adInfoForm")@ValidfinalAdInfoFormadInfoForm,finalBindingResultresult){请指教,谢谢!

解决方案

解决方案二:
可以写一个令牌放到session里面在服务器处理请求的时候会话中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧的令牌进行替换。这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌就和服务器端的令牌不一致,从而有效地防止了重复提交的发生。
解决方案三:
如果web项目分布式发布在多个tomcat中,用session来存储令牌,会不会有不能命中的情况??如果web项目只布署在一个tomcat中,当然不会有这个问题引用1楼miaomiao_j的回复:

可以写一个令牌放到session里面在服务器处理请求的时候会话中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧的令牌进行替换。这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌就和服务器端的令牌不一致,从而有效地防止了重复提交的发……

解决方案四:
引用2楼huqing2010的回复:

如果web项目分布式发布在多个tomcat中,用session来存储令牌,会不会有不能命中的情况??如果web项目只布署在一个tomcat中,当然不会有这个问题引用1楼miaomiao_j的回复:可以写一个令牌放到session里面在服务器处理请求的时候会话中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端……

换cookie?
解决方案五:
引用2楼huqing2010的回复:

如果web项目分布式发布在多个tomcat中,用session来存储令牌,会不会有不能命中的情况??如果web项目只布署在一个tomcat中,当然不会有这个问题引用1楼miaomiao_j的回复:可以写一个令牌放到session里面在服务器处理请求的时候会话中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客……

那你用uuid编码吧这样就绝对不会有重复的令牌了
解决方案六:
该回复于2011-06-03 08:41:55被版主删除

时间: 2024-08-24 11:59:44

请教:spring mvc防止重复提交的相关文章

spring mvc 防止重复提交表单的两种方法,推荐第二种

第一种方法:判断session中保存的token 比较麻烦,每次在提交表单时都必须传入上次的token.而且当一个页面使用ajax时,多个表单提交就会有问题. 注解Token代码: package com.thinkgem.jeesite.common.repeat_form_validator; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.ann

spring mvc 数据绑定问题 提交表单提示HTTP status 400, The request sent by the client was syntactically incorrect

我们在spring mvc 中controller方法中的参数,spring mvc会自动为我们进行数据绑定. spring mvc 方法中不一定要全部都有 form表单提交的属性, 也可以有 请求属性中 没有的参数(这时候只会把对应不上的参数设为null),这两种情况都不会报错. 但是有几种情况会报错,可能会提示HTTP status 400,  The request sent by the client was syntactically incorrect,而且此时如果加断点你会发现根本

Spring MVC表单提交中文数据出现乱码

原文:http://bigcat.easymorse.com/?p=474 项目中用的是spirng mvc3.0.2.RELEASE版本,涉及到中文表单数据的提交.之前blogspring解决中文乱码问题解决了中文表单数据出现乱码的问题,这次索性把配置文件copy过来,运行项目测试了一下,还是乱码.更改了fiilter顺序,问题依然存在,google了一下,按照文档中的说法将encoding的值改为了UTF-8,问题解决了.顺便贴一下配置文件: <filter>      <filte

请教spring mvc 中怎样给命令bean绑定级联菜单

问题描述 想做一个级联菜单,包括,县区,乡镇,村三级怎样绑定到springmvccommandbean 解决方案 解决方案二:一般的html表单元素select有一个name属性那么springmvc中<form:select>这个标签有没有name属性??<selectname="county"onChange="selectjd()"style="width:80"><optionvalue='0'>不限-

spring json-spring mvc 表单提交问题 请教

问题描述 spring mvc 表单提交问题 请教 请先参考附图.. 请教问题如下: 1.保存时,标识1 的基本信息 和 标识2 的订单明细信息一块提交保存么? 2.如果上述的标识1 和 标识2 的信息一块保存,怎么保存? 个人经历: spring 的controller 如果是如下的一般(非接收json)方式,如下: @RequestMapping(value = "create", method = RequestMethod.POST) @ResponseBody public

[Spring MVC] -简单表单提交实例_java

Spring MVC自带的表单标签比较简单,很多时候需要借助EL和JSTL来完成. 下面是一个比较简单的表单提交页面功能:  1.User model package com.my.controller.bean; import java.util.Date; import java.util.List; import javax.validation.constraints.Future; import javax.validation.constraints.Max; import java

Spring MVC拦截器+注解方式实现防止表单重复提交

原理:在新建页面中Session保存token随机码,当保存时验证,通过后删除,当再次点击保存时由于服务器端的Session中已经不存在了,所有无法验证通过. 1.新建注解: ? /**  * <p>  * 防止重复提交注解,用于方法上<br/>  * 在新建页面方法上,设置needSaveToken()为true,此时拦截器会在Session中保存一个token,  * 同时需要在新建的页面中添加  * <input type="hidden" name

spring mvc 问题请教 controller 页面参数

问题描述 spring mvc 问题请教 controller 页面参数 操作的实体contact(联系人) ContactController 里面有两个方法: // "/contact" 是默认调用的处理方法 @RequestMapping(method = RequestMethod.GET) public String list( @RequestParam(value = "page", defaultValue = "1") int

ajax spring-ajax方式提交表单,spring mvc的Controller中怎么不能返回视图

问题描述 ajax方式提交表单,spring mvc的Controller中怎么不能返回视图 ajax请求到springmvc的Controller后,请求成功后为什么不跳转到jsp?就是这句:return new ModelAndView(""/sys/selectAccount"");不用ajax请求就可以 解决方案 使用ajax提交的请求 控制器中的重定向 或者请求转发都是无效的 ajax要跳转页面 只能把你要跳转的页面发送到前端 前端ajax的回调函数使用前