Code Bye

Struts1的单例问题

都说Struts1是单例模式,从而对线程安全造成一定影响,但是在Struts1的Action源码中并没有找到单例的影子哈??
希望在Struts1的源码中给出指导和帮助~~


20分
struts1的action中的处理都是在方法中执行的,action中没有实例变量,因此,action是无状态的。无状态的都是线程安全的。
类似像这样
public class LoginAction extends Action {  
  
    @Override  
    public ActionForward execute(ActionMapping mapping, ActionForm form,  
            HttpServletRequest request, HttpServletResponse response)  
            throws Exception {  
        
    }  
      
}  
还有有点迷糊~~~这是在子类具体继承Action基类的时候体现的~~~在Struts1的源码中有体现么????
Action的确是作为一个无实例变量存在的~~~
有点理解了~~~

10分
无实例变量,不会造成多线程请求同一实例资源,线程安全
与其说Action是一个单例,不如说它集成的Servelt是个单例~~~~而Action的线程安全问题,我感觉是由于servlet的线程安全造成的

10分
Servlet线程安全,也是因为Servlet没有实例变量保证的。Servlet的单例或多例对线程安全没有影响。因为Servlet没有实例变量,无状态,线程安全。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Struts1的单例问题