1.九大内置组件

  1. HandlerMaping:处理器映射,根据url信息获得Handler配置相关的所有对象
  2. HandlerAdapter:处理器适配器,由HandlerAdapter来调用执行Handler
  3. HandlerExcptionResovler:异常处理器
  4. ViewResovler:视图解析器,对Handler执行结束返回的ModelAndView得到真正的视图对象
  5. RequestToViewNameTranslator:当Handler没有返回类型,就从request中获取viewName
  6. LocaleResovler:从URL中解析出地区,比如ch-cn,实现国际化(i18n)
  7. ThemeResovler:主题解析器
  8. MultipartResovler:处理文件上传请求,将request封装成MultipartHttpServletRequest

    2.MVC工作流程

  1. 用户向服务器发送请求,由DispatcherServlet(前端控制器)捕获
  2. DispatcherServlet根据URL信息调用HandlerMaping获得对应的Handler(控制器方法)配置的所有有关对象,包括对应的拦截器,以HandlerExecuionChain对象返回(即根据url和控制器方法的注解参数类配对方法)
  3. DispatcherServlet根据Handler选择合适的HandlerAdapter用来调用执行Handler
  4. 执行拦截器的preHandle()(控制器方法执行之前执行)
  5. 从URL中提取数据放入Handler的参数中,开始执行Handler方法来处理请求
  6. Handler执行结束后返回一个ModelAndView对象,ModelAndView包含了视图逻辑名和模型数据信息
  7. 执行拦截器的postHandle() ( 控制器方法执行之后执行 )
  8. 根据ModelAndView选择合适的ViewResovler解析,渲染视图
  9. 执行拦截器的afterCompetion() ( 渲染视图完毕之后执行 )
  10. 将渲染的视图结果返回给前端

    3.异常处理

    image.png
    image.png