博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2----><s:token />标签防止重复提交
阅读量:6820 次
发布时间:2019-06-26

本文共 905 字,大约阅读时间需要 3 分钟。

一、防止重复提交原理:

首先,在页面访问的时候server端产生一个标志位,其保存在session中,同时该标志位放到访问的页面的某个元素中(通常为隐藏域);
其次,在session存在的有效时间内,没有其它操作时其值保持不变,当提交表单到server端时,会判断client端提交过来的标志位和server端的标志位的值是否相等;
最后,判断标志位的值,如果相等,则执行自己期望的操作;如果不相等,则转向指定的页面;

1、JSP使用< s:token/ >标签的时候,Struts2会建立一个UUID(全局唯一的字符串)放在session中,并且会成为一个hidden放在form中。 如

<input type="hidden" name="struts.token" value="DP6WFZ8K88OA7FBT15A7V73VJRZ9KXQA" />

2、token拦截器会判断客户端form提交的token值和session中保存的值是否equals。如果equals则执行Action。否则拦截器直接返回invaid.token结果转向对应的视图,Action对应的方法也不会执行;

二、例子

input.jsp(方法为get时候,刷新浏览器不提示重新发送,可能会重复提交)

name:
age:

上面的form对应页面生成的源代码(右键,查看源代码)

    
name:
age:

struts.xml

/input.jsp
/addOK.jsp
/error.jsp

 

 

转载地址:http://yhazl.baihongyu.com/

你可能感兴趣的文章
如何高效利用GitHub
查看>>
Server-sent Event 简单介绍
查看>>
nginx 常用的几个命令
查看>>
解决命令行的乱码以及编码的问题
查看>>
python naming convention
查看>>
Linux 程序获取环境变量
查看>>
Kettle资源库的创建及密码修改
查看>>
NASA顶级程序员编程十大原则
查看>>
Linux Kernel 4.14 LTSI正式推出
查看>>
NodeJS基础
查看>>
Jquery与js原生
查看>>
keepalived
查看>>
EventBus
查看>>
iOS Block
查看>>
PHP错误及异常统一处理
查看>>
vim设置括号自动补全
查看>>
Get system clipboard
查看>>
windows环境eclipse开发C++程序
查看>>
svn 常用命令总结
查看>>
Linux下利用msmtp+mail+shell来发送邮件。
查看>>