001 SpringMVC介绍

文章目录

  • 基础概念介绍
    • BS和CS开发架构
    • 应用系统三层架构
    • MVC设计模式
  • SpringMVC介绍
    • SpringMVC是什么
    • SpringMVC与Spring的联系
    • 为什么要学习SpringMVC
  • 六大组件介绍
    • 六大组件(MVC组件其他三大组件)说明

基础概念介绍

BS和CS开发架构

  • 一种是C/S架构,也就是客户端/服务器
  • 一种是B/S架构,也就是浏览器/服务器

说明:
我们现在使用Java开发的大多数都是web应用,这些应用几乎全都是基于 B/S 架构进行开发的。
那么在 B/S 架构中,应用系统标准的三层架构分为:表现层、业务层、持久层。这种三层架构在
我们的实际开发中使用的非常多。

JavaEE制定了一套规范,去进行BS结构的处理。这套规范就是Servlet。

应用系统三层架构

表现层:

  • 也就是我们常说的web 层。
  • 它负责接收客户端请求,向客户端响应结果,通常客户端使用http 协议请求web 层,web 层
    需要接收 http 请求,完成 http 响应。
  • 表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。
  • 表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应
    给客户端。
  • 表现层的设计一般都使用 MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系)

业务层:

  • 也就是我们常说的 service 层。
  • 它负责业务逻辑处理,和我们开发项目的需求息息相关。web 层依赖业务层,但是业务层不
    依赖 web 层。
  • 业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。(也就
    是我们说的, 事务应该放到业务层来控制)

持久层:

  • 也就是我们是常说的 dao 层。
  • 负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进行持久化的载体,
    数据访问层是业务层和持久层交互的接口,业务层需要通过数据访问层将数据持久化到数据
    库中。
  • 通俗的讲,持久层就是和数据库交互,对数据库表进行曾删改查的。

MVC设计模式

MVC 是模型(model)-视图(view)-控制器(controller)的缩写, 是一种用于设计编写 Web 应用程序
表现层的模式。

MVC 设计模式的三大角色:

  • Model(模型):
    模型包含业务模型和数据模型,数据模型用于封装数据,业务模型用于处理业务。
  • View(视图):
    通常指的就是我们的 jsp 或者 html。作用一般就是展示数据的。
    通常视图是依据数据模型创建的。
  • Controller(控制器):
    是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑的。

SpringMVC介绍

SpringMVC是什么

  • SpringMVC 是一种基于MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于
    SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建
    Web 应用程序的全功能 MVC 模块。
  • 使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring 的
    Spring MVC 框架或集成其他 MVC 开发框架,如 Struts1(现在一般不用),Struts2 等。
  • SpringMVC 已经成为目前最主流的 MVC 框架之一,并且随着 Spring3.0 的发布,全面超越
    Struts2,成为最优秀的 MVC 框架。
  • 它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还
    支持RESTful 编程风格的请求。

SpringMVC与Spring的联系

Spring MVC 全名叫 Spring Web MVC ,它是 Spring家族Web模块 的一个重要成员。这一点,我们可以
从 Spring 的整体结构中看得出来:
springmvc

为什么要学习SpringMVC

也许你要问,为什么要学习Spring MVC呢?Struts2不才是主流吗?看SSH的概念有多火?
其实很多初学者混淆了一个概念,SSH实际上指的是 Struts1.x+Spring+Hibernate 。这个概念已经
有十几年的历史了。在Struts1.x时代,它是当之无愧的霸主,但是在新的MVC框架涌现的时代,形式已经不是这样了,Struts2.x借助了Struts1.x的好名声,让国内开发人员认为Struts2.x是霸主继任者(其实两者在技术上无任何关系),导致国内程序员大多数学习基于Struts2.x的框架,又一个貌似很火的概念出来了S2SH( Struts2+Spring+Hibernate )整合开发。
SpringMVC的市场占有率较高,这说明了学习SpringMVC的必要性
了,再说了,SpringMVC本身就是spring家族的一员,整合spring时,SpringMVC根本无需中间整合包,而struts2得需要。

