文档章节

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

厌恶自己
 厌恶自己
发布于 2015/07/12 10:50
字数 226
阅读 2327
收藏 15

由于页面部分使用的div+ajax方式局部刷新,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 })

测试一下吧..

© 著作权归作者所有

厌恶自己
粉丝 1
博文 6
码字总数 1532
作品 0
昌平
程序员
私信 提问
加载中

评论(1)

yoqu
yoqu
用Before(TokenInterceptor .class)偷懒13
2017-05-07日志

1,中午到公司继续学习AngularJS和Jfinal的框架的整合,做出了基本的单表的增删改查功能的实现,实现了页面刷新的功能。 2,后端校验编写并在页面实验成功,但还未找到前端从校验器获得MSG的...

麦兜鱼丸
2017/05/07
1
0
Jfinal文件上传,需要在拦截器里接收参数

项目中需要提供token去验证用户,这是背景。 Jfinal文件上传需要multipart/form-data(posted content type),那么如何在拦截器中如何接收token参数 3.【问】:当from加上属性enctype="multip...

2015/08/29
1K
3
jfinal的token的错误问题

后台整了个防止重复登录的验证,前台cope了一下,结果token 一直不好用,很郁闷....纠结 原来是form提交有问题。 首先: 1.进入首页面会进拦截器,这时会创建token public void intercept(A...

感觉太煽情
2014/11/28
0
0
如何防止表单重复提交

我记得在哪个地方看到过jFinal中防止表单重复提交的实现方式,但是找不到具体的地址了,所以想问一下,jFinal中有没有类似response的redirect这样的方法(直接改变地址栏)?这样实现应该最简...

Alex.yang
2012/05/18
1K
3
setCharacterEncoding 失效问题

@jfinal 背景是用jfinal 的时候,之前都是ajax 提交表单,但今天特殊情况,要直接用表单提交,发现乱码。 检查了一些配置 1、tomcat 设置了编码UTF8(当然,对POST 好像没关系,图个心安) 2、...

weyer
2016/03/30
210
1

没有更多内容

加载失败,请刷新页面

加载更多

rsync工具常用选项以及同步的两种方式

rsync -av /etc/passwd /tmp/1.txt #rsync的本机传输写法 rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt #rsync的远程传输rsync格式rsync [OPTION] … SRC ......

林怡丰
今天
3
0
GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238

GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238 (Address already in use) 官方文档虽然有相同的问题,但是对我的问题没起作用…… 后面发现自己手贱...

wenzhizhong
昨天
3
0
REST接口

文章来源 https://zhuanlan.zhihu.com/p/28674721?group_id=886181549958119424 http://www.ruanyifeng.com/blog/2014/05/restful_api.html REST 对请求的约定 REST 用来规范应用如何在 HTTP......

Airship
昨天
6
0
Spring Cloud Config 统一配置中心

Spring Cloud Config 统一配置中心 一、统一配置中心 统一管理配置 通常,我们会使用配置文件来管理应用的配置。如一个 Spring Boot 的应用,可以将配置信息放在 application.yml 文件中,如...

非摩尔根
昨天
6
0
android ------ AAPT2 error: check logs for details解决方法

AAPT 是全称是 Android Asset Packaging Tool,它是构建 App,甚至是构建 Android 系统都必不可少的一个工具。它的作用是将所有资源文件压缩打包到Android APK 当中。我们在 Android SDK 目录...

切切歆语
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部