Struts优缺点


跟Tomcat、Turbine等诸多Apache项目同样,是开源软件,这是它的一大优势。使开发者能更深刻的了解其内部实现机制。前端

Struts开放源码框架的建立是为了使开发者在构建基于Java Servlet和JavaServer Pages(JSP)技术的Web应用时更加容易。Struts框架为开数据库

放者提供了一个统一的标准框架,经过使用Struts做为基础,开发者可以更专一于应用程序的商业逻辑。Struts框架自己是使用Java Servlettomcat

和JavaServer Pages技术的一种Model-View-Controller(MVC)实现. 
具体来说,Struts的优势有:安全

     1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现.服务器

     2. 有丰富的tag能够用 ,Struts的标记库(Taglib),如能灵活动用,则能大大提升开发效率。另外,就目前国内的JSP开发者而言,除了app

使用JSP自带的经常使用标记外,不多开发本身的标记,或许Struts是一个很好的起点。框架

     3. 页面导航.页面导航将是从此的一个发展方向,事实上,这样作,使系统的脉络更加清晰。经过一个配置文件,便可把握整个系统各部jsp

分之间的联系,这对于后期的维护有着莫大的好处。尤为是当另外一批开发者接手这个项目时,这种优点体现得更加明显。工具

     4. 提供Exception处理机制 .单元测试

     5. 数据库连接池管理

     6. 支持I18N

     缺点: 
     1、 转到展现层时,须要配置forward,每一次转到展现层,相信大多数都是直接转到jsp,而涉及到转向,须要配置forward,若是有十

个展现层的jsp,须要配置十次struts,并且还不包括有时候目录、文件变动,须要从新修改forward,注意,每次修改配置以后,要求从新部

署整个项目,而tomcate这样的服务器,还必须从新启动服务器,若是业务变动复杂频繁的系统,这样的操做简单不可想象。如今就是这样,几

十上百我的同时在线使用咱们的系统,你们能够想象一下,个人烦恼有多大。

     2、 Struts 的Action必需是thread-safe方式,它仅仅容许一个实例去处理全部的请求。因此action用到的全部的资源都必需统一同步

,这个就引发了线程安全的问题。

     3、 测试不方便. Struts的每一个Action都同Web层耦合在一块儿,这样它的测试依赖于Web容器,单元测试也很难实现。不过有一个Junit的

扩展工具Struts TestCase能够实现它的单元测试。

     4、 类型的转换. Struts的FormBean把全部的数据都做为String类型,它可使用工具Commons-Beanutils进行类型转化。但它的转化都

是在Class级别,并且转化的类型是不可配置的。类型转化时的错误信息返回给用户也是很是困难的。

     5、 对Servlet的依赖性过强. Struts处理Action时必须要依赖ServletRequest 和ServletResponse,全部它摆脱不了Servlet容器。

     6、 前端表达式语言方面.Struts集成了JSTL,因此它主要使用JSTL的表达式语言来获取数据。但是JSTL的表达式语言在Collection和索

引属性方面处理显得很弱。

     7、 对Action执行的控制困难. Struts建立一个Action,若是想控制它的执行顺序将会很是困难。甚至你要从新去写Servlet来实现你的

这个功能需求。

     8、 对Action 执行前和后的处理. Struts处理Action的时候是基于class的hierarchies,很难在action处理前和后进行操做。

     9、 对事件支持不够. 在struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:在Struts中实际是一个

表单只能对应一个事件,struts这种事件方式称为application event,application event和component event相比是一种粗粒度的事件。 
    
     Struts重要的表单对象ActionForm是一种对象,它表明了一种应用,这个对象中至少包含几个字段,这些字段是Jsp页面表单中的input字

段,由于一个表单对应一个事件,因此,当咱们须要将事件粒度细化到表单中这些字段时,也就是说,一个字段对应一个事件时,单纯使用

Struts就不太可能,固然经过结合JavaScript也是能够转弯实现的。

相关文章
相关标签/搜索