令牌拦截器和令牌会话拦截器之间的区别?

时间:2013-10-22 18:47:08

标签: struts2 interceptor

我知道两个拦截器都用于防止重复提交表单吗?但两者之间究竟有什么区别? 哪一个比其他人有额外优势呢?

1 个答案:

答案 0 :(得分:8)

tokenSession扩展token拦截器,它们都用于确保每个令牌只处理一个请求。不同之处在于处理无效令牌。 当找到无效令牌时,token拦截器只返回invalid.token结果。无效令牌上的tokenSession拦截器将尝试显示在有效令牌的情况下显示的相同响应。

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

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