写点什么

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

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

关注

评论

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

2022年中国互联网医疗年度盘点

易观分析

互联网医疗

百问百答第46期:极客有约——可观测四类问题的核心思想解析

博睿数据

APM 智能运维 博睿数据 可观测 性能监测

DNS稳定性建设实战-从主机到k8s

boaker

k8s DNS 成本优化 DNS故障 稳定性保障

java培训如何防止 jar 被反编译

@零度

JAVA开发 jar被反译

数据架构师、数据分析师、数据工程师哪个工资更高?

雨果

数据分析师 数据工程师 数据架构师

一文搞懂│工厂模式、单例模式、策略模式、适配器模式、观察者模式的原理和使用

设计模式 策略模式 观察者模式 适配器模式 7月月更

易观分析加入智能投研技术联盟,共促行业数智化发展

易观分析

易观新闻

新思科技助力提升开源治理水平

InfoQ_434670063458

开源 新思科技 软件供应链

大数据基础知识介绍

Lansonli

大数据 7月月更 大数据基础

『51单片机』十分钟学会定时器

謓泽

7月月更

离线批处理的咽喉——Flume基础配置简析

怀瑾握瑜的嘉与嘉

flume 7月月更

官宣|九章云极DataCanvas核心产品通过 “可信大数据”权威评测

九章云极DataCanvas

人工智能 大数据 数据处理 中国信通院 实时决策

将 Terraform 生态粘合到 Kubernetes 世界

阿里巴巴云原生

阿里云 容器 云原生 KubeVela terrafrom

想低成本保障软件安全?5大安全任务值得考虑

SEAL安全

安全左移

AOP 注解详解

武师叔

7月月更

JS 逆向 SMZDM 的登录加密,你学过全文扣JS代码解密吗?

梦想橡皮擦

Python 爬虫 7月月更

得物App数据模拟平台的探索和实践

得物技术

大前端 方案设计 Mooncake 数据模拟平台

干货分享 | 数据仓库如何应对资源不足?9招解除故障

雨果

数据仓库

互联网裁员潮来袭,这5类职场人最容易被淘汰

雨果

互联网裁员

五个核心能力打造普惠金融商业化发展模式

易观分析

普惠金融

新思科技聚焦开源治理 助力提升中国开源产业安全及合规水平

InfoQ_434670063458

开源 软件 供应链 新思科技

阿里云机器学习平台PAI论文高效大模型训练框架Whale入选USENIX ATC'22

阿里云大数据AI技术

深度学习 分布式训练 异构计算

数据治理实施前必须准备的21条锦囊妙计

雨果

数据治理

ShardingSphere 云上实践:开箱即用的 ShardingSphere-Proxy 集群

SphereEx

数据库 云原生 ShardingSphere

TiFlash 面向编译器的自动向量化加速

PingCAP

TiDB

JAVA编程规范之命名风格

源字节1号

软件开发

软件架构-概述

架构

一文读懂:本地数据湖丨数据仓库丨云数据湖的利与弊

雨果

数据仓库 数据湖

国产EDA验证调试工具实现破局 助力芯片设计效率提升

科技热闻

6月月更开奖!速来领取你的奖品!

InfoQ写作社区官方

热门活动 6月月更

web前端培训4个常见的算法问题分享

@零度

算法 前端开发

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