【发布时间】:2013-10-22 18:47:07
【问题描述】:
我知道这两个拦截器都是用来防止重复提交表单的吗?但他们两者之间究竟有什么区别? 哪一个比其他的更有优势?
【问题讨论】:
标签: struts2 interceptor
我知道这两个拦截器都是用来防止重复提交表单的吗?但他们两者之间究竟有什么区别? 哪一个比其他的更有优势?
【问题讨论】:
标签: struts2 interceptor
tokenSession 扩展了token 拦截器,它们都用于确保每个令牌只处理一个请求。不同之处在于对无效令牌的处理。
当发现无效令牌时,token 拦截器只返回invalid.token 结果。无效令牌上的tokenSession 拦截器将尝试显示与有效令牌相同的响应。
一些用于说明tokenSession 拦截器工作流程的伪代码:
intercept() {
if(validToken){
storeInvocation();
return invocation.invoke();
}else {
ActionInvocation storedInvocation = loadStoredInvocation();
// ...
return storedInvocation.getResultCode();
}
}
【讨论】:
tokenSession 拦截器首先拦截它时,它会存储调用,当它拦截带有无效令牌的第二个请求时,它会加载该调用并向用户显示结果。