六大组件介绍

六大组件

六大组件(MVC组件其他三大组件)说明

  1. 在 springmvc 的各个组件中,前端控制器、处理器、视图称为 springmvc 的MVC组件
  2. 在 springmvc 的各个组件中,处理器映射器、处理器适配器、视图解析器称为 springmvc
    的三大组件
  3. 需要开发的组件有:处理器、视图
  • DispatcherServlet:前端控制器

用户请求到达前端控制器,它就相当于mvc模式中的C,dispatcherServlet是整个流程控制的中心,
由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。

  • Handler:处理器

Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下
Handler对具体的用户请求进行处理。
由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。

  • View:视图

springmvc框架提供了很多的View视图类型的支持,包括:jstlView、freemarkerView、
pdfView等。我们最常用的视图就是jsp。
一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务
需求开发具体的页面。

  • HandlerMapping:处理器映射器

HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不
同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

  • HandlAdapter:处理器适配器

通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的
处理器进行执行。

  • View Resolver:视图解析器

View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视
图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/37224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【IJCAI2024】LeMeViT: Efficient Vision Transformer with Learnable Meta Tokens

【IJCAI2024】LeMeViT: Efficient Vision Transformer with Learnable Meta Tokens for Remote Sensing Image Interpretation 论文:https://arxiv.org/abs/2405.09789 代码:https://github.com/ViTAE-Transformer/LeMeViT 由于相邻像素和图像块之间的高…

【2024年更新】ZF关注度指数大合集(包含8类数据)

数据简介:共包含8类数据 1. 地方ZF环境关注度指数:2007-2021 2. 地方ZF数字关注度指数:1999-2021 3. 省级ZF数字关注度指数:2001-2024 4. 农业新质生产力ZF关注度指数:2001-2024 5. 新质生产力ZF关注度指数&#…

c语言入门

c语言入门 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程…

关于怎么将wireshark抓包视频流转为视频播放出来

0.安装wireshark 安装PotPlayer 1.将以下两个插件放入 C:\Program Files\Wireshark\plugins 目录中 2.筛选视频流数据包,右键Decode As… 改为RTP 或者 右键->follow(追踪流)->UDP stream 然后叉掉弹窗 3.选择菜单Edit->Prefe…

shell编程实战

1.1 shell脚本编程的步骤 需求分析:确定功能 命令测试:确定脚本需要的关键命令 编辑脚本 测试脚本 1.2 操作 1.2.1 实验一 1.需求描述 (1)统计网络中的服务器的mac 注:ARP,地址解析协议 注: (2)检查哪些主机开…

《玫瑰的故事》为何能触动亿万观众的心?

大家最近有看神仙姐姐的新剧嘛? 《玫瑰的故事》作为一部备受瞩目的作品,其影响力不仅在于精彩的剧情和演员们精湛的演技,更在于它所传达的深刻情感和人生哲理。而这部作品之所以能够大爆并引起大批观众的共鸣,背后也有着更多重的原因。 一…

ingress相关yaml文件报错且相关资源一切正常解决方法

今天在执行ingress相关文件的时候莫名其妙报错了,问了别人得知了这个方法 执行ingress相关文件报错 01.yaml是我自己创建关于ingress的yaml文件 报错信息 且相关资源一切正常 解决方法 kubectl get validatingwebhookconfigurations删除ingress-nginx-admissio…

深入探索大模型的魅力:前沿技术、挑战与未来展望

目录 一、大模型的前沿技术 二、大模型面临的挑战 三、大模型的未来展望 四、总结 在当今人工智能领域,大模型不仅是一个热门话题,更是推动技术进步的重要引擎。从深度学习的浪潮中崛起,大模型以其卓越的性能和广泛的应用前景&#xff0c…

快速降低地平线4延迟 极限竞速地平线4延迟严重这样做

极限竞速地平线4全新的开放式剧情设计,让玩家的每一次驾驶都充满了未知与挑战。与此同时,现实世界的玩家也将与玩家一同在这片土地上驰骋。在这里,时间、天气和四季的变化都仿佛触手可及,玩家将亲身体验到真实而震撼的赛车世界。在…

