SpringMVC的执行流程

简介: SpringMVC的执行流程

SpringMVC的大致流程


SpringMVC中的对象实际上就是在Spring的容器中,随着Spring容器的加载启动而进行。



在最后不走视图解析器时返回自定义内容,一般都是字符串。若是返回对象的话通过java序列化不太妥当(使用了java序列化想要反序列化还是需要java程序),所以返回对象时一般转换为json,如果使用了转换器,若是context-type=text/html就是浏览器接收到的就是json字符串,若是context-type=application/json就是json对象。



SpringMVC的执行过程及组件




入口是Servlet,将web层进行职责解耦。


清晰的角色划分:控制器(controller)、验证器(validator)、 命令对象(command object)、表单对象(formobject)、模型对象(model object)、 Servlet分发器(DispatcherServlet)、处理器映射(handler mapping)、视图解析器(view resolver)等。每一个角色都可以由一个专门的对象来实现。


具体说明:


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

View(视图):通过页面标签技术将模型数据通过页面展现给用户,一般指的是程序员根据业务需求开发具体的页面。我们最常用的就是jsp(本质就是servlet程序),其次就是thymeleaf模板引擎。

DispatcherServlet(中央控制器):用户请求到达前端控制器,也就是MVC中的C,是整个流程控制的中心,由它来调用其他组件处理用户的请求,该存在降低了组件之间的耦合性。(其是核心也就是个Servlet,可以简单理解为门卫传达室一个请求进来先来到传达室,之后调用不同的人来处理问题)

HandlerMapping(处理器映射器):该映射器负责根据用户请求url找到Handler即处理器,在springmvc中提供了不同的映射器实现不同的映射方式(xml配置文件、实现接口方式、注解方式)。其返回的是一个处理器链,其中包含了filter以及handler(每个请求对应的)。

实际上就是个map,放了一堆数据,key是url,value就是handler(你写的controller),一个请求来了调用下map.getUrl(url)就知道哪个类处理这个请求了。实际上会将这个url对应的拦截器、处理器都拿到。

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

通过调用相应的方法,生成最终得到的ModelAndView。

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

实际上就是来解析modelAndView的,有个常用最简单的功能就是拼接字符串,给你加个前缀后缀更加方便,并且解析很多类型的视图。

相关文章
|
6月前
|
前端开发
SpringMVC的执行流程
SpringMVC的执行流程
|
4月前
|
JSON 前端开发 Java
一文带你深入理解SpringMVC的执行原理
【7月更文挑战第1天】阿里云产品初体验 SpringMVC的执行原理 本文分析的问题:文件上传的请求的处理、跨域的处理、是怎么找到目标方法的、目标方法的执行、目标方法参数的封装、返回值的处理、拦截器的执行、中间出现异常时的处理 涉及组件:文件上传解析器、跨域处理器、处理器映射器、处理器注册中心、处理器执行链、处理器适配器、参数解析器、数据绑定器、类型转换器、返回值处理器、内容协商管理器、消息转换器、异常解析器、
|
6月前
|
XML 存储 JSON
SpringMVC执行流程
SpringMVC执行流程
32 0
|
前端开发 Java
springMVC执行流程详解
springMVC执行流程详解
129 0
springMVC执行流程详解
|
存储 JSON 前端开发
你知道 SpringMVC的 执行流程 吗?
你知道 SpringMVC的 执行流程 吗?
114 0
|
前端开发 Java 调度
springMVC执行流程
springMVC执行流程
113 0
|
XML 前端开发 调度
SpringMVC的执行流程知道嘛
SpringMVC的执行流程知道嘛
55 0
|
存储 前端开发 Java
二.SpringMVC源码剖析-SpringMVC执行流程
上一篇文章写得是SpringMVC组件初始化,这篇文章我们来探讨一下SpringMVC的执行流程
|
XML 前端开发 Java
浅谈SpringMVC核心组件及执行流程(含源码解析)
浅谈SpringMVC核心组件及执行流程(含源码解析)
185 0
浅谈SpringMVC核心组件及执行流程(含源码解析)