请简述你对SpringMVC的理解

SpringMVC是一种基于Java语言开发,实现了WebMVC设计模式,请求驱动类型
的轻量级Web框架。
采用了MVC架构模式的思想,通过把Model,View,Controller分离,将Web层进
行职责解耦,从而把复杂的Web应用分成逻辑清晰的几个组件,在SpringMVC中有
9大重要的组件。
下面详细说明一下这些组件的作用和初始化方法:
1、MultipartResolver文件处理器
对应的初始化方法是initMultipartResolver(context),用于处理上传请求。
2、LocaleResolver当前环境处理器
其对应的初始化方法是initLocaleResolver(context)
SpringMVC主要有两个地方用到了Locale:
一是ViewResolver视图解析的时候;
二是用到国际化资源或者主题的时候。
3、ThemeResolver主题处理器
其对应的初始化方法是initThemeResolver(context),
用于解析主题。也就是解析样式、图片及它们所形成的显示效果的集合。
4、HandlerMapping处理器映射器
其对应的初始化方法是initHandlerMappings(context),
在SpringMVC中会有很多请求,每个请求都需要一个Handler处理。
HandlerMapping的作用便是找到请求相应的处理器Handler和Interceptor。
5、HandlerAdapter处理器适配器
其对应的初始化方法是initHandlerAdapters(context)
从名字上看,它就是一个适配器。HandlerAdapters要做的事情就是如何让固定的
Servlet处理方法调用灵活的Handler来进行处理
6、HandlerExceptionResolver异常处理器
对应的初始化方法是initHandlerExceptionResolvers(context)
它的主要作用是处理其他组件产生的异常情况。
7、RequestToViewNameTranslator视图名称翻译器
其对应的初始化方法是initRequestToViewNameTranslator(context)
它的作用是从请求中获取ViewName。
有的Handler处理完后并没有设置View也没有设置ViewName,这时就需要从
request中获取,而RequestToViewNameTranslator就是为request提供获取
ViewName的实现。
8、ViewResolvers页面渲染处理器
其对应的初始化方法是initViewResolvers(context)
ViewResolvers的主要作用是将String类型的视图名和Locale解析为View类型的视
图。
9、FlashMapManager参数传递管理器
其对应的初始化方法是initFlashMapManager(context)
在实际应用中,为了避免重复提交,我们可以在处理完post请求后重定向到另外一个
get请求,这个get请求可以用来返回页面渲染需要的信息。
FlashMap就是用于这种请求重定向场景中的参数传递。
在SpringMVC的九大组件中,涉及到请求处理响应的核心组件分别是:
1.HandlerMapping、
2.HandlerAdapter、
3.ViewResolver
这张图表示这三个组件的整体执行流程,具体调用分为以下几个步骤:
1、HandlerMapping回到调用HandlerAdapter
2、HandlerAdapter会返回ModelAndView
3、ModelAndView根据用户传入参数得到ViewResolvers
4、ViewResolvers会将用户传入的参数封装为View,交给引擎进行渲染。
注意:有大家最熟悉的两个类:ModelAndView和View类并不属于SpringMVC九
大组件之列。

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

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

相关文章

2024水科技大会暨技术装备成果展览会——城镇雨污分流及污水处理提质增效论坛(五)

为积极应对“十四五”期间我国生态环境治理面临的挑战,加快生态环境科技创新,构建绿色技术创新体系,全面落实科学技术部、生态环境部等部委编制的《“十四五”生态环境领域科技创新专项规划》,积极落实四川省人民政府与上海大学《…

nginx 具体介绍

一,nginx 介绍 (一)nginx 与apache 1, Apache event 模型 相对于 prefork 模式 可以同时处理更多的请求 相对于 worker 模式 解决了keepalive场景下,长期被占用的线程的资源浪费问题 因为有监听线程&#…

《Python 语音转换简易速速上手小册》第3章 文本到语音的转换(2024 最新版)

文章目录 3.1 文本到语音的原理3.1.1 基础知识3.1.2 主要案例:自动新闻播报器案例介绍案例 Demo案例分析3.1.3 扩展案例 1:智能助手案例介绍案例 Demo案例分析3.1.4 扩展案例 2:电子书阅读器案例介绍案例 Demo

Kafka常见问题解析

文章目录 1. kafka为什么不支持读写分离?这样做的优点有哪些?2. Kafka可靠性研究2.1生产者2.2 服务端2.3 消费者 3. Kafka零拷贝原理4. Kafka生产者发送消息流程 1. kafka为什么不支持读写分离?这样做的优点有哪些? Kafka 不直接…

啤酒:精酿啤酒与沙拉的轻盈享受

在繁忙的生活中,我们总是在寻找一种简单而健康的美食享受。当Fendi Club啤酒与沙拉相遇,它们将为我们带来一场轻盈的味觉之旅。 Fendi Club啤酒,以其醇厚的口感和淡淡的麦芽香气而闻名。这款啤酒在酿造过程中采用了特别的工艺,使得…

5 原型模式 Prototype

1.模式定义: 指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 2.应用场景: 当代码不应该依赖于需要复制的对象的具体类时,请使用Prototype模式。 Spring源码中的应用 org.springframework.beans.factory.support.AbstractB…

从零开始学习PX4源码1(两个三维矢量如何转换成四元数)

目录 文章目录 目录摘要参考网址推导过程 摘要 本节主要记录px4如何从两个三维旋转矢量转换到四元数的过程,欢迎批评指正!!! 参考网址 三维矢量转四元数 推导过程

力扣 面试题 05.06. 整数转换

思路: 牵扯到二进制数,基本上要考虑位运算符,相关知识可以见http://t.csdnimg.cn/fzts7 之前做过类似的题目,大致思路就是先用按位异或^找出不同位,再用n&(n-1)计算出不同位的个数&#x…

11、内网安全-横向移动NTLM-Relay重放Responder中继攻击LdapEws

用途:个人学习笔记,有所借鉴,欢迎指正! 目录 前提知识: 一、横向移动-NTLM 中继攻击-Relay 重放-SMB 上线 1、CS权限转给MSF: 2、MSF: 3、添加路由: 4、smb_relay重发模块: 5、受控主机输…

《熬夜整理》保姆级系列教程-玩转Wireshark抓包神器教程(2)-Wireshark在Windows系统上安装部署

1.简介 上一篇主要讲解一下软件的介绍以及软件的抓包原理。 2.安装部署环境 2.1操作系统 1.宏哥的环境是Windows 10版本 64位系统(32位的同学自己想办法哦),其实宏哥觉得无论在什么平台,多少位,其实安装都是类似的…

机遇与挑战并存 企业级软件如何突围向上

如果企业级软件能够像TO C产品那样,购买者就是使用者,那企业级软件市场可能会大不一样。不过,事实并非如此。因为无论是商业模式,还是专业程度和用户群体,二者都有显著区别。而这种区别也使得我们不得不从一个全新视角…

压缩感知常用的重建算法

重建算法的基本概念 在压缩感知(Compressed Sensing, CS)框架中,重建算法是指将从原始信号中以低于奈奎斯特率采集得到的压缩测量值恢复成完整信号的数学和计算过程。由于信号在采集过程中被压缩,因此重建算法的目标是找到最符合…