静态:
DispatcherServlet :(mvc的前端控制器)(frontcontroller)
前端页面的请求通过DispatcherServlet 对请求进行分发给一个合适的controller来生产我们的业务数据model,我们的model在通过
DispatchServlet传递给view呈现最后的页面呈现
controller(mvc中的c)
HandlerAdapter:
DispatcherServlet内部使用的的一个类,是我们controller的一个表现形式,springmvc之中没有一个interface
叫做controller,而是有一个annotation是一个标签(
引入的,没有一个controller的类似接口的东西,那么DispatchServlet如何知道调用控制中心,也就是handler,controller在DispatcherServlet中就是就是以Handler的形式出现的,HandlerAdapter
,它就是java中的适配器模式,专门将各种不同的Handler适配成我们DispatcherServlet可以使用的handler,这样就可以很轻松的调用控制器;
HandlerInterceptor:(拦截器)
HandlerMapping
前端控制器(DispatcherServlet)与我们controller之间一种映射关系的类,就是告诉我们前端传来的请求用哪一个controller,他工作完之后给DispatcherServlet一个HandlerAdapter,里面就是controller的实例,和包裹着它的HandlernIntercepter(拦截器,就是调用前后加的料),构成一个执行链条往下走;
HandlerExecutionChai:
他就是HandlerMapping工作完给的HandlerAdapter
下面是调用逻辑
ModelAndView: (m)
这是对model的一种呈现形式,java中的Map,model都是m的形式,但是前端控制器DispatcherServlet都会统统将他们转换成ModelAndView
ViewResolver:视图解析器,它会告诉DispatcherServlet,你需要用哪种视图来做视图的呈现,找出那一个视图对象
比如jsp 等
View:就是jsp等页面
springmvc图解原理
request浏览器端过来,首先到达DispatcherServlet,所有他都拦截到,然后通过HandlerMapping 去找Controller
通过annatation告诉handlerMapping要找的controller和Handlerinterceptor,把他们形成了一个HandlerExcutionChain
一个执行链条,作为一个handler 或HandlerAdapter返回给了我们的DispatServlet,在去调用一般化的处理器,Handler或HandlerAdapter生成我们的模型在返还给DispatcherServlet ,他再调用视图解析器,返回视图对象view,然后
我们的modeland view 传递数据给view完成我们的试图呈现;
[黑色不管,斜体可写可不写,粗体是自己需要写的,剩下蓝色配置就行]