intercaptor对controller前后的操作

Spring MVC




SpringMVC概念:













ViewResolver视图解析器
根据配置帮助DispatcherServlet找到需要的视图对象
ModelAndView是Model的具体表现
HandlerExecutionChain
HandlerMapping
请求到来之后由哪一个controller响应
用HandlerInterceptor包裹住controller
HandlerInterceptor,Interceptor是一个拦截器,在被拦截对象的两侧加一些料,HandlerInterceptor是一个接口,三种方法可以在调用Controller之前、之后和view完成呈现之后做一些事情。
用户的请求通过DispatcherServlet的分发到达合适的Controller,来生产我们所需要的业务数据Model,model再通过DispatcherServlet传递给view,来实现最后的页面呈现。
HandlerAdapter
DispatcherServlet
DispatherServlet
Controller
HandlerAdapter
HandlerInterceptor
HandlerMapping
HandlerExecutionChain
ModelAndView
ViewResolver
View
HandlerExecutionChain
preHandle -> Controller method -> postHandle -> afterCompletion
HandlerMapping
help dispatcherServlet to get the right controller
wrap controller with HandlerInterceptor
DispatcherServlet前端控制器
HandlerAdapter处理器适配器
HandlerIntercept处理器拦截器(是一个借口,有三个实现,preHandle、afterCompletion、postHandle)
HandlerMapping处理器映射器、
HandlerExecutionChain处理器执行链
执行链:preHandle——>Controller method——>postHandle——>afterCompletion
ModelAndView模型视图,也可以用Model和Map,但是都会被转化为ModelAndView
ViewResolver视图解析器
View 用于呈现页面
ModelAndView
SpringMVC的静态概念
DispatcherServlet:它就相当于SpringMVC的前端控制器(Front Controller),前端用户的请求通过DispatcherServlet进行了分发,到达相应的Controller,来生产需要的业务数据Model,Model再通过DispatcherServlet传递给View完成最终页面呈现。
HandlerAdapter:适配器模式,将各种不同类型的HandlerAdapter适配成DispatcherServlet可以使用的HandlerAdapter,它是在DispatcherServlet内部使用的一个类,DispatcherServlet通过它可以找到Controller,SpringMVC中并没有一个接口叫做Controller,但是有一个annotation标签,该标签可以识别一个Controller。
HandlerInterceptor:拦截器,他是一个接口,拥有三个方法,如果Controller实现该接口,就可以调用Controller之前,调用之后,以及最终Model发送到页面可以做一些事情。

HandlerMapping:Handler是DispatcherServlet调用Controller中间过渡的一种对象,Mapping是DispatcherServlet与Controller映射关系的一种类,所以它就是请求到达DispatcherServlet,哪一个Controller来响应该请求,并且他也会对HandlerInterceptor进行管理,也就是它工作完后,会返回一个HandlerAdapter给DispatcherServlet。

HandlerExecutionChain:HandlerMapping返回的对象(包含HandlerAdapter、HandlerInterceptor),它们之间构成了一条执行链条,首先执行HandlerInterceptor的preHandle方法,然后调用Controller里的某个业务方法,再执行postHandle方法,再执afterCompletion方法,这里用到了反射机制(reflect)。

ModelAndView:可以使用SpringMVC中提供的Model类也可以使用java中提供的Map类的表现形式,但是DispatcherServlet最终都会把它转换为ModelAndView,所以在这里可以表现为Model的具体表现。
ViewResolver:视图解析器,可以通知DispatcherServlet使用哪一个视图,来进行视图的呈现,作用就是根据配置,找出需要的视图对象。
View:负责呈现页面,比如Jsp、JSTL等。
View:呈现页面。
ViewResolver:视图解析器,根据配置找出需要的视图对象。
ModelAndView
HandlerExecutionChain
HandlerMapping
HandlerInterceptor:拦截器的意思,是一个接口,有三个方法分别是preHandle、postHandle、afrerCompletion。可在真正调用Controller之前、之后、以及最终在Model发送到页面View完全呈现去做很多事情。
HandlerAdapter:是Controller的一种表现形式。
Controller:调用业务逻辑生成Model
DispatcherServlet:实现数据业务逻辑和页面显示分离。

Spring MVC作为一种前端控制器的实现形式,DispatcherServlet就是它的前端控制器。浏览器端用户的请求正是通过DispatcherServlet进行了分发达到了controller。
HandlerAdapter;Handler就是DispatcherServlet中的一个类,是controller的一个表现形式。而HandlerAdapter就是一种适配器模式:将各种不同类型的handler适配成我们需要的。
HandlerInterceptor;拦截器,在被拦截对象controller的两侧加入一些料。也是一个借口;有三个方法
HandlerMapping;一种关于DispatcherServlet和controller之间的映射关系。能帮助DispatcherServlet找到一个正确的HandlerAdapter,包括一个具体的controller和包裹它的HandlerInterceptor
HandlerExecutionChain:先调用HandlerInterceptor中的preHandle,然后是controller中的Controller method、postHandle、afterCompletion
ModelAndView;DispatcherServlet将Model和Map转化为ModelAndView
ViewResolver,视图解析器;将会帮助DispatcherServlet找到用哪一种试图
view;jsp等等界面呈现手段
这位仁兄总结的很全了。
Spring MVC作为一种前端控制器的实现形式,DispatcherServlet就是它的前端控制器。浏览器端用户的请求正是通过DispatcherServlet进行了分发达到了controller。
HandlerAdapter;Handler就是DispatcherServlet中的一个类,是controller的一个表现形式。而HandlerAdapter就是一种适配器模式:将各种不同类型的handler适配成我们需要的。
HandlerInterceptor;拦截器,在被拦截对象controller的两侧加入一些料。也是一个借口;有三个方法
HandlerMapping;一种关于DispatcherServlet和controller之间的映射关系。能帮助DispatcherServlet找到一个正确的HandlerAdapter,包括一个具体的controller和包裹它的HandlerInterceptor
HandlerExecutionChain:先调用HandlerInterceptor中的preHandle,然后是controller中的Controller method、postHandle、afterCompletion
ModelAndView;DispatcherServlet将Model和Map转化为ModelAndView
ViewResolver,视图解析器;将会帮助DispatcherServlet找到用哪一种试图
view;jsp等等界面呈现手段
222222222222
2222222222