拦截器

作者: WhyDoWeLive | 来源:发表于2019-08-13 11:33 被阅读0次

    用于拦截用户请求并做响应的处理,例如用户权限验证、判断用户是否已经登陆
    通过在配置文件中配置和取消配置某个拦截器,实现可插拔式设计

    可通过实现HandlerInterceptor接口或继承抽象类HandlerInterceptorAdapter定义一个拦截器

    HandlerInterceptor的三个接口
    • boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
      在请求被Controller处理之前被调用。多个拦截器的preHandle会按照拦截器的声明顺序链式调用,若前面的拦截器返回false,则后面的拦截器和Controller不再执行;若返回false则调用下一个拦截器的preHandler,若已经是最后一个Interceptor,则调用但前请求的Controller方法
    • void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView)
      在请求被Controller处理之后,dispatcherServlet进行视图渲染之前被调用,所以我们可以在这个方法中对Controller处理之后的ModelAndView进行操作。调用该方法还需一个前置条件,即所属Intercept的preHandle返回True。多个拦截器的postHandle会按照拦截器声明的相反顺序链式调用
    • afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception exception)
      在DispatcherServlet渲染视图后执行,主要用于资源清理。调用该方法还需一个前置条件,即所属Intercept的preHandle返回True。

    相关文章

      网友评论

          本文标题:拦截器

          本文链接:https://www.haomeiwen.com/subject/gjrvjctx.html