JAVA WEB五大开发框架的对比
1.Spring MVC - Java Web 框架
随着时间的推移,它扩展成一个完整的MVC框架,并不断演变成一个全面的Java框架。
优点:
-
生命周期由重写绑定,效验等确定;能够无缝隙地与各种表现层程序结合在一起
缺点:
-
jsp中要需要写很多代码,控制器过于灵活,缺少一个公用控制器
2.JSF - Java Web 框架
Oracle 认为 JSF 是一个实用网络 Java 框架,旨在简化基于Web的UI的集成开发。虽然这个框架在Java开发方面不是很好,但是Oracle提供的文档很容易使用。引入了基于组件和事件驱动的开发模式,使开发人员可以使用类似于处理传统界面的方式来开发Web应用程序。提供了行为与表达的清晰分离。 不用特别的脚本语言或者标记语言来连接UI组件和Web层。JSF技术API被直接分层在Servlet API的顶端。 技术为管理组件状态提供一个丰富的体系机构、处理组件数据、确认用户输入和操作事件。
优点
- J2EE规范;能够快速和容易地开发;丰富的导航框架。
JSF的缺点
-
不可扩展
-
JSP标签差、技术不成熟
-
缺乏灵活性
3.WebWork- Java Web 框架
WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的J2EE Web框架 ,现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。实现Interceptor接口的拦截器,代码部分在intercept方法中实现。
work简洁、灵活功能强大,它是一个标准的Command模式框架实现,并且完全从web层脱离出来。Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control依赖倒转控制)容器等。
WebWork2建立在Xwork之上,处理HTTP的请求和响应。所有的请求都会被它的前端控制器(ServletDispatcher,最新版本是FilterDispatcher)截获。前端控制器对请求的数据进行包装,初始化上下文数据,根据配置文件查找请求URL对应的Action类,执行Action,将执行结果转发到相应的展现页面。WebWork2支持多视图表示,视图部分可以使用JSP,Velocity,FreeMarker,JasperReports,XML等。
优点:
-
结构简单易于扩展、标签库易于定制、拦截器非常出色
缺点:
-
文档示例很少、客户端验证技术不成熟
4. Tapestry - Java Web 框架
Tapestry并不是一种单纯的MVC框架,它更像MVC框架和模板技术的结合,它不仅包含了前端的MVC框架,还包含了一种视图层的模板技术,使用Tapestry完全可以与Servlet/JSP API分离,是一种非常优秀的设计。
Tapestry是一种基于java的Web应用程序框架。Tapestry采用了组件的概念。程序员可以应用现有的组件或自定义应用程序相关的组件来构建应用程序。相对与现有的其他Web应用程序框架而言,应用Tapestry会让程序员从烦琐的,不必要的底层代码中解放出来。
Tapestry使用组件库替代了标签库,没有标签库概念,从而避免了标签库和组件结合的问题。Tapestry是完全组件化的框架。Tapestry只有组件或页面两个概念,因此,链接跳转目标要么是组件,要么是页面,没有多余的path概念。组件名,也就是对象名称,组件名称和path名称合二为一。
优点:
- 一旦学会,效率很高;HTML模板很合适美工;有良好的社区支持。
缺点:
-
文档太概念,不利于编程,学习曲线太陡,不能测试 ,学习示例很少。
5.Struts 2 - Java Web框架
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。Struts和Webwork同为服务于Web的一种MVC框架,从某种程度上看,Struts2是从WebWork2上升级得到的,实质上,Struts2是以WebWork为核心的。
优点:
-
没有线程安全问题
-
依赖注入使得测试更简单
-
它可以使用“对象图导航语言”(OGNL)
-
Struts 2框架的Servlet上下文以简单的地图形式表示
-
它支持通过验证方法进行手动验证,并且还包含子框架验证
缺点:
-
由于它与Struts 1完全不同,难以迁移
-
Struts 2 文档非常有限
-
由于文档管理不善,新用户很难发现它的优点
这5个框架目前的排行
第一 Struts2由于许多问题已经被解决,使用它开发容易。HTML标签是它最优秀的地方。
第二 Spring MVC 它也不错,但缺乏很好的表单标签。
第三 WebWork 客户端验证技术很差。
第四 Tapestry 学习太难
第五 JSF 技术不成熟
框架的选择方面
在项目时间紧迫且要求不高的时候选用struts。大规模企业级项目使用Tapestry,因为它具有可重用组件。如果你是一名开源项目的开发者,使用WebWork比较好,原因是需要对本身的机制有很清楚的了解
本文地址:https://blog.csdn.net/qq_41571417/article/details/107420692