MVC模式:
图释:用户请求通过HTTP协议到达Front controller,Front controller把请求送给Controller,Controller了解业务逻辑细节并且调用业务逻辑数据,并将业务数据返回给Front controller,Front controller将业务数据分发给View template,View template呈现最终的用户页面,View template将最终用户页面返回给Front controller,Front controller将用户页面返回给浏览器进行展示。
Front controller可以类比于医院里的分诊台,也即挂号的地方,Controller可以类比于每一个具体的科室。
MVC:
V(View):为用户提供UI,重点关注数据的呈现。
M(Model):业务数据的信息表示,关注支撑业务的信息构成,通常是多个业务实体的组合。
C(Controller):调用业务逻辑产生合适的数据,传递数据给视图层进行呈现。
静态概念:
DispatcherServlet就是MVC里面的Front controller
Controller就是MVC里的Controller
HandlerAdapter是在DispatcherServlet内部使用的一个内,就是Controller的一种表现形式,利用了适配器模式,将很多个handler适配成DispatcherServlet可以调用Controller的模式
HandlerInterceptor在我们要调用Controller或view之前和之后可以做一些拦截的操作
HandlerMapping帮助DispatcherServlet去从很多个Controller中调用具体的某一个Controller,在HandlerMapping工作完毕之后,它可以给DispatcherServlet一个HandlerAdapter,这个HandlerAdapter里面包括了某一个具体的Controller的实例以及包裹的HandlerInterceptor,这些东西会一起构成一个统一的执行链条往下进行。
HandlerExecutionChain也就是上面的执行链条(这个链条的实现用到了反射机制)
ModelAndView是Spring MVC中的具体表现
ViewResolver会告诉DispatcherServlet需要用哪一个试图来呈现,也就是找到类似于jsp,jstl等的页面呈现
动态概念: