SpringMVC请求响应流程

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之间抛出了异常,将记录异常的信息。
本文来自博客园,作者:星空探险家,转载请注明原文链接:https://www.cnblogs.com/PuppetLazy/p/17840934.html

浙公网安备 33010602011771号