AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

JSR 371——Java EE 8 新的 MVC 框架

  • 2014-11-05
  • 本文字数:819 字

    阅读完需:约 3 分钟

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 针对的场景各不相同,它们依然有一些共同的地方

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

感谢郭蕾对本文的审校。

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

2014-11-05 03:415113
用户头像

发布了 321 篇内容, 共 127.6 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

GitHub上标星75k+超牛的《Java面试突击版》,分享PDF离线版

Java 程序员 后端

JAVA 微信小程序 解密 用户信息encryptedData

Java 程序员 后端

JAVA 线上故障排查完整套路

Java 程序员 后端

Filter 过滤器和 Listener 监听器

Java 程序员 后端

Flutter中的widget

Java 程序员 后端

HttpClient的两种重试机制

Java 程序员 后端

JAVA 语法 - 关键字 - volatile

Java 程序员 后端

Flink的sink实战之一:初探

Java 程序员 后端

Gitlab Runner的分布式缓存实战

Java 程序员 后端

Go实战(三)-数组array、切片slice语法详解

Java 程序员 后端

Java 移除List中的元素,这玩意讲究!

Java 程序员 后端

Flink on Yarn三部曲之三:提交Flink任务

Java 程序员 后端

Hadoop之MapReduce04【客户端源码分析】

Java 程序员 后端

Flink数据源拆解分析(WikipediaEditsSource)

Java 程序员 后端

Git Flow 的正确使用姿势

Java 程序员 后端

IT人不仅要提升挣钱能力,更要拓展挣钱途径

Java 程序员 后端

Java 多线程 —— 生产者消费者问题

Java 程序员 后端

Java 线程池原理分析

Java 程序员 后端

GitHub 上 1

Java 程序员 后端

HarmonyOS(鸿蒙)——全面入门

Java 程序员 后端

intellij idea2019打开项目启动总闪退

Java 程序员 后端

Jaeger的客户端采样配置(Java版)

Java 程序员 后端

Java 小记 — RabbitMQ 的实践与思考

Java 程序员 后端

Android开发:往项目工程里面新引入工具包的步骤

三掌柜

11月日更

IBM大面积辞退40岁+的员工,如何避免可怕的中年危机?

Java 程序员 后端

jackson学习之二:jackson-core

Java 程序员 后端

Java 结合实例学会使用 静态代理、JDK动态代理、CGLIB动态代理

Java 程序员 后端

Java 生态圈中的嵌入式数据库,哪家强?

Java 程序员 后端

gRPC学习之五:gRPC-Gateway实战

Java 程序员 后端

HttpClient工具类

Java 程序员 后端

模块三作业:外包学生管理系统架构文档

dean

架构实战营

JSR 371——Java EE 8新的MVC框架_Java_孙镜涛_InfoQ精选文章