写点什么

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

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

关注

评论

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

构建下一代去中心化应用:基于BASE链的DApp开发

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

如何通过iPaaS对数据作预警监控

谷云科技RestCloud

API API网关 预警 ipaas

有趣的大模型之我见 | Claude AI

亚马逊云科技 (Amazon Web Services)

API 生成式人工智能 Amazon Bedrock

软件测试学习笔记丨Bug的基本概念

测试人

软件测试

Spring AI 抢先体验,5 分钟玩转 Java AI 应用开发

阿里巴巴云原生

阿里云 云原生 spring cloud alibaba

日志敏感数据扫描和脱敏最佳实践

观测云

数据脱敏 日志处理

PPT目录页怎么做好看?2个自动生成目录的PPT软件推荐!

彭宏豪95

AI PPT 在线白板 AIGC AI生成PPT

酷克数据启动鲲鹏原生应用开发合作

酷克数据HashData

稳扎稳打 部署丝滑 开源即时通讯(IM)项目OpenIM源码部署流程(linux windows mac)

Geek_1ef48b

保姆级指南,从0到1打造你的个人开源项目

Zhendong

Java GitHub 开源

成为榕树:解析华为的智能之路

脑极体

AI

小红书从记忆机制解读信息检索,提出新范式获得 EACL Oral

小红书技术REDtech

gr 检索 信息检索 GDR EACL

构建安全高效的数字货币钱包:开发指南

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

香港虚拟资产现货ETF正式发行,区块链市场再迎历史性时刻

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

全景剖析阿里云容器网络数据链路(七):Terway DataPath V2(Terway≥1.8.0)

阿里巴巴云原生

阿里云 容器 云原生

一键修图拯救五一废片!百度搜索推出AI图片助手

AI浩

人工智能

FlowUs息流接入字节大模型,打造知识管理与协作平台新模态

新消费日报

Linux设备驱动系列(七)——真实的设备驱动程序

Linux内核拾遗

Linux Kenel 内核开发 设备驱动

11个Python循环技巧

不在线第一只蜗牛

Python C#

TikTok海外直播网络环境有什么要求?

Ogcloud

TikTok 海外直播专线 海外直播 tiktok直播 海外直播网络

深度干货 | 如何兼顾性能与可靠性?一文解析YashanDB主备高可用技术

YashanDB

数据库 高可用 yashandb 崖山数据库

SD-WAN的核心竞争力有哪些?

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

亚马逊国际AMAZON商品详情API返回值深度解析

技术冰糖葫芦

api 货币化 API 接口 pinduoduo API

PCB中泪滴的作用

芯动大师

PCB 电路板 泪滴

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