本帖最后由 weimoliang 于 2014-5-23 15:49 编辑
两个完全不一样的东西,为什么要比较!!
Struts2是在WebWork2基础发展而来的。和Struts1一样, Struts2也属于MVC的web框架。
那么既然有了Struts1,为何还要推出Struts2?
Struts2和Struts1虽然都是基于MVC的Web框架,但是它们的实现机制完全不同。
Struts1是基于Servlet的实现,并且Struts1的API过分依赖容器,导致了Action开发、测试都非常繁琐,而Struts2是基于过滤器的实现,API不再依赖容器,测试过程中不必再模拟Web容器环境,开发、测试较Struts1都有很大的进步。
Struts1的Action是单例模式所有请求共享一个ActionServlet,所以线程必须是安全的,而Struts2每个请求都会绑定一个Action,不再有线程安全问题。
Struts2开始支持注解并提供了更为强大的OGNL标签库以及值栈,从类到页面的开发都更加简洁高效。
Struts2和Struts1都是基于MVC的Web层框架,所以,即便他们的实现机制不同,但是他们工作原理还是一样的,都是对请求进行拦截、分发、处理,之后返回页面。
|