Java 防止在用户处于当前会话时调用两次相同的操作

Java 防止在用户处于当前会话时调用两次相同的操作,java,jsp,struts2,double-submit-problem,Java,Jsp,Struts2,Double Submit Problem,我正在使用Struts2框架,我的问题是 若用户登录到系统并单击一些操作,比如说ACTION1,流将转到action类并执行一些方法,返回适当的结果。 他可能会访问一些网页,然后再次单击ACTION1 只要他在同一个会话中,现在控件就不应使用该特定方法,但结果应与以前的结果相同 我们怎样才能做到这一点呢?你可以试试 此拦截器构建在的基础上,提供 用于处理无效令牌的高级逻辑。与普通令牌不同 拦截器,该拦截器将尝试提供智能 在多个请求使用同一会话时进行故障转移。 也就是说,它将阻止后续请求,直到第一

我正在使用Struts2框架,我的问题是

若用户登录到系统并单击一些操作,比如说
ACTION1
,流将转到action类并执行一些方法,返回适当的结果。 他可能会访问一些网页,然后再次单击
ACTION1

只要他在同一个会话中,现在控件就不应使用该特定方法,但结果应与以前的结果相同

我们怎样才能做到这一点呢?

你可以试试

此拦截器构建在的基础上,提供 用于处理无效令牌的高级逻辑。与普通令牌不同 拦截器,该拦截器将尝试提供智能 在多个请求使用同一会话时进行故障转移。 也就是说,它将阻止后续请求,直到第一个请求完成 完成,然后不返回无效的
标记,而是返回
将尝试显示与原始有效响应相同的响应
如果没有收到多个请求,则会显示操作调用
首先提交

它将防止重复提交相同的操作或重用您提供的相同令牌

说明

停止重复提交表格

令牌标记用于帮助“双击”提交 问题如果您正在使用
令牌拦截器
TokenSessionInterceptor
s:token
标记仅放置隐藏的 元素,该元素包含唯一标记

把标签放在你的表格里,你就再也不用提交同一张表格两次了。令牌会话拦截器将尝试通过返回与第一种情况相同的响应来为您处理无效令牌。

您可以尝试一个

此拦截器构建在的基础上,提供 用于处理无效令牌的高级逻辑。与普通令牌不同 拦截器,该拦截器将尝试提供智能 在多个请求使用同一会话时进行故障转移。 也就是说,它将阻止后续请求,直到第一个请求完成 完成,然后不返回无效的
标记,而是返回
将尝试显示与原始有效响应相同的响应
如果没有收到多个请求,则会显示操作调用
首先提交

它将防止重复提交相同的操作或重用您提供的相同令牌

说明

停止重复提交表格

令牌标记用于帮助“双击”提交 问题如果您正在使用
令牌拦截器
TokenSessionInterceptor
s:token
标记仅放置隐藏的 元素,该元素包含唯一标记


把标签放在你的表格里,你就再也不用提交同一张表格两次了。令牌会话侦听器将尝试通过返回与第一种情况相同的响应来为您处理无效令牌。

立即转到相同的方法,但结果可能不同,这取决于操作返回的值。我不希望再次调用该方法。。。可能吗?这取决于你如何控制用户会话?嗨,罗曼,谢谢你的回复,你能详细告诉我怎么做吗?我是Struts新手你是说缓存响应并阻止操作执行?我不建议任何行动都这样做。虽然静态文件已经被浏览器缓存了&您可以在tomcat/apache/ngnix服务器中设置某种级别的操作缓存,但立即转到同一个方法,但结果可能不同,这取决于操作返回的值。我不希望再次调用该方法。。。可能吗?这取决于你如何控制用户会话?嗨,罗曼,谢谢你的回复,你能详细告诉我怎么做吗?我是Struts新手你是说缓存响应并阻止操作执行?我不建议任何行动都这样做。虽然静态文件已经被浏览器缓存&您可以在tomcat/apache/ngnix服务器中设置某种级别的操作缓存。我已经尝试使用tokenSession,但它只用于刷新,双击我已经尝试使用tokenSession,但它只用于刷新,然后双击