什么是SpringMVC
SpringMvc 是Spring 的一个基于MVC开发的一个框架,用来处理前端请求,可以和Spring无缝整合
描述 SpringMVC的请求流程:
- Http请求通过web.xml 的配置 进入DispatcherServlet,正式进入SpringMvc
- DispatcherServlet 通过HandlerMapping查找Handler (根据注解 RequestMapping)
- DispatcherServlet 找到HandlerAdapter(适配器)
- 由适配器来执行对应的 Handler(Controller)
- 获取到Handler返回的ModelAndView,然后调用试图解析器进行视图解析。
- 进行视图渲染,将结果返回到前端
- UML时序图:
- 对应的代码: org.springframework.web.servlet.DispatcherServlet#doDispatch ,Debug 多走读一下,应该没有什么问题了
SpringMVC的核心类(接口):
- DispatcherServlet :前置控制器,配置在web.xml文件中的。拦截匹配的请求,把拦截下来的请求进入到SpringMVC流程中,并调用下面的组件完成请求。
- HandlerMapping:处理器映射,根据请求的Url 找到HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器)对象;
- HandlerAdapter:适配器,将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用
- ViewResolver:视图仓库
- View:具体解析视图
- HandlerExceptionResolver :异常捕捉器,捕获业务逻辑中抛出的异常,然后对系统异常时跳转异常界面,避免用户界面显示一串Exception信息。
- HandlerInterceptor : 拦截器
简单搭建一个SpringMVC框架:
- 博主搭建了使用一个简易的SpringMVC框架,主要Jar :spring-webmvc 、fastjson,其中包含Controller 、HandlerInterceptor 、HandlerExceptionResolver 的实现:
url : https://download.csdn.net/my