前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringMVC源码解析之HandlerInterceptor接口

SpringMVC源码解析之HandlerInterceptor接口

作者头像
JavaEdge
发布2021-02-22 14:55:08
3560
发布2021-02-22 14:55:08
举报
文章被收录于专栏:JavaEdgeJavaEdge

接口给提供了3个方法:

1 preHandle

执行controller处理逻辑前执行,返回值为boolean ,返回值为true时接着执行postHandle和afterCompletion,如果我们返回false则中断执行

拦截处理程序的执行。 HandlerMapping确定的适当处理器对象后调用,但在HandlerAdapter调用处理器之前。

DispatcherServlet是在执行链中处理的handler,其中包括了任意数量的拦截器,处理器本身在链的末尾,即最后才处理 handler。 利用该方法,每个拦截器可以决定中止执行链,特别发送一个HTTP错误或写入客户端响应。

注:特殊注意事项适用于异步请求处理。 欲了解更多详情,请参见AsyncHandlerInterceptor 。

参数

请求 - 当前的HTTP请求 响应 - 当前HTTP响应 处理器 - 处理器选择来执行,类型和/或实例的评价 返回: true如果执行链应与下一个拦截器或处理程序本身进行。 否则,DispatcherServlet认为,这种拦截器已经处理了响应本身。

抛出

Exception -在错误的情况下

2 postHandle

在执行controller的处理后,在ModelAndView处理前执行

拦截处理程序的执行。 调用后的HandlerAdapter实际上调用的处理,但DispatcherServlet的呈现视图之前。 可以公开额外的模型对象通过给定的ModelAndView中的视图。 DispatcherServlet的在执行链流程处理程序,其中包括任何数量的拦截器的,与所述处理程序本身在末端。 利用这种方法,每个拦截器可以后处理的执行,在执行链的相反的顺序得到应用。 注:特殊注意事项适用于异步请求处理。 欲了解更多详情,请参见AsyncHandlerInterceptor 。

参数

请求 - 当前的HTTP请求 响应 - 当前HTTP响应 处理器-处理器(或HandlerMethod即开始异步执行,类型和/或实例检查) ModelAndView的-在ModelAndView返回的句柄(也可以是null )

抛出

Exception -在错误的情况下

3 afterCompletion

在DispatchServlet执行完ModelAndView之后执行

请求处理,即完成之后回调,呈现视图后。 将在处理程序执行的任何结果调用,从而允许适当的资源清理。 注意:如果此拦截器的才会被调用preHandle方法已成功完成,返回true ! 如同postHandle方法,该方法将在以相反的顺序链中的每个拦截器被调用,所以第一个拦截器将是最后被调用。 注:特殊注意事项适用于异步请求处理。 欲了解更多详情,请参见AsyncHandlerInterceptor 。

参数

请求 - 当前的HTTP请求 响应 - 当前HTTP响应 处理器-处理器(或HandlerMethod即开始异步执行,类型和/或实例检查) 前 - 抛出异常的处理程序执行的,如果有的话

抛出

Exception -在错误的情况下

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 preHandle
    • 参数
      • 抛出
      • 2 postHandle
        • 参数
          • 抛出
          • 3 afterCompletion
            • 参数
              • 抛出
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档