JSR 371——Java 8新的MVC框架

MVC是一种软件架构模式,它将业务逻辑、数据和界面显示的代码分离,将业务逻辑聚集到一个模块里面,当用户需要改进或定制个性化界面及用户交互 的时候不需要重新编写业务逻辑。在过去的十几年中,JSF所提供的面向组件的MVC是Java EE平台仅有的用户界面技术。而另一边Spring MVC以及Struts等技术却已经被广泛采用并产品化。MVC 1.0规范( JSR 371 )的产生既是为了填补这一空白,同时也是为了满足广大J2EE开发者的要求。

那么与之前的JSF相比,JSR 371规范有哪些不同之处呢?它的目的是不是为了替代JSF呢?Rahman在自己的博客文章《 Java EE 8的新MVC框架 》中指出JSR 371是一种面向操作的MVC,而JSF则是一种面向组件的MVC,对于它们之间的区别,Rahman通过一幅图做了说明:

面向组件的Web框架和面向操作的Web框架

通过该图我们能够看出:面向组件的方法关注的是尽可能地自动化控制器、导航等内容的处理,样板代码特别少,同时会提供可重用的组件;而面向操作的 方法更关注于HTTP生命周期以及纯Web的开发体验。前者拥有强大的插件系统,更接近于传统的MVC;后者没有组件(仅有一些模板),没有特定的生态系 统,需要人工处理状态信息。从应用范围来看,JSF通常会用于公司内部的那些通过表单或者工作流驱动的应用程序,而开放的Web应用程序则更倾向于使用面 向操作的框架。因此,我们能够看出JSR 371和JSF之间是一种互补的关系,JSR 371的出现并不会替代JSF,而是为我们提供了另一种选择。

不过,虽然JSF和JSR 371针对的场景各不相同,它们依然有一些 共同的地方 :

感谢郭蕾对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

  • 使用CDI作为模型层
  • 使用Bean Validation作为校验层
  • 使用表达式语言作为视图和模型之间的粘合剂
  • 使用Facelets和(或)JSP作为必须支持的视图声明语言
时间: 2024-11-05 12:24:11

JSR 371——Java 8新的MVC框架的相关文章

java实现简单的MVC框架

.title { background: blue; height: 50px; line-height: 50px; border: 1px solid; color: red } 一.mvc的模式如下图所示 二.基于路径访问的控制器 控制器BaseServlet类如下 package com.wangyang.web; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import

MVC框架

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 外文名 MVC框架 全    名 Model View Controller 产生时间 1982年 架构内容

Java EE开发四大常用框架

我们对Java EE的框架有过很多介绍, 本文将对Java EE中常用的四个框架做一下系统的归纳,希望大家喜欢. Struts Struts是一个基于Sun Java EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的. Struts框架可分为以下四个主要部分,其中三个就和MVC模式紧密相关: 1.模型 (Model),本质上来说在Struts中Model是一个Action类(这个会在后面详细讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器(Controller)向Act

MVC框架介绍

MVC框架 编辑 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 中文名 MVC 外文名 MVC框架 全    名 Model View Controller

struct2.1笔记01:MVC框架思想浅层理解

1. Struts 1是全世界第一个发布的MVC框架,它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,Struts 1框架更加成熟.稳定,性能也有了很好的保证.因此,到目前为止,Struts 1依然是世界上使用最广泛的MVC框架. 目前,基于Web的MVC框架非常多,发展也很快,每隔一段时间就有一个新的MVC框架发布,例如像JSF.Tapestry和Spring MVC等.除了这些有名的MVC框架外,还有一

Struts和SpringMVC两种MVC框架比较

基于Web的MVC framework在J2EE的世界内已是空前繁荣.TTS网站上几乎每隔一两个星期就会有新的MVC框架发布.目前比较好的MVC,老牌的有Struts.Webwork.新兴的MVC框架有Spring MVC.Tapestry.JSF等.这些大多是著名团队的作品,另外还有一些边缘团队的作品,也相当出色,如Dinamica.VRaptor等.这些框架都提供了较好的层次分隔能力.在实现良好的MVC 分隔的基础上,通过提供一些现成的辅助类库,同时也促进了生产效率的提高. 如何选择一个好的

Java EE开发的四大框架

Java EE中最常用的四个框架分别是:Struts.Spring.Hibernate.Swing.下面就说说这四个框架的特点,希望大家喜欢. Struts Struts是一个基于Sun Java EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的. Struts框架可分为以下四个主要部分,其中三个就和MVC模式紧密相关: 1.模型 (Model),本质上来说在Struts中Model是一个Action类(这个会在后面详细讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器(

[Java] 使用 Spring 2 Portlet MVC 框架构建 Portlet 应用

转自:http://www.ibm.com/developerworks/cn/java/j-lo-spring2-portal/ Spring 除了支持传统的基于 Servlet 的 Web 开发之外,也支持 JSR 168 Portlet 的开发.Spring Portlet MVC 框架尽可能多地继承了 Spring Servlet MVC 框架技术,使用了相同的底层表现层抽象和整合技术.同时,由于 JSR 168 Portlet 独特的工作流程,Spring Portlet MVC 框架

自己写一个java的mvc框架吧(三)

自己写一个mvc框架吧(三) 根据Method获取参数并转换参数类型 上一篇我们将url与Method的映射创建完毕,并成功的将映射关系创建起来了.这一篇我们将根据Method的入参参数名称.参数类型来获取参数,并转换参数类型,使其能够符合Method的定义. 事先说明 因为这里只是一个mvc框架的简单实现,仅仅只做到了基本数据类型和基本数据类型包装类的转换,没有做到spring那样的很复杂的数据绑定功能.所以我在代码上面加了比较强的校验. 现在开始写吧 我们从一次http请求中获取参数的时候,