0

在 Struts2 中,每个请求都创建动作对象。所以这里没有线程。它完全线程安全。但是它如何提供良好的性能。在这里,每个对象都在一个堆栈中工作。(但线程会创建多个堆栈执行)

它如何处理没有线程的多个请求?

4

1 回答 1

2

简而言之,如果您了解 S2 的工作原理,您就会知道为什么要这样设计。

在 S2 中,您的操作类也可以用作模型对象,例如将数据从 UI 传输到 bean 以及从 bean 到 UI,这是决定为每个请求创建 Action 实例的新副本的原因之一。

关于性能,如果我正确地为每个请求创建线程,那么框架必须负责同步数据以便它应该是线程安全的,这确实是一个很大的开销,最终不会提高整体性能。

S2 动作既不是 servlet 也不是控制器。我相信您对 S2 过滤器和 S2 动作类感到困惑,并且最终每个请求都有自己的请求范围 S2 动作的实例。

于 2012-04-10T12:33:29.190 回答