从几个方面来回答:
首先,Spring MVC是是属于Spring Framework生态里面的一个模块,它是在Servlet基础上构建并且使用MVC模式设计的一个Web框架,主要的目的是简化传统Servlet+JSP模式下的Web开发方式。
其次,Spring MVC的整体架构设计对Java Web里面的MVC架构模式做了增强和扩展,主要有几个方面:
1. 把传统MVC框架里面的Controller控制器做了拆分,分成了前端控制器DispatcherServlet和后端控制器Controller。
2. 把Model模型拆分成业务层Service和数据访问层Repository。
3. 在视图层,可以支持不同的视图,比如Freemark、velocity、JSP等等。
所以,Spring MVC天生就是为了MVC模式而设计的,因此在开发MVC应用的时候会更加方便和灵活。
(如图)Spring MVC的具体工作流程是,浏览器的请求首先会经过Spring MVC里面的核心控制器DispatcherServlet,它负责对请求进行分发到对应的Controller。Controller里面处理完业务逻辑之后,返回ModeAndView。
然后DispatcherServlet寻找一个或者多个ViewResolver视图解析器,找到ModeAndView指定的视图,并把数据显示到客户端。