拦截器的作用java_拦截器使用及其作用 - solverpeng - OSCHINA - 中文开源技术交流社区...

实现HandlerInterceptor接口。

public interface HandlerInterceptor {

boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception;

void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)

throws Exception;

void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)

throws Exception;

}

SpringMVC配置拦截器:

执行时机和顺序:

FirstInterceptor#preHandle

SecondInterceptor#preHandle

targetMethod

SecondInterceptor#postHandle

FirstInterceptor#postHandle

render

SecondInterceptor#afterCompletion

FirstInterceptor#afterCompletion

在调用目标方法前,依次执行自定义拦截器的preHandle方法。

preHandle(): 该方法在目标方法之前被调用,若返回true,则继续执行后续的拦截器和目标方法,若返回false,则不会执行后续的拦截器和目标方法。

将FistInterceptor拦截器的preHandle()方法返回值改为false。

FirstInterceptor#preHandle

将SecondInterceptor拦截器的preHandle()方法返回值改为false,FirstInterceptor的preHandle()方法改为true。

FirstInterceptor#preHandle

SecondInterceptor#preHandle

FirstInterceptor#afterCompletion

postHandle():在调用目标方法之后,渲染视图之前被调用。

afterCompletion():在渲染视图(render)之后被调用。

作用: preHandle():可以做权限,日志,事务。 postHandle():可以对请求域中的属性或视图进行修改。 afterCompletion():释放资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值