提问人:user2914906 提问时间:12/6/2013 最后编辑:Roman Cuser2914906 更新时间:3/13/2021 访问量:1324
防止在用户处于当前会话中时调用两倍的相同操作
Prevent same action called twice as long as user is in current session
问:
我正在使用 Struts2 框架,我的问题是
如果用户登录系统并点击某个动作,比如说,流程将进入动作类并执行某个方法,返回相应的结果。
他可能会访问某些网页,然后再次单击。ACTION1
ACTION1
只要他处于同一会话中,现在控件就不应该采用该特定方法,但结果应与以前的结果相同。
我们怎样才能做到这一点?
答:
1赞
Roman C
12/6/2013
#1
您可以尝试使用 tokenSession
拦截器。
此拦截器基于
令牌
拦截器构建,提供 用于处理无效令牌的高级逻辑。与普通代币不同 拦截器,此拦截器将尝试提供智能 在使用同一会话的多个请求的情况下进行故障转移。 也就是说,它将阻止后续请求,直到第一个请求 完成,然后它不是返回代码,而是 将尝试显示与原始响应相同的响应,有效 如果没有多个请求,则会显示操作调用 首先提交。invalid.token
它将防止重复提交相同的操作或重复使用您提供的带有 s:token
标记的相同令牌。
描述
停止重复提交表单。
令牌标记用于帮助“双击”提交 问题。如果您使用的是 或 .标签仅放置一个隐藏的 元素。
TokenInterceptor
TokenSessionInterceptor
s:token
将标签放在表单中,您将永远不会再次提交相同的表单。令牌会话拦截器将尝试通过返回与第一种情况相同的响应来为您处理无效令牌。
评论
0赞
user2914906
12/9/2013
我已经尝试过使用 tokenSession,但它仅适用于刷新,然后双击
评论