1、DispatcherServlet(前端控制器)
- 用户的请求,通过
DispatcherServlet
分发,到达一个合适的Controler
来生产我们需要的业务数据Model
;Model
通过DispatcherServlet
传递给View
,来完成最终的页面呈现。
<p>
<p>
2、Controler
-
我们调用业务逻辑成产Model的地方。
<p>
3、HandlerAdapter
首先
Handler
是在DispatcherServlet
内部使用的一个类,就是Controler
的一个表现形式,SpringMVC中并没有一个接口或者抽象类叫Controler
,只是有一个标签,这个标签只是我们为了识别Controler
而引入的。在DispatcherServlet中
调用Contrer
是以Handler
形式出现的。HandlerAdapter
是一个适配器模式,将各种不同类型的Handler
适配成DispatcherServlet
可以使用的Handler
。这样
DispatcherServlet
就可以很轻松的调用我们的Controler
适配器。
<p>
4、HandlerInterceptor(接口)
- 在我们需要被拦截的对象的两侧加入一些料。
5、HandlerMapping
-
Handler
是Dispatcher
调用Controler
的一种中间过渡对象。 -
Mapping
是DispatcherServlet
(前端控制器)和Controler
之间映射关系的一种类。 - 在
HandlerMapping
工作完毕之后,可以给DispatchServlet
一个HandlerAdapter
,这个HandlerAdapter
里面包括,某个Controler
的实例 ,以及这个Controler
需要被包裹的HandlerInterceptor
,他们会构成一个执行的链条往下走。
<p>
6、HandlerExecutionChain
-
HandlerMapping
返回给DispatcherServlet
的东西包括:HandlerAdapter
和HandlerInterceptor
。 -
这个链是通过java反射实现的。
<p>
7、ModelAndView
-
Model
的具体表现。 - 在
Controler
中既可以用Mode
(SpringMVC中提供的类)也可以用Map
来实现model
的功能,但DispatcherServlet
最终都会转化为ModelAndView
。
<p>
8、ModeResolver
- 告诉
DispatcherServlet
你需要哪个视图来进行视图的呈现
根据配置,找出那一个我们需要的视图对象。