四 SpringMVC运行原理
1. 核心组件:(SpringMVC 四大组件)
- 1.1 DispatchServlet: Servlet分发器,整个SPringMVC框架入口.
- 1.2 HandlerMapping:寻找URL所请求的HandlerMethod,找@RequestMapping()
- 1.2.1 使用实现类DefaultAnnotationHandlerMapping实际工作.
- 1.3 HandlerAdapter:实际调用HandlerMethod的组件.
- 1.3.1 使用实现类AnnotationMethodHandlerAdapter
- 1.4 ViewResovler:视图解析器.作用解析HandlerMethod返回值.把逻辑视图转换为需要调用的物理视图.
- 1.4.1 自定义时:InternalResourceViewResolver
2. 当配置了<mvc:annotation-driven/>时,实际上创建了上面实现类的<bean>对象
3. 还可能使用的组件或接口或类:
- 3.1 Controller : 控制器类
- 3.2 HandlerMethod: 控制器方法
- 3.3 View: 视图
- 3.4 Model: 模型
- 3.5 ModelAndView:模型和视图.SpringMVC所有HandlerMethod最终都会转换为ModelAndView
- 3.6 HandlerInterceptor: 拦截器
- 3.7 HandlerExceptionResolver:异常映射解析器.
- 3.8 MultipartResolver: Multipart解析器
- 3.9 CharacterEncodingFilter: 字符编码过滤器
4. 时序图(Sequence Diagram)
- 4.1 以时间点作为基本单位,观察每个时间点状态.
- 4.2 具体时序图
5.文字解释:
当用户发起请求后,执行DiapacherServlet,如果是JSP直接调用jsp页面.如果不是JSP,DiapacherServlet调用HandlerMapping判断请求URL是否合法,如果URL不存在报错,如果URL存在使用HandlerAdapter调用具体的HandlerMethod,当Handler执行完成后会返回ModelAndView,会被ViewResovler解析,调用具体的物理视图,最终响应给客户端浏览器.