struts2比Strust1有什么优势

我就简单谈谈的看法吧
1:struts1的核心是个servlet ,与servlet API严重耦合,难于测试,而且还是单例,就造成了一定的限制。资源必须为线程安全或者同步
而struts2的核心是个过滤器,为每一个请求实例化一个对象,所以没有线程安全的问题。
2:struts1的Action类依赖于servlet API   属于侵入式设计 。struts2的Action与容器无关
3:struts1整合Jstl标签,所以就使用JSTL表达语言。struts2使用JSTL,也支持更灵活的OGNL(对象图形符号语言)
4:struts1用ActionForm对象来获取输入,并且还有验证功能。
   struts2 Action属性作为输入属性,就减少了第二个输入对象的需要

 

struts1和struts2 是2个完全不同的框架,其实struts2核心就是 webwork框架
struts1以ActionServlet作为核心控制器,由ActionServlet负责拦截用户的所有请求。
Struts 1框架有3个重要组成部分:Action、ActionForm和ActionForward对象。
ActionForm必须实现ActionForm的基类,设计上并不是真正的POJO。
struts2核心控制器是FilterDispatcher,Struts 2用于处理用户请求的Action实例,
并不是用户实现的业务控制器,而是Action代理——因为用户实现的业务控制器并没有与
Servlet API耦合,显然无法处理用户请求。而Struts 2框架提供了系列拦截器,
该系列拦截器负责将HttpServletRequest请求中的请求参数解析出来,传入到Action中,
并回调Action的execute方法来处理用户请求。显然,上面的处理过程是典型的AOP(面向切面编程)
处理方式。

你可能感兴趣的:(struts2)