spring Web Mvc是基于Servlet Api构建的原始Web框架,从一开始就包含在spring框架下,其正式名称“Spring Web Mvc”来自它的源模块(Spring-webmvc)的名称,但它更常见的名称是的“Spring MVC".

一、springMvc 本质上还是在使用servle处理,并在其基础上进行了封装简化了开发流程,提高易用性,并使应用程序逻辑结构变得更清晰。

1 基于注解的  URL映射

2 http表单参数转换

3 全局统一异常处理

4 拦截器的实现

二、各组件执行流程

dispatchSevlet 前端控制器 接受客户端的请求 --> HandlerMapping --> HandlerAdapter  --> handler  执行业务处理 ---> viewResolver  基于view Name查找view ---> view  执行试图解析

HandlerMapping :基于URL查找Handler, 返回HandlerExecutionChain(包括handler和interceptorList)

HandlerAdapter  :处理适配器, 基于Handler查找适配器

HandlerExceptionResolver 异常解析器

接口方法ModelAndView resolveException(HttpServletRequest var1, HttpServletResponse var2, @Nullable Object var3, Exception var4);
实现统一异常处理返回ModelAndView

 HandlerInterceptor  拦截器

三个方法

//前置拦截器

default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return true;
}
在preHandle和postHandle之间执行handlerAdapter
// 后置拦截器
default void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
}
// 完成之后调用
default void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
}
01-31 18:25