SpringMVC是Spring中的模块,它实现了mvc设计模式:
首先用户发起请求,请求到达SpringMVC的前端控制器(DispatcherServlet),
前端控制器根据用户的url请求处理器映射器查找匹配该url的handle,并返回一个执行链,
前端控制器再请求处理器适配器调用相应的handle进行处理并返回给前端控制器一个modelAndView,
前端控制器再请求视图解析器对返回的逻辑视图进行解析,
前端控制器将返回的视图进行渲染,并把数据装入到request 域,返回给用户。
DispatcherServlet作为SpringMVC的前端控制器,负责接收用户的请求,并根据用户的请求返回相应的视图给用户。
(前端/核心控制器)DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:
1、文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析;
2、通过HandlerMapping,将请求映射到处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor拦截器);
3、通过HandlerAdapter支持多种类型的处理器(HandlerExecutionChain中的处理器);
4、通过ViewResolver解析逻辑视图名到具体视图实现;
5、本地化解析;
6、渲染具体的视图等;
7、如果执行过程中遇到异常将交给HandlerExceptionResolver来解析。