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 {
}