Spring的Interceptor(拦截器)是Controller 方法级别的 当某一个Controller的方法进行request处理的时候 可以通过Interceptor进行拦截, 拦截器可以在方法执行之前, 方法执行完以后(返回ModelAndView) 以及执行完整个流程(直到渲染完View) 进行拦截
制作一个Interceptor需要实现org.springframework.web.servlet.HandlerInterceptor接口 他提供3个抽象方法 如下
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception:
执行Controllerf方法之前做处理 如果返回'true' 则继续执行, 如果返回'false' 则不再继续执行。handler为具体的Controller. 可以进行强制转换 如: WelcomeController controller = (WelcomeController) handler
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception;
执行完Controllerf方法 并且返回ModelAndView(还未进行View的处理)
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception;
整个操作流程执行完毕 包括渲染View
但是Spring已经提供了 org.springframework.web.servlet.handler.HandlerInterceptorAdapter抽象类来实现HandlerInterceptor接口 用来做适配器 我们只需要集成该适配器就可以了
public class WelcomeInterceptor extends HandlerInterceptorAdapter
Interceptor 需要配置在HandlerMapping上 该HandleMapping所映射的Controller全都会被该Interceptor拦截, 一个HandlerMapping可以配置多个Interceptor 做个HandlerMapping可以配置同一个Interceptor
示例:
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="welcomeInterceptor"/>
</list>
</property>
<property name="mappings">
<props>
<prop key="/welcome">welcomeController</prop>
</props>
</property>
<property name="order" value="0"/>
</bean>
<bean id="welcomeController" class="me.iace.spring.controller.WelcomeController" />
分享到:
相关推荐
ssh2-interceptor拦截器(权限管理).
struts2 Interceptor拦截器 http://whitewolf.0fees.net
Filter过滤器与Interceptor拦截器有很多相似
springMVC3学习(七)--Interceptor拦截器(源码) 文章地址:http://blog.csdn.net/itmyhome1990/article/details/26286107
NULL 博文链接:https://panyongzheng.iteye.com/blog/2084629
应用拦截器 优化增删改查
本篇文章主要介绍了详解Retrofit Interceptor(拦截器) 拦截请求并做相关处理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Struts2拦截器(Interceptor) Struts2拦截器(Interceptor)
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理,这篇文章主要介绍了详解SpringMVC中使用Interceptor拦截器,有兴趣的可以了解一下。
主要介绍了Mybatis Interceptor 拦截器的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本篇文章主要介绍了OKHttp3(支持Retrofit)的网络数据缓存Interceptor拦截器的实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
jfinal中拦截器(Interceptor)的参数注入jfinal中拦截器(Interceptor)的参数注入
利用反射和动态代理机制实现自定义拦截器Interceptor http://blog.csdn.net/alanchen520/article/details/34087833
谈到拦截器,还有一个词大家应该知道——拦截器链(Interceptor Chain,在Struts 2中称为拦截器栈Interceptor Stack)。拦截器链就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截器链
初学者很容易将 Spring MVC 拦截器 和 Spring Cloud OpenFeign 拦截器搞混,误以为OpenFeign拦截器就是SpringMVC拦截器:Spring MVC拦截器发生在客户端 和 服务端之间,在客户端向服务端发送请求时进行拦截处理。...
struts2 拦截器_教程.zip
SpringMvc 拦截器 原理清楚,代码简单,值得学习!
Android 中okhttp自定义Interceptor(缓存拦截器) 前言: 新公司项目是没有缓存的,我的天,坑用户流量不是么。不知道有人就喜欢一个界面没事点来点去的么。怎么办?一个字“加”。 由于项目的网络请求被我换成了...
STRUTS2:拦截器Interceptor
1.拦截器的使用示例 2.基于反射自己写的拦截器 3.在mvc框架配置即可使用