加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Spring拦截器HandlerInterceptor接口代码解析

发布时间:2020-12-14 20:13:57 所属栏目:Java 来源:网络整理
导读:Spring的HandlerMapping支持拦截器,拦截器必须实现HandlerInterceptor接口,此接口里面有下面3中方法: 1.preHandle()处理器执行前被调用,方法返回true标识继续调用其他拦截器或者处理器,返回false表示中断流程,后续的拦截器和处理器不再执行。 2.postHa

Spring的HandlerMapping支持拦截器,拦截器必须实现HandlerInterceptor接口,此接口里面有下面3中方法:

1.preHandle()处理器执行前被调用,方法返回true标识继续调用其他拦截器或者处理器,返回false表示中断流程,后续的拦截器和处理器不再执行。

2.postHandle()处理器执行后,视图执行前调用,此时而已通过ModelAndView对象对数据模型数据进行处理或对视图进行处理。

3.afterCompletion()整个过程结束后调用,比如性能监控中我们在这里可以记录结束时间并输出消耗的时间,也可以在这里写对资源的清理,但是只有preHandle()返回true时才会执行afterCompletion方法。

public class someInterceptor implements HandlerInterceptor{
 public boolean preHandle(HttpServletRequest req,HttpServletResponse resp,Object handler)throws Exception{
  //TODO 处理器执行前被调用
  return true;
 }

 publilc void postHandle(HttpServletRequest req,Object handler,ModelAndView mv)throws Exception{
  //TODO 处理器执行后被调用
 }

 public void afterCompletion(HttpServletRequest req,Exception e)throws Exception{
  //TODO全部执行完成后调用
 }
}

这个自定义的拦截器实现HandlerInterceptor接口就要实现接口里所有的方法,如果只想使用某一种方法,可以继承HandlerInterceptorAdapter.

拦截器的配置

<mvc:interceptors>
 <mvc:interceptor>
  <mvc:mapping path="/org/*"/>
  <mvc:exclude-mapping path="/login/*"/>
  <bean class="org.vipcpi.interceprot.someInterceptor"/>
 </mvc:interceptor>
</mvc:interceptors>

总结

以上就是本文关于Spring拦截器HandlerInterceptor接口代码解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读