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 防止重复提交
Servlet、Struts、SpringMVC对于表单重复提交的解决方案
主要为大家详细介绍了Spring mvc防止数据重复提交的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要为大家详细介绍了Spring MVC接口防数据篡改和重复提交,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
因此你不需要简单的重复拷贝您的业务对象的属性,表单对象中的非类型化的字符串只是处理无效的提交,或者合理的转换字符串。相反,直接绑定的方式更可取。 Spring的视图解析也非常灵活,控制器通常负责准备含有数据...
本篇文章主要介绍了springMVC中基于token防止表单重复提交方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、...
035-防止重复表单提交-弹簧-MVC
1.spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。 2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller. 3....
关闭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配置...
在spring mvc中如何实现 前后端数据的互通是通过Ajax+Json技术实现的。springmvc框架封装了原生mvc,视图层向业务层传递数据时需经过控制层。 4、单线程和多线程的区别 多线程即同时存在多个线程运行,比只有一个...
9-Struts高级部分(1)(解决重复提交、上传组件)笔记 10-Struts高级部分(2)(常用Action、验证框架、动态Form)笔记 J2EE框架_笔记_b: 11-留言管理程序_使用Struts + DAO完成笔记 12-Struts + DAO分页笔记 16-...
9-Struts高级部分(1)(解决重复提交、上传组件)笔记 10-Struts高级部分(2)(常用Action、验证框架、动态Form)笔记 J2EE框架_笔记_b: 11-留言管理程序_使用Struts + DAO完成笔记 12-Struts + DAO分页笔记 16-...
9-Struts高级部分(1)(解决重复提交、上传组件)笔记 10-Struts高级部分(2)(常用Action、验证框架、动态Form)笔记 J2EE框架_笔记_b: 11-留言管理程序_使用Struts + DAO完成笔记 12-Struts + DAO分页笔记 16-...
JAVA开发模板集合提供了一些在JAVA WEB开发中的开发案例.如有更好的建议,请在Issue / Pull Request提交,我会仔细阅读....使用Spring MVC和Javax Validation框架简化重复的参数校验代码,使用注解的方式比代码更加简化.
1-JSP+JDBC_假分页笔记.pdf 10-Struts高级部分(2)(常用Action、验证框架、动态Form)笔记.pdf 11-留言管理程序_使用Struts + DAO完成笔记.pdf ...9-Struts高级部分(1)(解决重复提交、上传组件)笔记.pdf
视图框架—Spring MVC;持久层框架—MyBatis 3;JS框架—jQuery;富文本—kindeditor 5、开发环境:建议开发者使用以下环境,这样避免版本带来的问题 IDE:eclipse,idea;DB:Mysql5.5;JDK:JAVA 7;tomcat:tomcat ...
本系统还采用Struts的Token机制和JavaScript技术实现绝对安全的防重复提交功能。 21。文章管理。可修改、删除文章。 22。评论管理。可回复、删除评论。 23。相片管理。可上传相片,设置主肖像,删除...
本系统还采用Struts的Token机制和JavaScript技术实现绝对安全的防重复提交功能。 21。文章管理。可修改、删除文章。 22。评论管理。可回复、删除评论。 23。相片管理。可上传相片,设置主肖像,删除...
本系统还采用Struts的Token机制和JavaScript技术实现绝对安全的防重复提交功能。 21。文章管理。可修改、删除文章。 22。评论管理。可回复、删除评论。 23。相片管理。可上传相片,设置主肖像,删除...