1.九大内置组件
- HandlerMaping:处理器映射,根据url信息获得Handler配置相关的所有对象
- HandlerAdapter:处理器适配器,由HandlerAdapter来调用执行Handler
- HandlerExcptionResovler:异常处理器
- ViewResovler:视图解析器,对Handler执行结束返回的ModelAndView得到真正的视图对象
- RequestToViewNameTranslator:当Handler没有返回类型,就从request中获取viewName
- LocaleResovler:从URL中解析出地区,比如ch-cn,实现国际化(i18n)
- ThemeResovler:主题解析器
- MultipartResovler:处理文件上传请求,将request封装成MultipartHttpServletRequest
2.MVC工作流程
- 用户向服务器发送请求,由DispatcherServlet(前端控制器)捕获
- DispatcherServlet根据URL信息调用HandlerMaping获得对应的Handler(控制器方法)配置的所有有关对象,包括对应的拦截器,以HandlerExecuionChain对象返回(即根据url和控制器方法的注解参数类配对方法)
- DispatcherServlet根据Handler选择合适的HandlerAdapter用来调用执行Handler
- 执行拦截器的preHandle()(控制器方法执行之前执行)
- 从URL中提取数据放入Handler的参数中,开始执行Handler方法来处理请求
- Handler执行结束后返回一个ModelAndView对象,ModelAndView包含了视图逻辑名和模型数据信息
- 执行拦截器的postHandle() ( 控制器方法执行之后执行 )
- 根据ModelAndView选择合适的ViewResovler来解析,渲染视图
- 执行拦截器的afterCompetion() ( 渲染视图完毕之后执行 )
- 将渲染的视图结果返回给前端
3.异常处理