`
datoplay
  • 浏览: 1619259 次
文章分类
社区版块
存档分类
最新评论

防止表单多次的提交

 
阅读更多

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>

<%@taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>使用s:token防止重复提交</title>

</head>

<body>

<h3>使用s:token防止重复提交</h3>

<s:form action="pro">

<!-- 普通表单域 -->

<s:textfield name="book" key="book"/>

<!-- 用于防刷新的token -->

<s:token/>

<s:submit value="提交"/>

</s:form>

</body>

</html>

package cn.hnpi;

import com.opensymphony.xwork2.ActionSupport;

public class ProAction extends ActionSupport {

private String book;

public String getBook() {

return book;

}

public void setBook(String book) {

this.book = book;

}

}

在struts.Xml中的配置文件

<?xml version="1.0" encoding="GBK"?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"

"http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>

<constant name="struts.custom.i18n.resources" value="mess"/>

<constant name="struts.i18n.encoding" value="GBK"/>

<package name="lee" extends="struts-default">

<!-- 定义名为pro的Action,其实现类为lee.ProAction -->

<action name="pro" class="cn.hnpi.ProAction">

<!-- 使用系统默认的拦截器栈 -->

<interceptor-ref name="defaultStack"/>

<!-- 使用防刷新的token拦截器 -->

<interceptor-ref name="token"/>

<!-- 定义重复提交转向的视图,该逻辑视图名必须是invalid.token -->

<result name="invalid.token">/refresh.jsp</result>

<!-- 如果处理结果返回success,对应/show.jsp视图资源 -->

<result name="success">/show.jsp</result>

</action>

<action name="">

<result>.</result>

</action>

</package>

</struts>

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>防刷新测试</title>

</head>

<body>

用户正常提交,提交的书名为:${requestScope.book}

</body>

</html>

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>防刷新测试</title>

</head>

<body>

您的请求已被处理!请不要刷新页面

</body>

</html>

如果表单页面没有使用<s:token/>标签,则千万不要使用token拦截器,否则会导致无法提交表单

分享到:
评论

相关推荐

    防止用户重复提交表单的方法和组件.rar

    好友使用vue技术封装了一个专门用于提交表单和下载文件的“防抖按钮”,其实现原理和使用方法看这里 https://blog.csdn.net/PursueExcellence/article/details/103903139。

    Asp.net防止页面被多次提交

    Asp.net防止页面被多次提交

    preventDoubleClick:AngularJS指令可防止表单两次提交

    AngularJS指令可防止表单两次提交 设置 获取文件 下载并复制src/preventDoubleClick.js文件 在index.html中包含src/preventDoubleClick.js文件 在您的应用程序中添加添加preventDoubleClick作为依赖项 像这样的东西...

    修改禁止多次重复提交

    如何修改禁止多次重复提交

    几种防止表单重复提交的方法

    几种防止表单重复提交的方法 禁掉提交按钮。表单提交后使用Javascript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了。 我之前的文章曾说...

    struts2利用token防止表单重复提交(源代码)

    struts2防止表单重复提交,利用struts的拦截器tokenSession,轻轻松松解决表单重复提交的问题。 附件为源代码,后台延迟了3秒,可直接在web服务器下部署运行,输入用户名和密码后,多点几次提交按钮,然后看控制台...

    防止用户将表单重复提交的方法汇总

     几种防止表单重复提交的方法  1.禁掉提交按钮。表单提交后使用Javascript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了。  我之前的...

    element-ui如何防止重复提交的方法步骤

    先说对话框(Dialog)里的表单提交 错误方案 说起错误方案,比如,点击提交按钮,本地验证,验证通过立即让按钮不可点,这些没问题,而我的错误点概括是:在某个最后执行的回调函数的最后一行,我做了2个操作:1,...

    cf7-no-double-submit:联系表格7防止多次提交WordPress插件

    联系表格7防止多次提交WordPress插件 通过enablinig这个插件,当Contact Form 7仍在提交导致多次相同提交通过的表单时,它可以防止双击。 对于联系表7版本4.9或更高版本。 安装 通过此存储库下载此插件-单击“克隆或...

    ThinkPHP防止重复提交表单的方法实例分析

    导致表单重复提交的原因是:第一次提交的表单会被缓存到内存中,直到页面下次提交或页面关闭或转向其他页面时才消失。在自调用返回时,内存中的数据依然在,这时页面中的判断提交的代码依然可以检测到提交的值,顾会...

    ThinkPHP 防止表单重复提交的方法

    极端的情况,若用户在页面间切换多次,那么多点几次后退按钮很可能又回到了上一个表单页面。 解决办法是在http头中设置Cache-Control: no-cache, no-store。然而我尝试了无论是在页面head中添加 &lt;meta ...

    阻止表单提交按钮多次提交的完美解决方法

    另外,在提交事件发出后,最好将提交按钮设置为disabled,防止由于网络延时问题,让用户有机会进行多次点击重复提交。 onclick事件里面执行 $(this).attr(‘disabled’,’disabled’); 在点击一次后立马将按钮设置为...

    ASP.NET 防止按钮多次提交核心实现代码

    防止按钮多次提交通常都是在注册表单中提示时的一个小功能,具体实现如下,由此需求的朋友可以参考下

    Chrome Form多次提交表单问题的解决方法

    第一次提交可以,第二次提交就没有任何响应了。需要重新加载页面后才可以提交,而这个问题在Firefox,IE下没有出现。 马上Google了一下发现这是webkit内核浏览器的共有特性,这样做是为了防止表

    PHP防止表单重复提交的几种常用方法汇总

    本文较为详细的汇总了PHP防止表单重复提交的几种常用方法,在PHP程序开发中有着很高的实用价值。具体方法如下: 1. 使用JS让按钮在点击一次后禁用(disable)。采用这种方法可以防止多次点击的发生,实现方式较简单...

    PHP+Session防止表单重复提交的解决方法

    主要介绍了PHP+Session防止表单重复提交的解决方法,需要的朋友可以参考下

    Go实现防止多次提交表单

    if r.Method==GEt{//登录界面 crutime:=time.Now().Unix()//获取当前时间戳 h:=md5.New()//获取md5哈希接口 io.WriteString(h,strconv.FormatInt(crutime,10))//写入h中 token:=fmt.Sprintf(%x,h.Sum(nil))...

    Java怎样防止重复提交

    防止重复提交java解决  B/S结构的软件开发中,特别是在越大型的分布式应用中体现的越明显,后端...  2、当用户重复提交同一个任务操作时,后台服务接收并处理第一次提交的任务,后面提交不起作用(不转向也不提示)。

    常见表单重复提交问题整理及解决方法

    二、防止表单重复提交的方法 a&gt;禁掉提交按钮。表单提交后disabled现在的按钮或者取消该按钮的点击事件或者默认事件。这种方法防止心急的用户多次点击按钮。但有个问题,如果在客户端把Javascript给禁止掉,这种方法...

    JavaScript防止表单重复提交代码,指定时间内禁止重复点击.zip

    最近项目在做一个登录页的时候,为了避免用户的多次重复点击登录按钮发送请求,所以我在点击了按钮发送请求后,将设置按钮变灰并禁用,倒计时一段时间后又可重复点击,具体实现如下,有需要的小伙伴可以参考一下。

Global site tag (gtag.js) - Google Analytics