MVC----写给自己的备忘
Modle--View--Controller
Model-->模型层,业务数据的信息表示,关注支撑业务的信息构成,通常是多个业务实体的组合。
View-->视图层,为用户提供UI,重点关注数据的呈现。
Controller-->控制层,调用业务逻辑产生合适数据(Model),传递数据给视图层用于呈现。
实际上是一种我们开发web应用程序的通用架构方式。
其核心思想就是业务数据抽取同业务数据呈现相分离。
所以我们说MVC是一种架构模式,他使得我们的程序分层,分工合作,既相互独立,又协同工作。
- 下面我们看看springmvc有哪些东西
DispatcherServlet
前端控制器,前端(浏览器端)用户的请求经过DispatcherServlet进行分发到达合适的Controller,生成我们所需要的业务数据Model,Model再通过DispatcherServlet进行传递,传递给View,来进行最终的页面呈现。
Controller
调用业务逻辑,生成Model。
HandlerAdapter
Handler是DispatcherServlet调用Controller的一种中间过度对象。
Handler是在DispatcherServlet内部使用的一个类,其实就是Controller的一个表现形式。在SpringMVC中并没有一个interface叫做Controller,但是有一个annotation,就是为了我们识别一个Controller而引入的。在DispatcherServlet中,其实最终调用的Controller是以Handler形式出现的。
HandlerAdapter其实是一个适配器模式,就是将各种不同类型的Handler适配成我们DispatcherServlet可以使用的Handler,这样我们的DispatcherServlet就可以很轻松的调用我们的控制器。
HandlerInterceptor
是一个拦截器的意思,其实就是在我们需要被拦截对象的两侧加入一些料。
如果你配置了这个类,并提供了实现,就可以在我们真正调用Controller之前、之后以及最终在我们Model发送到页面或者view即完成了呈现之后做很多事情。
HandlerMapping
Handler是DispatcherServlet调用Controller的一种中间过度对象。
Mapping是DispatcherServlet,我们的前端控制器与Controller之间映射关系的一种类。
HandlerMapping就是告诉我们的DispatcherServlet这个请求到来之后由哪一个Controller来响应我们的这个请求。
HandlerEcecutionChain
执行链条
preHandle-->Controller Method-->postHandle-->afterCompletion
ModleAndView
Model的具体表现,也可以使用Map类来实现Model的功能,DispatcherServlet会将Model或者Map统统转换为ModelAndView
ViewResolver
视图解析器,他会告诉DispatcherServlet你需要用哪一个视图来进行视图的呈现,他的作用就是根据page找出我们需要的视图对象。比图jstl,jsp等等。
View
负责呈现页面。
- 在通过张图来看下他们之间的关系