写点什么

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

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

关注

评论

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

2023云栖大会即将开幕,速来免费预约!

阿里云视频云

云计算 阿里云 云栖大会

强静态类型,真的无敌

树上有只程序猿

静态 类型

认证授权双保驾 身份管理的选择关键 ——华为云OneAccess应用身份管理服务 (第一篇 工具介绍)

华为云PaaS服务小智

云计算 软件开发 华为云 应用身份管理

智慧公厕:改善城市生活的小细节

光明源智慧厕所

如何构建安全的App网络通信?

ZA技术社区

数据安全 众安科技 众安保险 ZA技术社区

慕圣妃轻医美4998系统开发

张泽🐟APP小程序开发定制

中国企业出海记:跨文化管理须“换鞋走路”

出海的猹

管理 文化 企业出海

作为前端应该了解的后端常识

程序员万金游

Vue js #前端 #HTTP

一图看懂华为云CodeArts Inspector 三大特性,带你玩转漏洞管理服务

华为云PaaS服务小智

云计算 软件开发 华为云

国产化即时通讯平台WorkPlus,助力企业实现自主可控的沟通与协作

WorkPlus

巧用指标平台DataIndex,五步法轻松实现指标管理

袋鼠云数栈

大数据 数据中台 指标 指标管理 指标建设

软件测试/测试开发丨App自动化—CSS 定位与原生定位

测试人

Python 程序员 软件测试 自动化测试 测试开发

和鲸 ModelWhale 与华为 OceanStor 2910 计算型存储完成兼容性测试

ModelWhale

华为 信创 数据存储 数据科学 数据科学平台

通过零代码ETLCloud实现数据自动化同步

RestCloud

数据同步 ETL

报名开始|聚焦云原生供应链、AI 基础设施!KCD 2023 杭州站等你

OpenAnolis小助手

操作系统 杭州 龙蜥社区 kata KCD

开发搭建足球赛事APP软件平台,获利方式

软件开发-梦幻运营部

元宇宙Gamefi链游系统定制开发搭建

V\TG【ch3nguang】

Apache IoTDB 作为合作伙伴参加 Doris Summit Asia 2023!

Apache IoTDB

低代码开发不可能取代程序员

互联网工科生

低代码

代码混淆界面介绍

雪奈椰子

基于 ACK Fluid 的混合云优化数据访问(三):加速第三方存储的读访问,降本增效并行

阿里巴巴云原生

阿里云 云原生 容器服务

一图看懂CodeArts Inspector 三大特性,带你玩转漏洞管理服务一图看懂CodeArts Inspector 三大特性,带你玩转漏洞管理服务

华为云开发者联盟

云计算 后端 华为云 漏洞修复 华为云开发者联盟

云原生网关可观测性综合实践

阿里巴巴云原生

阿里云 微服务 云原生 监控

XMind for mac (XMind思维导图)v23.09中文激活版

mac

XMind 思维导图软件 苹果mac Windows软件

软件测试/测试开发丨App自动化测试——显示等待高级使用

测试人

Python 程序员 软件测试 app自动化测试 显式等待

南扬集团轻医美4998系统开发

张泽🐟APP小程序开发定制

OpenHarmony嵌套类对象属性变化:@Observed装饰器和@ObjectLink装饰器

OpenHarmony开发者

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