SpringMVC
文章平均质量分 89
北堂桓禧
好记性不如烂笔头,不记录下来都不是你的
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Spring】抽丝剥茧SpringMVC-目录
最近记录SpringMVC处理请求时的路径,汇总一下DispatcherServletRequestMappingHandlerMappingRequestMappingHandlerAdapter参数解析器HandlerMethodArgumentResolverModelAttribute使用方法返回处理器HandlerMethodReturnValueHandler异步请求WebAsyncManagerHandlerExceptionResolver原创 2021-01-25 21:07:30 · 312 阅读 · 1 评论 -
【Spring】抽丝剥茧SpringMVC-HttpMessageConverter
HttpMessageConverter是SpringMVC重要功能组件之一。它提供两个基础功能:其一,从request body中读取数据并转换为对应的类型;其二,将对象写入到response body中。HttpMessageConverter是接口,规范了具体实现类的行为。HttpMessageConverter主要提供两组接口分别对应读、写。原创 2021-01-25 21:05:14 · 336 阅读 · 0 评论 -
【Spring】抽丝剥茧SpringMVC-ContentNegotiationManager
ContentNegotiationManager也是SpringMVC的重要功能性组件。其提供解析requst可接受的MediaType以及根据MediaType解析对应文件扩展名。ContentNegotiationManager包含2个重要的成员变量strategies:ContentNegotiationStrategy类型集合,就是用来解析MediaTyperesolvers:MediaTypeFileExtensionResolver类型集合,用来解析MediaType对应的原创 2021-01-23 20:55:55 · 1194 阅读 · 0 评论 -
【Spring】抽丝剥茧SpringMVC-ModelAttribute使用方法
@ModelAttribute可以用在方法上,也可以用在参数上。当它用在方法上时候,SpringMVC会将其返回值绑定到model的属性上;当它用在参数上时候,SpringMVC会从model取出对应的属性传给该参数。原创 2021-01-23 20:55:02 · 457 阅读 · 0 评论 -
【Spring】抽丝剥茧SpringMVC-SessionAttributes机制
请求进来的时候创建SessionAttributesHandler并将之前的session属性填充到model数据中,请求返回时将model中数据根据注解@SessionAttribute配置保存到SessionAttributesHandler中供下次请求使用。如果请求处理类标记SessionStatus为已完成,则在请求返回时将SessionAttributesHandler清理掉原创 2021-01-23 20:54:45 · 379 阅读 · 0 评论 -
【Spring】抽丝剥茧SpringMVC-异常处理HandlerExceptionResolver
请求在处理过程中可能会因为各种各样的原因抛出异常,例如参数解析时类型不匹配、参数必传而请求没传。HandlerExceptionResolver处理完异常返回的也是ModelAndView对象。HandlerExceptionResolver是一个接口类,其中只有一个接口方法HandlerExceptionResolver#resolveException。所有异常处理器将实现该接口。原创 2021-01-23 20:54:12 · 878 阅读 · 0 评论 -
【Spring】抽丝剥茧SpringMVC-视图解析及渲染ViewResolver&View
视图渲染是SpringMVC框架的重要一环,基本也就是最后一环了。请求经过前面一系列的处理最终是返回ModelAndView对象给到视图渲染模块。视图渲染模块则将其转换为前端可识别的html文本并写入response。并不是所有请求最终都会走到视图渲染模块,如果请求在前面的处理中已经将数据写到response,其实就没有必要经过视图渲染模块处理。这时只需要返回的恶ModelAndView是空对象(null),DispatcherServlet就不会走视图渲染逻辑。原创 2021-01-23 20:53:32 · 758 阅读 · 0 评论 -
【Spring】抽丝剥茧SpringMVC-请求间传递参数机制FlashMap
web项目有时候需要在一个请求中保存一些属性给接下来的其它请求使用。尤其是重定向场景,也许我们需要给目标请求传递些参数。FlashMap机制就提供了这么一种方式让一个请求传递一些参数给接下来的某个请求。当然要实现这个目的还有别的方式,FlashMap是其中一种,FlashMap机制保证了参数的隐蔽性,不需要将参数传递到前端。原创 2021-01-23 20:52:40 · 932 阅读 · 0 评论 -
【Spring】抽丝剥茧SpringMVC-RequestMappingHandlerMapping
HandlerMapping是DispatcherServlet主要的组件之一,其作用是帮助request找到合适的Handler。RequestMappingHandlerMapping是HandlerMapping主要实现类之前,对应着注解@RequestMapping原创 2020-12-07 23:01:33 · 1230 阅读 · 1 评论 -
【Spring】抽丝剥茧SpringMVC-拦截器HandlerInterceptor
拦截器是SpringMVC用来拦截请求,开发者可以通过配置拦截器,对请求添加统一的鉴权、访问日志等处理。拦截器还支持针对不同请求做不同处理。SpringMVC中拦截器需要实现org.springframework.web.servlet.HandlerInterceptor原创 2020-12-25 20:19:30 · 621 阅读 · 0 评论 -
【Spring】抽丝剥茧SpringMVC-DispatcherServlet
DispatcherServlet 使用SpringMVC框架的同学一定知道DispatcherServlet。SpringMVC处理Http请求就是从DispatcherServlet开始。SpringMC简化了Servlet规范的开发模式,定义了通用了Servlet(DispatcherServlet)与Servlet容器(jetty/tomcat)交互。开发者专注于业务逻辑的开发。下图是DispatcherServlet的类图可以看出DispatcherServlet其实就是...原创 2020-11-30 15:34:24 · 484 阅读 · 2 评论 -
【Spring】抽丝剥茧SpringMVC-异步请求WebAsyncManager
SpringMVC在执行完业务方法后要对其返回值进行处理,这项工作是在返回值处理器完成的。在SpringMVC支持的返回值处理器中有多种处理器会触发SpringMVC的WebAsyncManager机制,例如DeferredResultMethodReturnValueHandler、CallableMethodReturnValueHandler、AsyncTaskMethodReturnValueHandler等。今天我们聊聊WebAsyncManager机制。 WebAsyncMa...原创 2021-01-23 20:15:26 · 2412 阅读 · 0 评论 -
【Spring】抽丝剥茧SpringMVC-返回处理器HandlerMethodReturnValueHandler
源码基于SpringMVC 5.2.7HandlerMethodReturnValueHandler所有返回处理器都是HandlerMethodReturnValueHandler实现类。与参数处理器(HandlerMethodArgumentResolver)类似,HandlerMethodReturnValueHandler主要也有2个方法boolean supportsReturnType(MethodParameter returnType)功能:支持的返回类型void ha.原创 2021-01-23 20:14:04 · 779 阅读 · 0 评论 -
【Spring】抽丝剥茧SpringMVC-参数解析器HandlerMethodArgumentResolver
SpringMVC框架提供的默认参数解析器如下类型 支持的参数条件 备注 org.springframework.web.method.annotation .RequestParamMethodArgumentResolver 被@RequestParam注解且参数类型不是Map 被@RequestParam注解且参数类型是Map且@RequestParam注解的name属性不为空 没有注解@RequestParam且没有注解@Re原创 2021-01-23 20:13:18 · 775 阅读 · 5 评论 -
【Spring】抽丝剥茧SpringMVC-RequestMappingHandlerAdapter
request经过HandlerMapping找到了对应的Handler。但是要执行Handler,还需要从request中提取handler需要的参数,handler执行后返回值也需要经过处理才能作为response返回。这些操作都是由MVC另一个核心组件-HandlerAdapter完成。 HandlerAdapter核心事情主要有3件:参数预处理、调用Handler、返回值处理。参数预处理是从request的body、query、header等解析并转换为Handler对应的参数...原创 2021-01-23 20:11:55 · 437 阅读 · 0 评论
分享