Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Spring MVC组件

Spring MVC组件

作者头像
用户2909867
发布于 2018-08-22 03:17:36
发布于 2018-08-22 03:17:36
38200
代码可运行
举报
文章被收录于专栏:互联网大杂烩互联网大杂烩
运行总次数:0
代码可运行

DispatcherServlet初始化了9个组件

HandlerMapping

根据request找到相应的处理器Handler和Interceptors,HanddlerMaping接口只有一个方法,getHandler()

HandlerAdapter

一共三个方法, supports(),判断是否可以使用某个Handler。 handler方法是用来具体使用Handler干活。 getLastModified是获取资源的Last-Modified,Last-Modified是资源最后一次修改的时间。 选择哪个HandlerAdapter的过程在getHandlerAdapter方法中,它的逻辑是遍历所有的Adapter,然后检查哪个可以处理当前的Handler,找到第一个可以处理Handler的Adapter后就停止查找并将其返回。 HandlerAdapte需要注册到Spring MVC的容器中,注册方法和HandlerMapping一样,只要配置Bean就可以。Handler是从HandlerMapping返回的。

HandlerExceptionResolver

根据异常设置ModelAndView,之后再交给render方法进行渲染。render只负责将ModelAndView渲染成页面。 HandlerExceptionResolver只有一个方法,只需要从异常解析出ModelAndView就可以,具体实现可以维护一个异常为key,View为value的Map,解析时直接从Map里获取View,如果Map里没有相应的异常可以返回默认的View。

ViewResolver

ViewResolver用来将String类型的视图名和Locale解析为View类型的视图,ViewResolver接口也非常简单。只定义了: View resolveViewName(String viewName,Locale locale)throws Exception

RequestToViewNameTranslator

ViewResolver是根据ViewName查找View,但有的Handler处理完之后并没有设置View也没有设置viewName,这时就需要从request获取ViewName了,而如何从request获取view-Name就是RequestToViewNameTranslator要做的事情。 定义了一个getViewName方法,只要通过request获取到viewName就可以了。

LocaleResolver

解析视图需要两个参数:一个是视图名,另一个是Locale。 LocaleResolver用于从request解析出Locale。接口只定义两个方法: resolveLocale(HttpServletRequest request) 从request中解析出Locale和将特定的Locale设置给某个request。 setLocale(HttpServletRequest request,HttpServletResponse response,Locale locale)

ThemeResolver

解析主题用的。 Spring MVC中又一套主题对应一个properties文件,里面存放着跟当前主题相关的所有资源。

MultipartResolver

用于处理上传请求,处理方法是将普通的request包装成MultipartHttpServletrequest,MultipartHttpServletrequest可以直接调用getFile方法获取到File,如果上传多个文件,还可以调用getFileMap得到FileName-File结构的Map. 这个接口有三个方法, 1.判断是不是上传请求, 2.将request包装成MultipartHttpServlet,处理完后清理上传过程中产生的临时资源。

FlashMapManager

