在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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

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

关注

评论

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

​五大不良 coding 习惯,你占了几样?

SEAL安全

Code 代码规范 CODING

2022各互联网大厂面经及总结+大厂Java岗面试真题解析(进大厂必看攻略)

程序知音

Java 程序员 Java 面试 后端技术 八股文

华为云桌面说“流畅”的时候,究竟在说什么

科技云未来

RocketMQ高可用设计之异步刷盘

急需上岸的小谢

8月月更

网红50万卖微信号被判交易无效:如何监管互联网账号交易市场

石头IT视角

Kubernetes 核心组件

CTO技术共享

开源 签约计划第三季

沟通不受限,审批不堆积 深大智能通过华为云WeLink+OA实现办公提速

神奇视野

3000人无缝连接,WeLink助力华荣科技全场景数字化办公

神奇视野

如何用紧凑型语音表征打造高性能语音合成系统

小红书技术REDtech

深度学习 语音合成 自编码器 表征学习 语音表征

2022 Gartner RPA魔力象限,弘玑Cyclone位置飞跃国产RPA进击全球

王吉伟频道

RPA 机器人流程自动化 Gartner RPA魔力象限 弘玑Cyclone

用户权限-Linux系统用户管理

Albert Edison

Linux centos 运维 用户权限 8月月更

每日一R「10」数据结构(一)智能指针

Samson

8月日更 ​Rust

Kubernetes Nginx配置热加载

CTO技术共享

开源 签约计划第三季

AIRIOT答疑第9期|AIRIOT平台服务于哪些客户?

AIRIOT

低代码 物联网 低代码,项目开发

沉浸感拉满!这样的电影杀约起来

科技云未来

华为云会议智能会议室助力财通证券加速数字化

科技怪咖

华为发布IdeaHub S2系列,与华为云会议结合更强大!

科技怪咖

微信小程序开发速览

乌龟哥哥

8月月更

ITIL服务支持5个运营级流程简单介绍

阿泽🧸

ITIL 8月月更

企业搭建知识库的重要性,你了解多少?

Geek_da0866

华为云桌面说“高清”的时候,究竟在说什么

科技云未来

IPv6中的隧道技术

穿过生命散发芬芳

ipv6 8月月更 隧道技术

华为云会议,用高效联接推进工业企业数字化转型

sofiya

金融和科创深化合作,常熟农商银行与博云签署战略合作协议

BoCloud博云

云计算 容器 云原生

华为云安全云脑,让企业云化运营更放心

IT资讯搬运工

创建知识库使您的客户能够体验自助服务

Geek_da0866

Kubernetes服务的注册与发现

CTO技术共享

签约计划第三季

在Rust和C之间传递字符串,有 7 种方法!

非凸科技

c rust

华为云主机安全助力企业种出“金葫芦”

IT资讯搬运工

游族马寅龙:常见信息安全风险及应对方案

RTE开发者社区

网络安全 创业讲堂

政企视频会议首选,华为云OneMeeting全场景视频会议解决方案正式发布

sofiya

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