20240624(周一)AH股行情总结:A股低开低走, 恒生科技指数跌2%,贵州茅台转跌为涨

内容提要 A股三大指数收盘均跌超1%,半导体、智慧医疗、商业航天概念领跌,中芯国际跌超3%,盘中一度涨2%。水电股逆势走强;白酒股低开高走,贵州茅台翻红,盘初曾跌3%。微盘股指数大跌4%。 正文 周一&#x…

数据恢复篇:如何在Android上恢复删除的短信

如果您不小心删除了Android设备上的短信并想要检索它们,则可以尝试以下方法: 如何在Android上恢复删除的短信 检查您的备份: 如果您之前备份了Android设备,则可以从备份中恢复已删除的短信。检查您设备的内部存储空间或 Google 云…

Halcon 重叠区域 显示汉字 图像分割

一 如何填充区域之间的GAP或分割重叠区域 read_image(Image,fabrik)*区域生长法将图像分割成相同强度的区域,并将其划分成大小为行*列的矩形。 为了确定两个相邻的矩形是否属于相同的区域, *仅使用其中心点的灰度值。 如果灰度值差小于等于公差&#xff…

php反序列化漏洞简介

目录 php序列化和反序列化简介 序列化 反序列化 类中定义的属性 序列化实例 反序列化实例 反序列化漏洞 序列化返回的字符串格式 魔术方法和反序列化利用 绕过wakeup 靶场实战 修复方法 php序列化和反序列化简介 序列化 将对象状态转换为可保持或可传输的格式的…

Linux—系统安全及应用

目录 一、账号安全控制 1、系统账号清理 1.1、将用户账号设置为无法登录 1.2、锁定长期不使用的账号 1.3、删除无用的账号 1.4、锁定账号文件passwd、shadow 2、密码安全控制 2.1、设置密码有效期 2.1.1、适用于新建用户 2.1.2、适用于已有用户 2.2、强制用户下次登录…

①常用API----Math

public static int abs(int a) // 返回参数的绝对值 public static double ceil(double a) // 返回大于或等于参数的最小整数 public static double floor(double a) // 返回小于或等于参数的最大整数 public static int round(f…

ETAS工具导入DEXT生成Dcm及Dem模块(一)

文章目录 前言Cfggen之前的修改ECU关联DcmDslConnectionDiagnostic ProtocolDiagnostic Ecu Instance PropsCommonContributionSetEvent修改communication channel总结前言 诊断模块开发一般是先设计诊断数据库,OEM会释放对应的诊断数据库,如.odx文件或.cdd文件。如果OEM没有…

如何修复Power BI【View usage metrics report】指标报表数据源更新问题?

故事背景 有朋友留言询问:通过我之前写的 想知道Power BI用户访问报告的次数?快来学习! 这篇文章,了解了如何查看Power BI用户访问报告的详情。 但是最近由于创建【View usage metrics report】指标报表的小伙伴离职了&#x…

【干货】一文讲清楚社群裂变的主要模式和SOP流程

一、社群裂变的主要模式 社群裂变是一种依赖于现有成员的推广以吸引新成员的增长策略。以下是几种主要的社群裂变模式: 老带新裂变 定义:通过老用户带动新用户,同时给予某一方或双方奖励的一种裂变形式。 示例:任务宝活动&…

公交车载视频监控系统概述

引言 随着城市交通的不断发展,公交车作为城市公共交通的重要组成部分,其安全性和管理效率越来越受到关注。为了提升公交车运营的安全性和管理效率,基于索迪迈视频监控管理平台,结合3G/4G网络技术,我们构建了一套公交车…

三星DRAM、NAND,“又双叒叕”带头涨价了

据韩国媒体《每日经济新闻》报道,三星电子计划在第三季度上调服务器DRAM和企业级NAND闪存的价格,涨幅预计在15%-20%,主要受人工智能(AI)需求激增的推动。这一举措有望提振公司下半年业绩。 据《经济日报》报道援引业内消息,由于厂…