Java 五大框架之间的比拟
intercepter的实现机制:struts有以本身的interceptor机制,spring mvc用的是独立的AOP方法。这样导致struts的设置文件量照旧比spring mvc大,固然struts的设置能担任,以是我认为论行使上来讲,spring mvc行使越发简捷,开拓服从Spring MVC确实比struts2高。spring mvc是要领级此外拦截,一个要领对应一个request上下文,而要领同时又跟一个url对应,以是说从架构自己上spring3 mvc就轻易实现restful url。struts2是类级此外拦截,一个类对应一个request上下文;实现restful url要费劲,由于struts2 action的一个要领可以对应一个url;而其类属性却被全部要领共享,这也就无法用注解或其他方法标识其所属要领了。spring3 mvc的要领之间根基上独立的,独享request response数据,哀求数据通过参数获取,处理赏罚功效通过ModelMap交回给框架要领之间不共享变量,而struts2搞的就较量乱,固然要领之间也是独立的,但其全部Action变量是共享的,这不会影响措施运行,却给我们编码,读措施时带来贫困。 其它,spring3 mvc的验证也是一个亮点,支持JSR303,处理赏罚ajax的哀求更是利便,只需一个注解@ResponseBody ,然后直接返反相应文本即可。奉上一段代码: [java] view plain copy 在CODE上查察代码片派生到我的代码片
struts1与struts2本质区别 1 在Action实现类方面的比拟:Struts 1要求Action类继承一个抽象基类;Struts 1的一个详细题目是行使抽象类编程而不是接口。Struts 2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的处事成为也许。Struts 2提供一个ActionSupport基类去实现常用的接口。纵然Action接口不是必需实现的,只有一个包括execute要领的POJO类都可以用 作Struts 2的Action。 2 线程模式方面的比拟:Struts 1 Action是单例模式而且必需是线程安详的,由于仅有Action的一个实例来处理赏罚全部的哀求。单例计策限定了Struts 1 Action能做的事,而且要在开拓时不凡警惕。Action资源必需是线程安详的或同步的;Struts 2 Action工具为每一个哀求发生一个实例,因此没有线程安详题目。 3 Servlet依赖方面的比拟:Struts 1 Action依赖于Servlet API,由于Struts 1 Action的execute要领中有HttpServletRequest和HttpServletResponse要领。Struts 2 Action不再依赖于Serzvlet API,从而承诺Action离开Web容器运行,从而低落了测试Action的难度。 虽然,若是Action必要直接会见HttpServletRequest和HttpServletResponse参数,Struts 2 Action如故可以会见它们。可是,大部门时辰,Action都无需直接会见HttpServetRequest和 HttpServletResponse,从而给开拓者更多机动的选择。 4 可测性方面的比拟:测试Struts 1 Action的一个首要题目是execute要领依赖于Servlet API,这使得Action的测试要依赖于Web容器。为了离开Web容器测试Struts 1的Action,必需借助于第三方扩展:Struts TestCase,该扩展下包括了系列的Mock工具(模仿了HttpServetRequest和HttpServletResponse工具),从而 可以离开Web容器测试Struts 1的Action类。Struts 2 Action可以通过初始化、配置属性、挪用要领来测试。 5 封装哀求参数的比拟:Struts 1行使ActionForm工具封装用户的哀求参数,全部的ActionForm必需继承一个基类:ActionForm。平凡的JavaBean不能用 作ActionForm,因此,开拓者必需建设大量的ActionForm类封装用户哀求参数。固然Struts 1提供了动态ActionForm来简化ActionForm的开拓,但依然必要在设置文件中界说ActionForm;Struts 2直接行使Action属性来封装用户哀求属性,停止了开拓者必要大量开拓ActionForm类的啰嗦,现实上,这些属性还可所以包括子属性的Rich 工具范例。若是开拓者依然吊唁Struts 1 ActionForm的模式,Struts 2提供了ModelDriven模式,可以闪开拓者行使单独的Model工具来封装用户哀求参数,但该Model工具无需继承任何Struts 2基类,是一个POJO,从而低落了代码污染。 6 表达式说话方面的比拟:Struts 1整合了JSTL,因此可以行使JSTL表达式说话。这种表达式说话有根基工具图遍历,但在对荟萃和索引属性的支持上则成果不强;Struts 2可以行使JSTL,但它整合了一种更强盛和机动的表达式说话:OGNL(Object Graph Notation Language),因此,Struts 2下的表达式说话成果越发强盛。 7 绑定值到视图的比拟:Struts 1行使尺度JSP机制把工具绑定到视图页面;Struts 2行使“ValueStack”技能,使标签库可以或许会见值,而不必要把工具和视图页面绑定在一路。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |