struts1和struts2的区别

  struts1和struts2的对比

   a、Action类:

      struts1要求Action类继承一个基类。struts2 Action要求继承ActionSupport基类

   b、线程模式

      struts1 Action是单例模式的并且必须是线程安全的,因为仅有一个Action的实例来处理所有的请求。

      单例策略限制了Struts1 Action能做的事情,并且开发时特别小心。Action资源必须是线程安全的或同步的。

      struts2 Action为每一个请求产生一个实例,因此没有线程安全问题。(说以struts2每次请求set数据时候不用担心会是前面的数据)

   c、Servlet依赖

      struts1 Action依赖于Servlet API,因为当一个Action被调用时HttpServletRequest和HttpServletResponse被传递给execut方法。

      struts2 Action不依赖于容器,允许Action脱离容器单独测试。如果需要,Struts2 Action仍然可以访问初始的Request和Response。(解偶)

      但是,其他的元素减少或者消除了直接访问HttpServletRequest和HttpServletResponse的必要性。

   d、可测性

      测试struts1 Action的一个主要问题是execute方法暴露了Servlet API(这使得测试要依赖于容器)。一个第三方扩展:struts TestCase

      提供了一套struts1的模拟对象来进行测试。

      Struts2 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”也使得测试更容易。

原文地址:https://www.cnblogs.com/laotan/p/3655373.html