SpringMVC的M、V、C到底是什么东西

前言

我们Web开发用得最多的框架可能要数SpringMVC了,但一直不是很清楚M、V、C对应SpringMVC里面的什么东西,只知道C就是Controller,就是我们写的逻辑控制器,V就是View,但是View就是指HTML或者JSP这种东西吗?还有M,Model是指我们的POJO类吗?
带着这些问题查阅了一些资料,有了一点头绪

MVC三层结构

What’s C ?

没错,C就是Controller,是我们写的逻辑控制器,但在Spring中叫做Handler(处理器),Handler是SpringMVC的C层

What’s V ?

V层就是View视图层,SpringMVC把最后要展示给用户的数据+网页封装到View中

What’s M ?

M层就是Model层,这层功能和工作很多,它是C层和V层传输数据的桥梁,也就是说它贯穿于Controller层和View层之中,为这两层提供数据。像注视了@ModelAttribute方法、SessionAttribute、FlashMap、Model以及需要执行的方法的参数和返回值都属于这一层,而使用这一层的类有HandlerMethodArgumentResolver和HandlerMethodReturnValueHandler、ModelFactory和FlashMapManager。它是SpringMVC中最复杂的一层,因为一个请求的参数封装有多重形式,比如方法里的参数,注解了@ModelAttribute,@SessionAttribute,还有FlashMap中的参数…