一、简介

SpringMVC是Spring框架的一个子模块,类似于AOP,IOC等模块。也是通常所说的那层薄薄的Web层,也就是MVC架构中的C(Controller),负责接收分发用户请求。

二、原理

SpringMVC 原理 (面试必备)

详细解释这幅图。

1、用户发起请求,一般是HTTP请求,带有URL和参数。

2、DispatcherServlet的匹配的URL与请求的URL相匹配,DispatcherServlet接收请求。

3、把URL提交给处理器映射器(HandlerMapping),处理器映射器返回一个处理器执行链,执行链前面是一些拦截器(HandlerInterceptor),最后才是程序员编写的Handler,即XXXController。

4、调用处理器适配器去执行Handler。

5、HandlerAdapter执行Handler的处理方法。

6、Handler处理完请求后,返回ModelAndView。

7、HandlerAdapter返回ModelAndView给DispatcherServlet。

8、DispatcherServlet提取出视图名,交给视图解析器,视图解析器解析出JSP全路径名,如/WEB-INF/XXX.jsp。

9、返回视图名交给DispatcherServlet。

10、这时候DispatcherServlet携带Model中的参数请求转发(forward)给一个JSP文件,因为JSP在编译后生成的是Servlet,因此要forward过去,然后Servlet根据Model中的数据,对页面进行渲染,即生成HTML格式的response。

11、将response返回给DispatcherServlet。

12、响应请求给用户

相关文章: