关于controller中的Action:(ActionServlet也是多线程的)
因为Action类是线程安全的,所以在应用程序中创建Action类的唯一实例;Struts中使用lazy Singleton,也就是先判断是否存在实例,若不存在,则创建实例,且对创建实例的代码进行了Synchronization,从而保证同一时刻只有一个线程可以创建Struts的实例。
除此之外,确保Action类不使用实例变量来存储客户特有的状态,对于客户的特有状态,应该在execute中
使用局部变量来保存。
Struts中大量使用了Resource Wrapper
原理可以这样形容:所有在资源实际在配置文件中指定,然后再内存中由一个类的实例来代表,这样要修改资源配置的话,只需要修改相应的.xml文件就可以了
For Example:
config.ControllerConfig类 ----〉controller元素中配置的信息
ActionMapping----- action元素,其中findForward()---findForwardConfig()...[ 查看全文 ]