`
AmwuYYGY
  • 浏览: 26747 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring mvc 重复提交

    博客分类:
  • JAVA
 
阅读更多
MARK:

Spring MVC如何防止重复提交?类似Struts Token机制!
首先,需要将继承了SimpleFormController之类的sessionForm设为true。这样,在显示一个新表单时,Spring会将 command存放在session中,而在提交表单时,Spring会从session中取出此command,随后立即从session中删除存放 command的attribute。如果发现在session中没有command,Spring将其断定为重复提交,转而执行 handleInvalidSubmit(request, response),可覆盖此方法负责防止重复提交的任务。

可以这么说,当setSessionForm(true)之后,如果没有先后经历显示表单、提交表单的过程,就会被认为是重复提交表单。

http://www.blogjava.net/paulwong/archive/2012/02/20/370375.html

import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;


public class FormControl extends SimpleFormController
{


	public FormControl()
	{
		super();
		this.setSessionForm(true);
	}

	@Override
	protected ModelAndView onSubmit(Object command) throws Exception
	{
		
		ModelAndView res = new ModelAndView("form","now",new Date());
		res.addObject("amwu", "28");
		
		return res;
	}

	@Override
	protected ModelAndView handleInvalidSubmit(HttpServletRequest request,
			HttpServletResponse response) throws Exception
	{
		System.out.println("handleInvalidSubmit(request, response)");
		return super.handleInvalidSubmit(request, response);
	}

	@Override
	protected Object formBackingObject(HttpServletRequest request)
			throws Exception
	{
		return request;
	}

	
	
}


<bean id="formControl" class="FormControl"></bean>
	<bean
		class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="mappings">
			<props>
				<prop key="/hello.html">springControl</prop>
				<prop key="/form.html">formControl</prop>
			</props>
		</property>
	</bean>



网上示例:
http://www.blogjava.net/liuwentao253/archive/2007/01/31/96982.html
分享到:
评论

相关推荐

    token-springMVC 防止重复提交

    token-springMVC 防止重复提交

    Servlet、Struts、SpringMVC对于表单重复提交的解决方案

    Servlet、Struts、SpringMVC对于表单重复提交的解决方案

    Spring mvc防止数据重复提交的方法

    主要为大家详细介绍了Spring mvc防止数据重复提交的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Spring MVC接口防数据篡改和重复提交

    主要为大家详细介绍了Spring MVC接口防数据篡改和重复提交,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    spring mvc 3.2 参考文档

    因此你不需要简单的重复拷贝您的业务对象的属性,表单对象中的非类型化的字符串只是处理无效的提交,或者合理的转换字符串。相反,直接绑定的方式更可取。 Spring的视图解析也非常灵活,控制器通常负责准备含有数据...

    springMVC中基于token防止表单重复提交方法

    本篇文章主要介绍了springMVC中基于token防止表单重复提交方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Java的重复提交工具(高分毕设).zip

    Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、...

    035-prevent-duplicate-form-submission-spring-mvc

    035-防止重复表单提交-弹簧-MVC

    Spring面试题

    1.spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。 2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller. 3....

    springboot参考指南

    关闭Spring MVC DispatcherServlet vii. 65.7. 关闭默认的MVC配置 Spring Boot参考指南 7 viii. 65.8. 自定义ViewResolvers v. 66. 日志 i. 66.1. 配置Logback ii. 66.2. 配置Log4j i. 66.2.1. 使用YAML或JSON配置...

    往届师兄师姐面试真题收集(Java相关岗位)

    在spring mvc中如何实现 前后端数据的互通是通过Ajax+Json技术实现的。springmvc框架封装了原生mvc,视图层向业务层传递数据时需经过控制层。 4、单线程和多线程的区别 多线程即同时存在多个线程运行,比只有一个...

    J2EE三大框架_笔记_a

    9-Struts高级部分(1)(解决重复提交、上传组件)笔记 10-Struts高级部分(2)(常用Action、验证框架、动态Form)笔记 J2EE框架_笔记_b: 11-留言管理程序_使用Struts + DAO完成笔记 12-Struts + DAO分页笔记 16-...

    J2EE框架_笔记_b

    9-Struts高级部分(1)(解决重复提交、上传组件)笔记 10-Struts高级部分(2)(常用Action、验证框架、动态Form)笔记 J2EE框架_笔记_b: 11-留言管理程序_使用Struts + DAO完成笔记 12-Struts + DAO分页笔记 16-...

    J2EE框架_笔记_c

    9-Struts高级部分(1)(解决重复提交、上传组件)笔记 10-Struts高级部分(2)(常用Action、验证框架、动态Form)笔记 J2EE框架_笔记_b: 11-留言管理程序_使用Struts + DAO完成笔记 12-Struts + DAO分页笔记 16-...

    template-collection:Java Web开发模板集合

    JAVA开发模板集合提供了一些在JAVA WEB开发中的开发案例.如有更好的建议,请在Issue / Pull Request提交,我会仔细阅读....使用Spring MVC和Javax Validation框架简化重复的参数校验代码,使用注解的方式比代码更加简化.

    javaEE框架笔记,识货人下

    1-JSP+JDBC_假分页笔记.pdf 10-Struts高级部分(2)(常用Action、验证框架、动态Form)笔记.pdf 11-留言管理程序_使用Struts + DAO完成笔记.pdf ...9-Struts高级部分(1)(解决重复提交、上传组件)笔记.pdf

    因酷时代(inxedu)在线教育系统源码 BecauseCoolTimesInlineEducation.rar

    视图框架—Spring MVC;持久层框架—MyBatis 3;JS框架—jQuery;富文本—kindeditor 5、开发环境:建议开发者使用以下环境,这样避免版本带来的问题 IDE:eclipse,idea;DB:Mysql5.5;JDK:JAVA 7;tomcat:tomcat ...

    火炬博客系统7

    本系统还采用Struts的Token机制和JavaScript技术实现绝对安全的防重复提交功能。 21。文章管理。可修改、删除文章。 22。评论管理。可回复、删除评论。 23。相片管理。可上传相片,设置主肖像,删除...

    火炬博客系统6

    本系统还采用Struts的Token机制和JavaScript技术实现绝对安全的防重复提交功能。 21。文章管理。可修改、删除文章。 22。评论管理。可回复、删除评论。 23。相片管理。可上传相片,设置主肖像,删除...

    火炬博客系统5

    本系统还采用Struts的Token机制和JavaScript技术实现绝对安全的防重复提交功能。 21。文章管理。可修改、删除文章。 22。评论管理。可回复、删除评论。 23。相片管理。可上传相片,设置主肖像,删除...

Global site tag (gtag.js) - Google Analytics