FlashMap主要用在redirect中传递参数,而FlashMapManager用来管理FlashMap的。 该接口有两个方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FlashMap retrieveAndUpdate(HttpServletRequest request,HttpServletResponse,response)
void saveOutputFlashMap(FlashMap flash,HttpServletRequest request,HttpServletResponse response)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.08.19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
谈谈你对Spring MVC中的九大组件的理解
一位应届毕业生被问到这样一道面试题,说谈谈你对Spring MVC中的九大组件的理解。
Tom弹架构
2022/12/19
5630
谈谈你对Spring MVC中的九大组件的理解
Spring核心原理分析之MVC九大组件(1)
Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。Spring MVC 角色划分清晰,分工明细。由于 Spring MVC 本身就是 Spring 框架的一部分,可以说和 Spring 框架是无缝集成。性能方面具有先天的优越性,是当今业界最主流的 Web 开发框架,最热门的开发技能。首先从一个由Spring提供的DispatcherServlet开始,重写了Serlvet的init()方法、service()方法和destroy()方法,SpringMVC九大组件在DispatcherServlet的init()方法中初始化,在service()方法中执行。下面,我们先来看Spring MVC九大组件的初始化。
Tom弹架构
2021/12/27
1.4K0
Spring核心原理分析之MVC九大组件(1)
SpringMVC源码系列:九大组件小记
前面几篇文章都是针对于SpringMVC中的具体组件进行源码分析的;本文主要用于补充记录一下关于SpringMVC中九大组件的学习。这个会牵扯出除之前的几篇HandlerMapping之外的其他一些基础组件。
磊叔的技术博客
2025/06/07
570
SpringMVC源码系列:九大组件小记
【SpringMVC解析第一步之9大组件概览】
SpringMVC中的Servlet一共有三个层次,分别是HttpServletBean、FrameworkServlet和 DispatcherServlet。 HttpServletBean直接继承自java的HttpServlet,其作用是将Servlet中配置的参数设置到相应的属性;FrameworkServlet初始化了WebApplicationContext,DispatcherServlet初始化了自身的9个组件。 在学习9个组件之前,我们需要先了解Handler的概念,也就是处理器。 它直接应对着MVC中的C也就是Controller层,它的具体表现形式有很多,可以是类,也可以是方法。在Controller层中@RequestMapping标注的所有方法都可以看成是一个Handler,只要可 以实际处理请求就可以是Handler。 Handler的概念清楚了,下面开始对9个组件一一介绍。 1. HandlerMapping
用户5640963
2020/03/19
4180
【小家Spring】Spring MVC容器启动时,web九大组件初始化详解(Spring MVC的运行机制)
为了更好的去理解Spring MVC的工作机制,这边博文我们主要讲述Spring MVC在初始化的时候(容器启动的时候),做的一些准备工作。
YourBatman
2019/09/03
1.9K0
【小家Spring】Spring MVC容器启动时,web九大组件初始化详解(Spring MVC的运行机制)
彻底读懂 springMVC 请求处理流程
springmvc 在web 项目中基本上是必用的,基于servlet的一种控制层框架,我们在使用的过程中往往会碰到各种问题,有时候还没有思绪解决问题,主要是因为我们对请求处理的流程不熟悉,不能快速定位都问题所在,所以总会耗费大量时间,各种百度才解决问题。如果你也有这样的困惑,不妨一起来看下springmvc 的请求处理流程。让我们能够快速定位问题。
程序员爱酸奶
2020/06/23
3.5K1
彻底读懂 springMVC 请求处理流程
(八)Spring源码解析:Spring MVC
对于Spring MVC来说,最核心的一个类就是DispatcherServlet,它负责请求的行为流转。那么在Servlet的初始化阶段,会调用init()方法进行初始化操作,在DispatcherServlet中并没有去实现init()这个方法,而是由其父类HttpServletBean负责实现的。
爪哇缪斯
2023/09/06
3940
(八)Spring源码解析:Spring MVC
SpringMVC 解毒1
学Java开发的同学始终避不开Spring,学JavaWeb开发的同学就更避不开SpringMVC了。凡是有点追求的程序员肯定也想读一读Spring和SpringMVC的源码,我也不例外,做JavaWeb开发有两年多了,平时开发中也有debug进SpringMVC源码,但始终没有对SpringMVC源码有一个整体的、全面的了解。这次,我将带着读者一览SpringMVC,将它的核心流程和边边角角尽量清楚地展示给大家,为什么起名SpringMVC 解毒,其含义是:在这里,一次的、全面的了解SpringMVC,然后似庖丁解牛般使用SpringMVC而设计你的业务。我阅读的源码是基于4.3.0.RELEASE版本,读者如果想看到同样的代码和效果,也请采用该版本。
zhangheng
2020/04/29
7000
SpringMVC 解毒1
Java基础知识点【Spring、Spring MVC、Spring Boot】进阶篇
最大的好处:代码复用,减少重复代码。除了子类要实现的特定方法,其他方法及方法调用顺序都在父类中预先写好了。
@派大星
2023/10/02
5500
Spring MVC 学习总结(一)——MVC概要与环境配置(IDea与Eclipse示例)
MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范,用一种将业务逻辑、数据、显示分离的方法组织代码,MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。
张果
2022/05/09
1.2K0
Spring MVC 学习总结(一)——MVC概要与环境配置(IDea与Eclipse示例)
从Spring源码探究SpringMVC运行流程
其实SpringMVC相比较之前分析的IOC、DI、AOP来说,源码是远远不如他们复杂,我们把流程简单归为两步: 初始化和调用
向着百万年薪努力的小赵
2022/12/02
6240
从Spring源码探究SpringMVC运行流程
Spring MVC请求处理过程。你这样回答保证通过面试!
SpringMVC请求处理相信大家都很熟悉了,本篇主要是基于SpringMVC处理请求的流程来阅读并调试源码,以及解决几个仅靠流程图无法解释的问题。
程序员白楠楠
2020/12/07
7970
深入源码分析SpringMVC执行过程
首先,让我们从 Spring MVC 的四大组件:前端控制器(DispatcherServlet)、处理器映射器(HandlerMapping)、处理器适配器(HandlerAdapter)以及视图解析器(ViewResolver) 的角度来看一下 Spring MVC 对用户请求的处理过程,过程如下图所示:
田维常
2020/02/25
8250
【小家Spring】Spring MVC执行流程 FrameworkServlet、DispatcherServlet源码分析(processRequest、doDispatch)
本篇博文会更偏向于应用、更加宏观一些。 但是,本人还是建议,在了解Spring MVC的执行流程之前,先参阅这两篇博文: 【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析) 【小家Spring】Spring MVC初始化(容器启动)时,Spring MVC九大组件初始化详解(Spring MVC的运行机制) 这样会有助于你更好的了解本文的一个流程,毕竟既会宏观的从步骤上去讲解,也会稍微微观(注意是稍微)的从源码角度去分析一下子
YourBatman
2019/09/03
1.4K0
【小家Spring】Spring MVC执行流程 FrameworkServlet、DispatcherServlet源码分析(processRequest、doDispatch)
SpringMVC实现原理及详解
SpringMVC框架是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是DispatcherServlet,它是一个Servlet,顶层是实现的Servlet接口。
马士兵的朋友圈
2020/09/08
4080
SpringMVC工作原理详解
SpringMVC 框架是以请求为驱动,围绕 Servlet 设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是 DispatcherServlet,它是一个 Servlet,顶层是实现的Servlet接口。
Java团长
2018/12/05
5590
深入理解Spring MVC
使用Spring Boot和web,thymeleaf的starter来设置初始工程。xml配置如下:
代码拾遗
2018/07/24
8170
SpringMVC源码剖析-SpringMVC执行流程
上一篇文章写得是SpringMVC组件初始化,这篇文章我们来探讨一下SpringMVC的执行流程
全栈程序员站长
2022/09/14
6460
SpringMVC源码剖析-SpringMVC执行流程
编程笔记详解——SpringMVC 工作原理
SpringMVC 框架是以请求为驱动,围绕 Servlet 设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是 DispatcherServlet,它是一个 Servlet,顶层是实现的Servlet接口。
慕容千语
2019/06/13
5550
编程笔记详解——SpringMVC 工作原理
SpringMVC DispatcherServlet执行流程及源码分析你要知道的SpringMVC DispatcherServlet执行流程及源码分析都在这里
你要知道的SpringMVC DispatcherServlet执行流程及源码分析都在这里 转载请注明出处 https://cloud.tencent.com/developer/user/1605429 本系列文章主要根据源码讲解SpringMVC的启动过程,以及相关重要组件的源码分析。阅读此系列文章需要具备Spring以及SpringMVC相关知识。本文将分以下几篇文章进行讲解,读者可按需查阅。 SpringMVC 启动流程及相关源码分析 SpringMVC DispatcherServlet执行流程及
WWWWDotPNG
2018/04/10
2.3K0
SpringMVC DispatcherServlet执行流程及源码分析你要知道的SpringMVC DispatcherServlet执行流程及源码分析都在这里
推荐阅读
相关推荐
谈谈你对Spring MVC中的九大组件的理解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验