SpringMVC请求响应流程

图片

SpringMVC九大组件

  1. MultipartResolver:解决文件上传的组件
  2. LocaleResolver :国际化Locale解析组件
  3. ThemeResolver:主题皮肤解析
  4. HandlerMapping:处理映射器,根据url地址找到后台的处理器
  5. HandlerAdapters:处理器适配器(最复杂的组件)
  6. HandlerExceptionResolver:处理器的异常解析器
  7. RequestToViewNameTranslator:没有视图返回值的情况下,根据请求解析视图名
  8. ViewResolver:视图解析器,根据逻辑视图的名称,结合数据返回成视图
  9. FlashMapManager:重定向的传值组件

SpringMVC请求响应流程

  1. 调用其doDispatch方法进行Web请求的处理。
  2. 根据MultipartResolver组件,判断这次请求是否是一个文件上传请求。
  3. 根据HandlerMapping组件,根据请求的路径,找到对应的处理器调用链。
  4. 根据对应的处理器类型获取HanderAdapter组件。
  5. 调用applyPreHandle方法进行前置拦截处理。
  6. 通过HanderAdapter进行处理器方法的调用,并统一返回ModelAndiew对象。
  7. 如果返回的ModelAndiew对象中没有视图信息,调用RequestToViewName组件,解析出一个全新的视图名出来。
  8. 调用applyPostHandle方法进行后置拦截处理。
  9. 运行结果处理
    1. 如果之前捕捉到了异常,进行异常处理。调用处理器异常解析器组件,解析出ModelAndView,继续9.2步骤
    2. 进行页面渲染
      1. 借助LocaleResolver获取区域语言信息。
      2. 借助视图解析器组件,根据逻辑视图的名字,解析出View(视图名称)。
      3. 调用viewrender方法进行页面的渲染,会根据Model数据进行转化或者重定向。
  10. 调用triggerAfterCompletion拦截器方法。
    注:如果在2-8之间抛出了异常,将记录异常的信息。

猜你喜欢

转载自blog.csdn.net/ainklg/article/details/113899512