写点什么

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

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

关注

评论

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

BFF网关模式开发指南

WizInfo

一文读懂 Kubernetes 存储设计

江湖十年

k8s 后端 存储 Kubernetes 集群

全面预算管理对企业盈利能力的影响

智达方通

运营管理 全面预算管理 盈利能力 数据互通 管理报告

一文熟知网络 – 文章巨长,但是很详细

邹志全

网络编程 计算机网络 架构设计

开心档之Web Quality - 无障碍(WAI)

雪奈椰子

开心档之Web 品质 - 国际化

雪奈椰子

CSS is、where和has选择器

南城FE

CSS 前端开发 选择器 伪类

华为云流水线CodeArts Pipeline怎么样?能实现哪些功能?

华为云PaaS服务小智

云计算 PaaS 云服务 华为云 华为开发者大会

IoTOS-v1.2.1接入J-IM(t-io)后台通知App

开源物联卡管理平台-设备管理

物联网平台 IoT 开源物联网 国产开源 开源项目介绍

Centos7x设置服务器禁ping【实用】

百度搜索:蓝易云

云计算 Linux 运维 ping

Linux系统-gzip命令 – 压缩和解压文件

百度搜索:蓝易云

Linux 服务器 云服务器 gzip 蓝易云

毕马威:中国算力关联产业规模可达24万亿元|报告

B Impact

2023-07-09:给定N、M两个参数, 一共有N个格子,每个格子可以涂上一种颜色,颜色在M种里选, 当涂满N个格子,并且M种颜色都使用了,叫一种有效方法。 求一共有多少种有效方法。 1 <= N,

福大大架构师每日一题

福大大架构师每日一题

Linux系统 ls命令 – 显示指定工作目录下的文件及属性信息

百度搜索:蓝易云

云计算 Linux 运维 云服务器 服务器租用

ArcGIS模型构建器ModelBuilder的使用方法

EquatorCoco

架构 模型调参 Arch

重磅!用友首个全球交付中心在南昌成立啦!

用友BIP

Docker学习路线1:介绍

小万哥

Docker 程序员 容器 后端 开发

Linux系统 cp命令 – 复制文件或目录

百度搜索:蓝易云

云计算 Linux 运维 服务器 云服务器

率先布局 RWA 赛道,PoseiSwap 成为最具先进性的 DEX

西柚子

聚焦前沿技术产业应用,文心大模型应用研讨会于广州顺利举办

飞桨PaddlePaddle

人工智能 百度 paddle 百度飞桨

兼容性测试的正确打开方式

老张

兼容性测试 兼容性

暗黑2能用Java开发?还能生成APP?

烧霞

游戏开发 java17

磁盘阵列(RAID)是什么?RAID有什么好处?

百度搜索:蓝易云

Linux 阿里云 云服务器 硬盘 阿里云、

【实用教程】Linux系统Windows系统硬盘扩容教程

百度搜索:蓝易云

Linux 运维 服务器 云服务器 服务器租用

Huggingface:导出transformers模型到onnx

程序员架构进阶

ONNX 大模型 7月日更 7月月更 huggingface

落地领域大模型应知必会(2): 轻量化微调

Baihai IDP

人工智能 企业号 7 月 PK 榜 大模型微调 领域大模型 轻量化微调

直播预约|漫漫用户增长之路,如何快人一手

HarmonyOS SDK

HMS Core

C++的list-map链表与映射表

芯动大师

Linux升级命令yum upgrade和yum update,有什么区别?

百度搜索:蓝易云

云计算 Linux 服务器 云服务器 服务器租用

聊聊「画图」和工具

Java 架构 画图工具

华为云出品《深入理解高并发编程:Java线程池核心技术》电子书发布

华为云PaaS服务小智

云计算 华为云 java 技术提升 华为开发者大会

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