4月10-12日 QCon 北京,与全球 140+ 顶尖工程师共同解构 AI 时代的技术浪潮! 了解详情
写点什么

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:414960
用户头像

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

关注

评论

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

Linux 安装gradle

javaNice

Java Linux Gradle

推动NLP预训练模型的创新发展

百度开发者中心

nlp 大模型 LLM

华秋第九届硬创大赛全国总决赛,邀你一同见证~

华秋电子

Python系列:如何提高python程序代码的健壮性

树上有只程序猿

Python

合约跟单交易所开发流程

区块链技术

平凯星辰 TiDB 获评 “2023 中国金融科技守正创新扬帆计划” 十佳优秀实践奖

编程猫

助力开发者健康长效增长 OPPO 开启应用和服务生态新篇章

Geek_2d6073

最新前端技术趋势——菜鸟必看

秃头小帅oi

前端

软件测试 | 基于ChatGPT的个性化人工智能应用开发:解锁交互新维度

测吧(北京)科技有限公司

测试

腾讯云大数据获“年度金融科技创新之星”,新一代数据架构首次公布

腾讯云大数据

大数据

使用Python调用API接口获取京东关键词详情数据

Noah

HarmonyOS三个设计原则教你如何设计高使用率万能卡片

新消费日报

赛车竞速游戏:art of rally拉力赛车 for Mac 1.5.0中文版

繁星

赛车竞速游戏 Art of Rally

华秋这场技术研讨邀请了哪些重磅嘉宾?

华秋电子

预训练模型在迁移学习中的应用

百度开发者中心

深度学习 大模型 LLM

Mybatis和其他主流框架的整合使用

不在线第一只蜗牛

开源 mybatis 项目开发

如何防止网站被黑,降低网站被攻击的风险?

九凌网络

有完美的 React 框架吗?三巨头之战:Remix、Next.js 和 Gatsby

互联网工科生

前端开发 React

软件测试 | 人工智能在自动化缺陷检测中的崭新前景

测吧(北京)科技有限公司

测试

万界星空科技云MES管理系统和ERP的对接

万界星空科技

数字化转型 mes 云mes 万界星空科技 万界星空科技mes

巴适得板!这次我们和四川一起加“数”前行!

天翼云开发者社区

云计算 大数据

更快更省更好用!天翼云云原生一体机iStack打通物云最后一公里!

天翼云开发者社区

云计算 云原生

苹果Mac动态壁纸:Dynamic Wallpaper 16.7中文版

繁星

动态壁纸 Dynamic Wallpaper

云主机CPU和内存配比:优化资源分配的关键

天翼云开发者社区

云计算 cpu 云主机

软件测试 | 人工智能在自动化测试脚本生成中的应用

测吧(北京)科技有限公司

测试

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