【Struts】——struts2和struts1的区别
2017-03-19 20:33
302 查看
struts1是过去最流行的web MVC组件,apache项目组的一个开源项目。struts2是现在非常流行的web mVC
组件,是apache用struts1和webwork组合出来的产品。二者都是web MVC组件,利用这两个组件都可以比较方便的
开发web项目。不过struts毕竟是老组件,在人们开发过程中,发现了如下问题:
1、struts1支持的表现层技术太单一、就只有jsp。不支持freemarker、velocity等当前比较流行的页面技术。
2、struts1的Action与servlet API过于耦合,难以测试。这一点对于初学者来说可能没有什么感觉,只有用
它开发过大型项目才知道。企业开发过程中,我们既要写正式代码,也要写相应的测试代码(即单元测试,以此来
保证代码是符合我们预期的),如果证实代码和Servlet API耦合太深,会早成功你的测试类难以编写,一旦离开web
服务器就会难以测试。
3、struts1属于侵入式设计,也就是说,在代码里,除了自己定义的类之外,还会包含struts1的API。这样的
设计会影响代码的重用,如果需要重构,就会比较麻烦。
以上就是struts1的主要缺点,作为大概之后的struts2,对以上问题都做了改进:
1、struts2支持多种表现层技术,如freemarker,velocity都支持。
2、struts2中,Action不再与servlet API耦合,便于编写单元测试类。
3、Action不需要与struts2耦合,方便重用。
组件,是apache用struts1和webwork组合出来的产品。二者都是web MVC组件,利用这两个组件都可以比较方便的
开发web项目。不过struts毕竟是老组件,在人们开发过程中,发现了如下问题:
1、struts1支持的表现层技术太单一、就只有jsp。不支持freemarker、velocity等当前比较流行的页面技术。
2、struts1的Action与servlet API过于耦合,难以测试。这一点对于初学者来说可能没有什么感觉,只有用
它开发过大型项目才知道。企业开发过程中,我们既要写正式代码,也要写相应的测试代码(即单元测试,以此来
保证代码是符合我们预期的),如果证实代码和Servlet API耦合太深,会早成功你的测试类难以编写,一旦离开web
服务器就会难以测试。
3、struts1属于侵入式设计,也就是说,在代码里,除了自己定义的类之外,还会包含struts1的API。这样的
设计会影响代码的重用,如果需要重构,就会比较麻烦。
以上就是struts1的主要缺点,作为大概之后的struts2,对以上问题都做了改进:
1、struts2支持多种表现层技术,如freemarker,velocity都支持。
2、struts2中,Action不再与servlet API耦合,便于编写单元测试类。
3、Action不需要与struts2耦合,方便重用。
相关文章推荐
- [转]Struts1和Struts2的区别和对比
- [转]Struts1和Struts2的区别和对比
- Struts2与Struts1的区别
- struts2 FilterDispatcher 和 StrutsPrepareAndExecuteFilter 的区别
- Struts2 的简介以及 struts2 与struts1的区别
- Struts2 与 Struts1区别
- [转]Struts1和Struts2的区别和对比
- Struts1 和 struts2的区别
- Struts2和Struts1的区别及工作原理
- Struts1 与Struts2的区别
- struts1 与 struts2 的区别
- [转]Struts1和Struts2的区别和对比
- struts1跟struts2的区别
- 纵观全局Struts1与Struts2的基本区别
- struts1与struts2的区别
- Struts1 和Struts2的区别及联系
- Struts2 与 Struts1.x 区别
- Struts2使用1-- Struts2与Struts1的区别
- Struts 和 Struts2的区别
- struts1.2与struts2的区别