在Struts2中,每个请求都创建动作对象。所以这里没有线程。它完全线程安全。 但它如何提供良好的表现。这里每个对象都在一个堆栈中工作。 (但线程将创建多个堆栈以供执行)
如何在没有线程的情况下处理多个数组的请求?
答案 0 :(得分:2)
简而言之,如果你知道S2究竟是如何工作的,你就会知道为什么这是这样设计的。
在S2中,您的操作类也可以作为Model对象使用,例如将数据从UI传输到bean以及从bean传输到UI,这是决定为每个请求创建Action实例的新副本的原因之一。
关于性能,如果我正确地为每个请求创建线程,那么框架必须处理同步数据以使它应该是线程安全的,这实际上是一个很大的开销,并且最终将不会提高整体性能。
S2动作既不是servlet也不是控制器。我相信你会对S2过滤器和S2 Action类感到困惑,最后每个请求都有自己的请求范围S2动作实例。