Struts2 令牌侦听器和令牌会话侦听器之间的区别?

Struts2 令牌侦听器和令牌会话侦听器之间的区别?,struts2,interceptor,Struts2,Interceptor,我知道这两个拦截器都是用来防止重复提交表单的?但两者之间究竟有什么区别呢? 哪一个比另一个更具优势?令牌会话扩展了令牌拦截器,它们都用于确保每个令牌只处理一个请求。区别在于对无效令牌的处理。 当发现无效令牌时,令牌拦截器只返回无效的.token结果。无效令牌上的tokenSession侦听器将尝试显示与有效令牌相同的响应 一些用于说明tokenSession拦截器工作流程的伪代码: intercept() { if(validToken){ storeInvocation();

我知道这两个拦截器都是用来防止重复提交表单的?但两者之间究竟有什么区别呢?
哪一个比另一个更具优势?

令牌会话扩展了
令牌
拦截器,它们都用于确保每个令牌只处理一个请求。区别在于对无效令牌的处理。 当发现无效令牌时,
令牌
拦截器只返回
无效的.token
结果。无效令牌上的
tokenSession
侦听器将尝试显示与有效令牌相同的响应

一些用于说明
tokenSession
拦截器工作流程的伪代码:

intercept() {
  if(validToken){
    storeInvocation();
    return invocation.invoke();
  }else {
    ActionInvocation storedInvocation = loadStoredInvocation();
    // ...
    return storedInvocation.getResultCode();
  }
}

谢谢Aleksandr回答我的问题。正如您所说,无效令牌上的令牌会话侦听器将显示与有效令牌上相同的响应。请你详细说明一下,或者一些用户界面/图片会更好地理解这一点。谢谢看看我给出的伪代码。假设有两个请求,一个带有有效令牌,另一个带有无效令牌。当
tokenSession
拦截器拦截第一个调用时,它存储调用;当拦截器拦截带有无效令牌的第二个请求时,它加载该调用并向用户显示结果。相关: