Jfinal token拦截器另类实现,防止表单重复提交

大部分的操作和jfinal原来的是相似的

  1. 在跳转到view之前,生成token
createToken("jockillerToken", 30*60);

2.在页面中加入隐藏域,内容如下

<input type="hidden" name="jockillerToken" value="${jockillerToken}"/>

3.定义token拦截器,这就是唯一的一点不同的地方

/**
 * 防止表单重复提交
 * @author jockiller_xuchg
 *
 */
public class TokenInterceptor implements Interceptor{
 @Override
 public void intercept(Invocation inv) {
  boolean token = com.jfinal.token.TokenManager.validateToken(inv.getController(), "jockillerToken");
  if(!token){
   inv.invoke();
  }else{
   inv.getController().renderText("请不要重复提交");
  }
 }
}

如果,是重复提交,ajax的回调函数中会接受到"请不要重复提交"

4.在form条的action方法上面加上

Before(value = {TokenInterceptor .class })

测试一下吧..

时间: 2024-10-11 07:04:02

Jfinal token拦截器另类实现,防止表单重复提交的相关文章

struts2 自带的 token防止表单重复提交拦截器

在struts2中,我们可以利用struts2自带的token拦截器轻松实现防止表单重复提交功能! 1. 在相应的action配置中增加:  <interceptor-ref name="token"></interceptor-ref> <result name="invalid.token">/error.jsp</result> 2. 增加error.jsp文件,代码如下:  <h1>禁止重复提交&l

7、struts2 案例( 模型驱动、 防止表单重复提交--拦截器 、数据回显 、值栈 、 OGNL表达式综合运用)

struts2 案例 技术点: 模型驱动 防止表单重复提交–拦截器 数据回显 值栈 OGNL表达式 通配符.路径匹配原则.常量 数据处理的集中方式 请求数据自动封装以及类型转换 1.导包 c3p0-0.9.1.2.jar commons-dbutils-1.6.jar commons-fileupload-1.2.2.jar commons-io-2.0.1.jar commons-lang3-3.1.jar freemarker-2.3.19.jar javassist-3.11.0.GA.j

Struts2中防止表单重复提交

一.防止表单的重复提交 1.在表单中加入<s:token/>标签 2.在动作类中加入token的拦截器<interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="token"></interceptor-ref> 3.增加一个名称为invalid.token的结果视图<result name="

Struts2中解决表单重复提交

3. 表单的重复提交问题 1). 什么是表单的重复提交 > 在不刷新表单页面的前提下:  >> 多次点击提交按钮 >> 已经提交成功, 按 "回退" 之后, 再点击 "提交按钮". >> 在控制器响应页面的形式为转发情况下,若已经提交成功, 然后点击 "刷新(F5)" > 注意: >> 若刷新表单页面, 再提交表单不算重复提交 >> 若使用的是 redirect 的响应类型,

struts2如何防止表单重复提交

struts2解决表单重复提交问题方法: 1.在s:form 标签中加入s:token标签 1)会生成一个隐藏域, 2)在session中添加一个属性值 3)隐藏域中的值和session中的值是一样的 2.使用token拦截器或者是tokenSession拦截器 这两个拦截器不在默认的拦截器栈中,需要手工配置一下 使用token拦截器,需要配置一个invalid.token的result 使用tokenSession拦截器不用配置任何的result 3.token VS tokenSession

Struts防止表单重复提交

1.什么是表单重复提交 > 在不刷新表单页面的前提下:         >> 多次点击提交按钮        >> 已经提交成功, 按 "回退" 之后, 再点击 "提交按钮".        >> 在控制器响应页面的形式为转发情况下,若已经提交成功, 然后点击 "刷新(F5)" > 注意:        >> 若刷新表单页面, 再提交表单不算重复提交        >> 若使

Struts2系列:(13)防表单重复提交(token + 拦截器)

1.原理 服务器端和客户端通过token(令牌)来进行验证: (1)Browser向Tomcat服务器请求填写表单 (2)Tomcat服务器将带有token的表单返回给Browser (3)浏览器端在提交时,将form和token一起发送到服务器 (4)Tomcat服务器对Browser进行验证 2.基本步骤 基本步骤如下: 第一步:写好Action,在struts.xml为接受该表单提交请求的action配置token拦截器[服务器] <action name="student_*&qu

php通过token验证表单重复提交

PHP防止重复提交表单 2016-11-08 轻松学PHP 我们提交表单的时候,不能忽视的一个限制是防止用户重复提交表单,因为有可能用户连续点击了提交按钮或者是攻击者恶意提交数据,那么我们在提交数据后的处理如修改或添加数据到数据库时就会惹上麻烦. 那么如何规避这中重复提交表单的现象出现呢?我们可以从很多方面入手,首先从前端做限制.前端JavaScript在按钮被点击一次后禁用,即disabled,这个方法简单的防止了多次点击提交按钮,但是缺点是如果用户禁用了javascript脚本则失效.第二,

PHP简单利用token防止表单重复提交

<?php /* * PHP简单利用token防止表单重复提交 * 此处理方法纯粹是为了给初学者参考 */ session_start(); function set_token() { $_SESSION['token'] = md5(microtime(true)); } function valid_token() { $return = $_REQUEST['token'] === $_SESSION['token'] ? true : false; set_token(); retur