`
gjf450005950
  • 浏览: 20087 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring MVC中防止Form重复提交

 
阅读更多

环境: UI:easyui、Spring3.0、hibernate3

问题:ajax封装spring form标记内所有标记、提交至inser.do或update.do方法、某些情况下(网络环境差)发生单据重复创建或重复执行统一方法数次。

要求:一个方法未执行完毕不允许再次提交表单、页面不跳转


status2做法:s:token标签加配拦截器

在Form创建前生成一个唯一编号放入Session中(HashMap存储)同时放入表单中,之后跳转到其他JSP或Action,执行Action前拦截器拦截如果Session中有Token,表示第一次提交,如果没有表示重复提交,第一次提交后立即将Seesion中Token删除,如果是页面不跳转,继续修改内容,则次方法不可行。


Spring 拦截器:

笨方法:Form提交附加一个Token(唯一编号),拦截器DenyDuplicateFormSubmitInterceptor方法继承HandlerInterceptorAdapter类,覆写preHandle方法,将Token放入Session中,等待方法执行完毕,覆写postHandle方法中将Token删除。执行方法前拦截 ,Token put到Session,使用synchronized。执行方法前搜索Session中Token是否存在,不存在放行,存在不放行(重复提交返回false)


效率和功能测试中....

分享到:
评论

相关推荐

    Spring MVC表单标签库

    - 如果有错误,Spring MVC会自动将错误信息绑定到模型中,然后返回到表单页面,`<form:errors>`标签会显示这些错误。 - 如果一切正常,控制器会处理数据并重定向到新的页面或者更新视图。 4. **表单标签实例** ...

    Spring web MVC和spring 2.0 form tag解说

    总结,Spring Web MVC和Spring 2.0 Form Tag的结合,使得在Java Web开发中处理表单和模型数据变得更加简洁高效。通过使用Form Tag,开发者可以专注于业务逻辑,而不必过多关注表单的底层细节,提高了开发效率和代码...

    spring mvc

    7. **Form Handling**: Spring MVC 提供了强大的表单处理能力,包括自动数据绑定、数据校验等功能。通过@Valid可以进行数据验证,@RequestParam和@PathVariable用于获取请求参数。 8. **Interceptors**: 拦截器是...

    Spring MVC学习指南

    本文将详细介绍 Spring MVC 的核心流程及其在一个典型登录示例中的应用。 #### 二、MVC 设计模式的关键流程 在深入探讨 Spring MVC 之前,我们先简要回顾一下 MVC 设计模式的关键流程: 1. **收集页面输入参数**...

    Spring MVC 文件上传下载 后端 - Java.zip

    在Spring MVC框架中,文件上传和下载是常见的功能需求,特别是在构建Web应用程序时。这个压缩包文件"Spring MVC 文件上传下载 后端 - Java.zip"包含的文档可能详细阐述了如何在Java后端实现这些功能。以下是关于...

    spring mvc文件上传实现进度条

    在Spring MVC框架中,文件上传是一项常见的功能,而实现文件上传进度条则能提供更好的用户体验。这个场景通常涉及到前端的JavaScript或jQuery库(如jQuery File Upload)与后端的Spring MVC控制器之间的交互,以及...

    Spring下的AJAX和Form表单提交及单/多方法控制器比较

    在本文中,我们将探讨在Spring框架下,使用AJAX与传统Form表单提交的区别,以及单方法控制器和多方法控制器的使用场景。首先,我们来看看AJAX提交与Form表单提交的基本概念。 **AJAX(Asynchronous JavaScript and ...

    Spring MVC 中文资料

    Spring MVC 作为一款优秀的模型-视图-控制器(MVC)框架,在实际应用中展现出了诸多优点,尤其在其3.0版本之后,越来越多的开发团队选择采用 Spring MVC。 1. **学习难度低**:相较于 Struts2,Spring MVC 的学习...

    spring mvc上传文件

    在本文中,我们将深入探讨如何使用Spring MVC框架与Ajax技术结合来实现文件上传的功能。Spring MVC是Spring框架的一部分,提供了一种模型-视图-控制器(MVC)架构模式,用于构建Web应用程序。Ajax(Asynchronous ...

    Spring MVC示例

    文件上传通常使用了Spring MVC的`CommonsMultipartResolver`,这是一个多部分解析器,能处理HTTP请求中的multipart/form-data类型,支持文件上传。下载则通过设置响应头的Content-Disposition属性,指导浏览器以...

    Spring MVC请求参数与响应结果全局加密和解密详解

    在本文中,我们将详细介绍Spring MVC请求参数与响应结果全局加密和解密的相关知识点,包括请求参数的加密和解密、响应结果的加密和解密、ContentType的处理等。 首先,让我们了解一下请求参数的加密和解密。为了...

    spring-mvc-showcase

    当表单提交时,Spring MVC会自动将请求参数与Model对象的属性进行绑定。 七、异常处理与国际化 Spring MVC提供了全局和局部的异常处理器,如@ControllerAdvice和@ExceptionHandler,可以统一处理程序中的异常。...

    spring mvc标签使用指南

    在Spring MVC框架中,表单标签库为开发者提供了一种便捷的方式来处理HTML表单,使得在JSP页面中创建和管理表单元素更加简洁。这些标签是Spring Web MVC模块的一部分,能够与Spring的模型绑定机制无缝集成,简化了...

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

    3. **Spring的拦截器(Interceptor)**:可以自定义拦截器,实现`HandlerInterceptor`接口,其中的`postHandle()`方法可以用来处理表单提交后的状态,防止重复提交。 4. **令牌(Token)机制**:与Servlet中的令牌...

    layui 图片上传+表单提交+ Spring MVC的实例

    在本实例中,我们主要探讨了如何利用Layui库进行图片上传,同时结合表单提交和Spring MVC框架实现后端处理。Layui是一个轻量级的前端组件库,提供了丰富的UI组件,包括上传功能。以下是具体的知识点: 1. **Layui...

    Spring MVC实现文件的上传下载

    在Spring MVC中实现文件的上传和下载是常见的需求,这涉及到处理multipart/form-data类型的表单数据,以及对文件的存储和读取操作。 首先,让我们了解文件上传的基本流程。当用户通过表单提交带有文件的请求时,...

    spring mvc 上传文件显示进度

    在Spring MVC中实现文件上传并显示进度是一项常见的需求,特别是在用户需要等待较长时间的大型文件上传时。这个功能可以通过监听文件上传的进度并在前端实时更新来提升用户体验。下面将详细介绍如何利用Spring MVC...

    Spring mvc 入门向导

    在这个Spring MVC入门向导中,我们将深入探讨如何配置开发环境、理解Spring MVC的架构以及构建Web Store项目。 首先,配置Spring开发环境至关重要。这包括安装Java Development Kit (JDK),设置环境变量以确保Java...

    struts1原理,struts2原理,spring mvc原理,struts1和struts2,struts和spring mvc

    Struts、Spring MVC和Struts2是Java Web开发中三个重要的MVC框架,它们都用于构建基于模型-视图-控制器(MVC)设计模式的Web应用程序。下面将分别介绍这三个框架的工作原理,并进行对比。 **Struts1原理:** Struts...

Global site tag (gtag.js) - Google Analytics