SpringMVC请求响应流程
企业开发
2023-08-06 14:01:44
阅读次数: 0
SpringMVC九大组件
MultipartResolver
:解决文件上传的组件
LocaleResolver
:国际化Locale解析组件
ThemeResolver
:主题皮肤解析
HandlerMapping
:处理映射器,根据url
地址找到后台的处理器
HandlerAdapters
:处理器适配器(最复杂的组件)
HandlerExceptionResolver
:处理器的异常解析器
RequestToViewNameTranslator
:没有视图返回值的情况下,根据请求解析视图名
ViewResolver
:视图解析器,根据逻辑视图的名称,结合数据返回成视图
FlashMapManager
:重定向的传值组件
SpringMVC请求响应流程
- 调用其
doDispatch
方法进行Web请求的处理。
- 根据
MultipartResolver
组件,判断这次请求是否是一个文件上传请求。
- 根据
HandlerMapping
组件,根据请求的路径,找到对应的处理器调用链。
- 根据对应的处理器类型获取
HanderAdapter
组件。
- 调用
applyPreHandle
方法进行前置拦截处理。
- 通过
HanderAdapter
进行处理器方法的调用,并统一返回ModelAndiew
对象。
- 如果返回的
ModelAndiew
对象中没有视图信息,调用RequestToViewName
组件,解析出一个全新的视图名出来。
- 调用
applyPostHandle
方法进行后置拦截处理。
- 运行结果处理
- 如果之前捕捉到了异常,进行异常处理。调用处理器异常解析器组件,解析出
ModelAndView
,继续9.2步骤
- 进行页面渲染
- 借助
LocaleResolver
获取区域语言信息。
- 借助视图解析器组件,根据逻辑视图的名字,解析出
View
(视图名称)。
- 调用
view
的render
方法进行页面的渲染,会根据Model
数据进行转化或者重定向。
- 调用
triggerAfterCompletion
拦截器方法。
注:如果在2-8之间抛出了异常,将记录异常的信息。
转载自blog.csdn.net/ainklg/article/details/113899512