知识大全 JSP、Struts避免Form重复提交的几种方案

Posted

篇首语:闲散如酸醋,会软化精神的钙质;勤奋像火炬,能燃起智慧的火焰。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JSP、Struts避免Form重复提交的几种方案相关的知识,希望对你有一定的参考价值。

JSP、Struts避免Form重复提交的几种方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   javascript 设置一个变量 只允许提交一次

   还是javascript 将提交按钮或者image置为disable

  onsubmit= getElById( submitInput ) disabled = true; return true; >

   利用struts的同步令牌机制

  利用同步令牌(Token)机制来解决Web应用中重复提交的问题 Struts也给出了一个参考实现

  基本原理

  服务器端在处理到达的请求之前 会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较 看是否匹配 在处理完该请求后 且在答复发送给客户端之前 将会产生一个新的令牌 该令牌除传给客户端以外 也会将用户会话中保存的旧的令牌进行替换 这样如果用户回退到刚才的提交页面并再次提交的话 客户端传过来的令牌就和服务器端的令牌不一致 从而有效地防止了重复提交的发生    if (isTokenValid(request  true))    // your code here   return mapping findForward( success );    else    saveToken(request);   return mapping findForward( submitagain );      Struts根据用户会话ID和当前系统时间来生成一个唯一(对于每个会话)令牌的 具体实现可以参考TokenProcessor类中的generateToken()方法    //验证事务控制令牌 会自动根据session中标识生成一个隐含input代表令牌 防止两次提交

   在action中    //   // value= aa f fd c c c ae >   if (!isTokenValid(request))   errors add(ActionErrors GLOBAL_ERROR   new ActionError( error transaction token ));   resetToken(request); //删除session中的令牌     action有这样的一个方法生成令牌   protected String generateToken(HttpServletRequest request)    HttpSession session = request getSession();   try    byte id[] = session getId() getBytes();   byte now[] =   new Long(System currentTimeMillis()) toString() getBytes();   MessageDigest md = MessageDigest getInstance( MD );   md update(id);   md update(now);   return (toHex(md digest()));    catch (IllegalStateException e)    return (null);    catch (NoSuchAlgorithmException e)    return (null);        在更新的时候防止按钮重复点击 主要是用Session来做判断

  在JSP/Servlet中可以

cha138/Article/program/Java/ky/201311/28913

相关参考

知识大全 struts2中使用token避免重复提交

  在strutsxml中  <actionname=registerclass=sunxinstrutsactionRegisterAction>  <!配置异常映射当Regist

知识大全 解决jsp重复提交

  有几种方法在你的表单页里HEAD区加入这段代码:<METAHTTPEQUIV="pragma"CONTENT="nocache"><METAHTTPEQUIV="CacheCon

知识大全 解析php防止form重复提交的方法

本篇文章是对php防止form重复提交的方法进行了详细的分析介绍需要的朋友参考下   php防止表单重复提交实例复制代码代码如下:<?phpsession_start();$_SESS

知识大全 struts2中一个form多个提交的方法

  在很多Web应用中为了完成不同的工作一个HTMLform标签中可能有两个或多个submit按钮如下面的代码所示  <![if!supportLineBreakNewLine]>  &l

知识大全 struts利用Token防止用户重复提交

struts利用Token防止用户重复提交  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 用Struts的Token机制解决表单重复提交

用Struts的Token机制解决表单重复提交  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  S

知识大全 Struts2 国际化与防止刷新重复提交表单

Struts2国际化与防止刷新重复提交表单  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本实例

知识大全 JavaScript实现点击按钮后变灰避免多次重复提交

JavaScript实现点击按钮后变灰避免多次重复提交  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 在表单提交前进行验证的几种方式整理

为了减轻后台压力可以利用JavaScript在表单提交前对表单数据进行验证本文整理了常用的几种方式有需求的朋友可以参考下   在表单提交前进行验证的几种方式在Django中为了减轻后台压力可

知识大全 struts中token的使用方法

  很多时候要防止重复提交比如论坛在发表提问的时候要是不控制那就可以一直提交~  使用方法论坛为例  askdo为跳到提问页面的action  askjsp为提问页面  askokdo:为提问成功提交