我们在我们的应用程序中使用JSF 1.2和WAS 6.1。
我来自servlet背景并且理解servlet类的实例变量不是线程安全的,因为实例变量在所有请求之间共享,并且每个请求创建一个新线程并使用doGet或doPost或任何其他处理程序来提供服务。
我们正在使用facesAddress托管bean以及faces-config.xml中的以下条目。 Faces Servlet是否为每个请求创建了ChangeAddressBean的新实例?
<managed-bean>
<managed-bean-name>ChangeAddress</managed-bean-name>
<managed-bean-class>com.ChangeAddressBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
如果第2点的答案是肯定的,那么最终的静态变量如何用于所有请求?最终的静态变量是否仍然适用于所有请求?的价值 anAddressFinder填充在静态块中,但根据某些条件,不同类型的用户的值可能不同。这是否意味着为第一个请求/用户填充的anAddressFinder的值对于所有后续请求/用户将保持相同?
public class ChangeAddressBean{
int flatNumber;
final static AddressFinder anAddressFinder;
.
.
.
}
答案 0 :(得分:0)