<%@ 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拦截器,否则会导致无法提交表单
分享到:
相关推荐
好友使用vue技术封装了一个专门用于提交表单和下载文件的“防抖按钮”,其实现原理和使用方法看这里 https://blog.csdn.net/PursueExcellence/article/details/103903139。
Asp.net防止页面被多次提交
AngularJS指令可防止表单两次提交 设置 获取文件 下载并复制src/preventDoubleClick.js文件 在index.html中包含src/preventDoubleClick.js文件 在您的应用程序中添加添加preventDoubleClick作为依赖项 像这样的东西...
如何修改禁止多次重复提交
几种防止表单重复提交的方法 禁掉提交按钮。表单提交后使用Javascript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了。 我之前的文章曾说...
struts2防止表单重复提交,利用struts的拦截器tokenSession,轻轻松松解决表单重复提交的问题。 附件为源代码,后台延迟了3秒,可直接在web服务器下部署运行,输入用户名和密码后,多点几次提交按钮,然后看控制台...
几种防止表单重复提交的方法 1.禁掉提交按钮。表单提交后使用Javascript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了。 我之前的...
先说对话框(Dialog)里的表单提交 错误方案 说起错误方案,比如,点击提交按钮,本地验证,验证通过立即让按钮不可点,这些没问题,而我的错误点概括是:在某个最后执行的回调函数的最后一行,我做了2个操作:1,...
联系表格7防止多次提交WordPress插件 通过enablinig这个插件,当Contact Form 7仍在提交导致多次相同提交通过的表单时,它可以防止双击。 对于联系表7版本4.9或更高版本。 安装 通过此存储库下载此插件-单击“克隆或...
导致表单重复提交的原因是:第一次提交的表单会被缓存到内存中,直到页面下次提交或页面关闭或转向其他页面时才消失。在自调用返回时,内存中的数据依然在,这时页面中的判断提交的代码依然可以检测到提交的值,顾会...
极端的情况,若用户在页面间切换多次,那么多点几次后退按钮很可能又回到了上一个表单页面。 解决办法是在http头中设置Cache-Control: no-cache, no-store。然而我尝试了无论是在页面head中添加 <meta ...
另外,在提交事件发出后,最好将提交按钮设置为disabled,防止由于网络延时问题,让用户有机会进行多次点击重复提交。 onclick事件里面执行 $(this).attr(‘disabled’,’disabled’); 在点击一次后立马将按钮设置为...
防止按钮多次提交通常都是在注册表单中提示时的一个小功能,具体实现如下,由此需求的朋友可以参考下
第一次提交可以,第二次提交就没有任何响应了。需要重新加载页面后才可以提交,而这个问题在Firefox,IE下没有出现。 马上Google了一下发现这是webkit内核浏览器的共有特性,这样做是为了防止表
本文较为详细的汇总了PHP防止表单重复提交的几种常用方法,在PHP程序开发中有着很高的实用价值。具体方法如下: 1. 使用JS让按钮在点击一次后禁用(disable)。采用这种方法可以防止多次点击的发生,实现方式较简单...
主要介绍了PHP+Session防止表单重复提交的解决方法,需要的朋友可以参考下
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解决 B/S结构的软件开发中,特别是在越大型的分布式应用中体现的越明显,后端... 2、当用户重复提交同一个任务操作时,后台服务接收并处理第一次提交的任务,后面提交不起作用(不转向也不提示)。
二、防止表单重复提交的方法 a>禁掉提交按钮。表单提交后disabled现在的按钮或者取消该按钮的点击事件或者默认事件。这种方法防止心急的用户多次点击按钮。但有个问题,如果在客户端把Javascript给禁止掉,这种方法...
最近项目在做一个登录页的时候,为了避免用户的多次重复点击登录按钮发送请求,所以我在点击了按钮发送请求后,将设置按钮变灰并禁用,倒计时一段时间后又可重复点击,具体实现如下,有需要的小伙伴可以参考一下。