在 Struts2 中
- 动作是线程安全的,每个请求都会启动一个单独的动作类对象。
- 拦截器不是线程安全的,因为仅针对所有请求启动对象。他们在其 execute() 方法中接收 ActionInvocation 对象,并且可以使用该对象访问操作上下文。请参阅“ Struts2 线程中的拦截器是否不安全? ”
牢记这些事情,我相信
- 结果不是线程安全的,因为它们在其 execute() 方法中接收 ActionInvocation 对象。
在创建自定义结果类时,我在“Manning Struts2 in Action”一书中找到了以下代码行。
ServletActionContext.getResponse()
我很困惑为什么作者没有使用 actionInvocation 对象得到响应,即
actionInvocation.getInvocationContext().get(StrutsStatics.HTTP_RESPONSE);
现在我有以下问题。
- 结果线程安全吗?
- 如果 Result 不是线程安全的并且有两个不同的请求,那么 ServletActionContext 如何返回相关响应?