写点什么

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

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

关注

评论

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

高防IP:数字化时代企业网络安全的核心盾牌

德迅云安全杨德俊

解析 RocketMQ 业务消息--顺序消息

Apache RocketMQ

RocketMQ 云原生 消息队列 消息集成 mq消息集成

解析 RocketMQ 业务消息——事务消息

Apache RocketMQ

RocketMQ 云原生 消息队列 事务消息

RocketMQ 消息集成:多类型业务消息——定时消息

Apache RocketMQ

阿里云 RocketMQ 云原生 消息队列 定时消息

JimuReport 积木报表 v2.1.1 版本发布,免费开源的报表和大屏设计

JEECG低代码

数据可视化 报表 数据大屏 报表工具 数据BI

Apache RocketMQ 在阿里云大规模商业化实践之路

Apache RocketMQ

阿里云 RocketMQ 云原生 消息队列

分库分表之后如何使用?面试可以参考这些话术

王中阳Go

面试 分库分表

生成式AI实现多模态信息检索新突破

qife122

机器学习 生成式AI

为什么海外舆情监测将成为品牌出海的底层能力?

沃观Wovision

出海企业 海外舆情监控 沃观Wovision 舆情监测系统

Fabarta个人专属智能体多版本上线:覆盖多领域,诚邀免费体验!

Fabarta

人工智能 智能体 agent

华为开发者空间-云开发环境,实现本地VSCode远程开发小程序

华为云开发者联盟

vscode 华为开发者空间

我试用了5款文本配音工具后的真实感受

石臻臻的杂货铺

AI TTS 文本转语音

从技术架构到场景落地:JetLinks 与 MyEMS 的差异化路径与价值解析

开源能源管理系统

开源 开源能源管理系统

[大厂实践] 利用 TCP 拥塞控制算法增强分布式系统服务降级

俞凡

架构 大厂实践

Mac系统编程入门指南:从环境配置到高效编码

qife122

命令行工具 Mac开发

海外舆情监测的核心技术三件套

沃观Wovision

海外舆情监控 沃观Wovision 舆情监测系统

CST补丁安装教程-CST Studio Suite 2022 SP4 补丁包

思茂信息

cst CST软件 CST Studio Suite

AI少儿英语背单词APP的开发流程

北京木奇移动技术有限公司

软件外包公司 APP外包公司 AI英语学习

本地CodeArts IDE连接开发者空间 - 云开发环境,完成小游戏开发

华为云开发者联盟

华为CodeArts 华为开发者空间

阿里云基于全新 RocketMQ 5.0 内核的落地实践

Apache RocketMQ

阿里云 RocketMQ 云原生 消息队列

区块链Web3项目开发框架

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

开源赋能双碳:MyEMS 能源管理系统的架构与实践价值

开源能源管理系统

开源 开源能源管理系统 国能国标

基于华为开发者空间云开发环境部署Coze Studio + Maas构建智能体应用

华为云开发者联盟

华为云ModelArts DeepSeek v3 华为开发者空间 Coze开源 cozestudio

SharePoint漏洞被利用传播勒索软件

qife122

网络安全 SharePoint

小红书笔记详情API响应数据解析

tbapi

小红书 小红书笔记详情接口 小红书API 小红书数据采集

开源驱动下的能源管理革新:安全自主可控与 MyEMS 的实践路径

开源能源管理系统

开源 开源能源管理系统

基于华为开发者空间,使用MySQL MCP Server对数据源进行获取等操作

华为云开发者联盟

华为开发者空间 DeepSekk mysql'

覆铜板工厂新一代AI智能化MES系统:数字化转型的关键

万界星空科技

mes 制造业数字化 覆铜板行业 智能化MES 覆铜板mes

基于华为开发者空间,使用DeepSeek+Dify构建财务报表分析模型

华为云开发者联盟

dify 华为开发者空间 DeepSekk

瑞士开源大语言模型今夏发布

qife122

大语言模型 多语言处理

Web3 项目外包开发的类型

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

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