spring MVC

2023-09-20 10:22:00

1.什么是SpringMVC
Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。

2.工作原理
1. 用户发来一个请求,首先进入的是前端控制器DispatcherServlet
2. 前端控制器(DispacherServlet)将用户发来的请求发送给处理器映射器(HandlerMapping)
3. 处理器映射器根据前端控制器发来的用户的请求找到对应符合的控制器(Handler),并且将其封装成处理器执行链,返回给前端控制器。
4. 处理器适配器接收到来自前端控制器的执行链后,找到对应执行此执行链的处理器适配器(HandlerAdapter)来调用的具体的控制器(就是说其对应的方法或者逻辑)
5. 处理器适配器 (HandlerAdaptoer) 会调用对应的具体的 Controller(处理业务逻辑)
6. 控制器执行完成后,会返回一个ModelAndView对象给处理器适配器
7. 处理器适配器将返回来的ModelAndView对象返回给前端控制器(到这里所有的业务处理过程就要完了,接下就是将结果以页面的形式响应给用户)
8. 前端控制器将返回回来的ModelAndView对象交给视图解析器(ViewResolver),视图解析器根据传过来的View对象解析成对应的页面对象
9. ViewResolver 将封装好的页面对象和Model对象返回给 DIspatcherServlet
10. 前端控制器再将返回回来的Model对象交给视图(View)
11. 视图根据传过来的Model对象再一次的对页面进行渲染(将模型数据填充至视图中),然后在返回给前端控制器。
12. 前端控制器将完成的结果响应给浏览器,然后浏览器在展现给用户。


3.核心组件
1)DispatcherServlet是SpringMVC框架了里面的前端控制器
作用:统一处理用户发来的请求和响应,相当于一个中间转换器,减少了各个组件之间的调度,减少的耦合性。

2)HandlerMapping是SpringMVC框架里面的处理器映射器
作用:根据请求发来的url 和method找到对应的Handler(就是说在一个用到SpringMVC框架的项目中会有好多方法和逻辑,这个组件的作用就是找到对应的方法和组件返回给前端控制器)

3)Handler处理器,注意,这个需由工程师自己开发。
作用:在 DispatcherServlet 的控制下,Handler对具体的用户请求进行处理。 

4)HandlerAdapter是SpringMVC框架提供的处理器适配器
作用:根据映射器找到的处理器Handler信息,按照特定的规则去执行相关的处理器 Handler。

5)ViewResolver是SpringMVC框架提供的视图解析器
作用:就是字如其名,就是用来将处理的结果解析成视图来展现给用户。视图解析器根据逻辑视图名解析成物理视图名,生成View视图对象,最后对视图进行渲染响应给用户。

6)View是开发者自己提供的视图
作用:根据model对象的要求来渲染页面,然后前端控器在响应给用户。

更多推荐

【leetcode 力扣刷题】栈—波兰式///逆波兰式相关知识和题目

波兰式、逆波兰式相关知识和题目波兰式、逆波兰式介绍常规表达式转换成逆波兰式==编程让常规表达式转换成逆波兰式==逆波兰式运算过程常规表达式转换成波兰式==编程让常规表达式转换成波兰式==波兰式运算过程150.逆波兰式表达式求值224.基本计算器227.基本计算器Ⅱ282.给表达式添加运算符波兰式、逆波兰式介绍我们常看到

计算机毕业设计 基于SpringBoot餐厅点餐系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌🍅文末获取源码联系🍅👇🏻精彩专栏推荐订阅👇🏻不然下次找不到哟————————————————计算机毕业设计题目《10

个人简历内容

简历个人信息专业技能熟悉Java基础,如集合、代理、反射等。了解Java多线程,了解JVM内存模型、常见GC算法、类加载机制。·#熟悉SSM+SpringBoot框架,熟悉AOP、IOC和SpringBoot自动配置原理,了解SpringMVC执行流程。熟悉MySQL数据库,熟悉InnoDB存储引擎、事务、MVCC机制

2023年云南省职业院校技能大赛中职组“网络安全”赛项样题

2023年云南省职业院校技能大赛中职组“网络安全”赛项样题一、竞赛时间总计:180分钟二、竞赛阶段竞赛阶段任务阶段竞赛任务竞赛时间分值A、B模块A-1登录安全加固180分钟200分A-2数据库加固A-3服务加固SSH\VSFTPDA-4防火墙策略B-1隐写术应用-B400分B-2内存取证B-3数据库渗透B-4Linux

信息检索与数据挖掘 | (二)布尔检索与倒排索引

文章目录📚词项-文档关联矩阵🐇相关名词🐇词项-文档关联矩阵的布尔查询处理📚倒排索引🐇关于索引🐇建立索引🐇基于倒排索引的布尔查询处理🐇查询优化📚字典数据结构🐇哈希表🐇各种树🐇B树vsB+树📚短语查询及含位置信息的倒排记录🐇二元词索引(Biwordindexes)🐇位置信息索引🐇混合索引机制

Hadoop学习总结(搭建Hadoop集群的安装准备)

目录一、安装jdk1、查看电脑中安装的jdk版本2、安装jdk173、配置path(配置jdk)4、对jdk8和jdk17版本做自由切换二、安装vmware三、安装centos7(虚拟机)四、虚拟机设置五、虚拟机网络配置1、查看NAT的网段2、修改主机名(1)修改虚拟机的hosts(2)修改虚拟机的hostname3、

Spring MVC 中的数据绑定和验证机制是什么,如何使用

在SpringMVC应用中,数据绑定和验证是非常重要的一部分,它们可以帮助我们将用户提交的数据绑定到Java对象上,并对数据进行验证,保证数据的正确性和可靠性。在SpringMVC中,数据绑定和验证机制都是通过注解来实现的。本文将介绍SpringMVC中的数据绑定和验证机制,以及如何使用它们。数据绑定数据绑定是将用户提

SSM整合(细节拉满)|将Mybatis、Spring、SpringMVC三个框架整合起来,通过一个demo来练习

环境要求环境:IDEAMySQL5.7.19Tomcat9Maven3.6要求:需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识;数据库环境创建一个存放书籍数据的数据库表,并插入一些示例数据SSM整合新建一个空的Maven项目导入相关依赖将数据库与IDEA连接起来把项目结构

解决Spring Boot 2.7.16 在服务器显示启动成功无法访问问题:从本地到服务器的部署坑

🌷🍁博主猫头虎带您GotoNewWorld.✨🍁🦄博客首页——猫头虎的博客🎐🐳《面试题大全专栏》文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大

如何高效管理多个 Outlook 邮箱?

在我们日常工作和生活中,使用多个Outlook邮箱可以带来一定的便利和灵活性。本文将介绍多个Outlook邮箱的用途,以及如何注册多个Outlook邮箱并确保它们之间不关联。最后,我们将讨论管理多个Outlook邮箱所面临的困难,并介绍一个解决方案——VMLogin浏览器,可以高效管理多个账号并防止关联问题。一、多个O

RocketMQ 发送事务消息

文章目录事务的相关理论事务ACID特性CAP理论BASE理论事务消息应用场景MQ事务消息处理处理逻辑RocketMQ事务消息处理流程官网事务消息流程图rocketmq-client-java示例(gRPC协议)创建事务主题生产者消费者rocketmq-client示例(Remoting协议)生产者消费者事务的相关理论事

热文推荐