Struts的优缺点

优点:

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

2.有丰富的tag,Struts的标记库(Taglib),如能灵活运用,能大大的提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。

3.页面导航,页面导航将是今后的一个发展方向,事实上,这样做,是系统脉络更加清晰。通过一个配置文件,即可整个系统各部分之间联系,这对于后期维护有莫大的好处。尤其是当一批开发者接手这个项目时,这种优势更加体现。

4.提供Exception处理机制。

5.数据库连接池的管理。

6.支持I18N.

 

缺点:

1.转到展示层时,需要配置forward,每一次转到展示层,相信大多数都是直接转到jsp,而涉及到转向,需要配置forward,如果有多个展示层的jsp,则需要配置多次,而且不包括有时候目录,文件的变更,需要重新修改forward.每次修改配置文件,都要重新部署整个项目,而tomcat这样的服务器,还必须重新启动服务器,如果业务变更复杂频繁的系统,这样的操作简至不可想象。

2.Struts的Action必需是thread-safe方式,它仅仅允许一个实例去处理所有请求。所以,这个就引起了线程安全的问题。

3.测试不方便。Struts的每个Action都与web层耦合在一起,这样它的测试依赖于web容器,单元测试也很难实现。不过有一个Junit的扩展工具Struts TestCase可以实现它的单元测试。

4.类型转换。Struts的FormBean把所有的数据作为String类型,它可以使用工具Commons-Beanutils进行类型转换。但它的转化都是在Class级别,而且转化的类型是不可配置的。类型转化是的错误信息返回给用户也是非常困难的。

5.对Servlet的依赖性过强。Struts处理Action是需依赖Servlet的ServletResquest和ServletResponse,所以它摆脱不了Servlet容器。

6.前端表达式语言方面,Struts集成了JSTL,所以它主要使用JSTL表达式语言来获取数据。可是JSTL的表达式语言在Collection和索引属性方面处理显得很弱。

7.对Action执行控制困难。Struts创建一个Action,如果系那个控制它的执行顺序将会非常困难。甚至你要重新去写Servlet来实现你的这个功能需求。

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

9.对事件支持不够。在Struts中,实际是一个表单Form对应一个action类,使得struts的一个表单只能对应一个事件,struts这种事件方式称为application event,application event和component event相比是一种出粗颗粒的事件。

posted @ 2013-11-05 15:27  样_样  阅读(324)  评论(0)    收藏  举报