春-MVC-ブート-9インターセプター

まず、どのようなインターセプタですか?

リクエストがDispatchServletを来たとき、HandlerMappingプロセッサに応じHandlerExecutionChainオブジェクトを返すためのメカニズムがあります。このオブジェクトは、プロセッサとインターセプタが含まれています。ブロッカーは、プロセッサの機能を強化するために使用しました。

  • プロセッサのマッピング--- [リターン] HandlerExecutionChainプロセッサハンドラ
  • プロセッサHandlerExecutionChain = +インターセプタ

第二、インターセプタインターフェース

   public interface Handlerlnterceptor {
       //处理器执行前方法  boolean preHandle(request,response,handler)
       //处理器处理后方法  void  postHandle(request,response,handler,ModelAndView)
       //处理器完成后方法  void  afterCornpletion(request,response,handler,Exception)
   }
         +---------------+
         |   preHandle   |
         +-------+-------+
                 |
         +-------+-------+             +--------------+
         |    处理器     +-----------> |   postHandle |  +------------+
         +---------------+             +--------------+               |
                                                                      |
         +----------------+             +--------------+              |
         |afterCornpletion+<------------+   视图处理   |  <-----------+
         +----------------+             +--------------+

第三に、登録インターセプター

      在配置文件中实现WebMvcConfigurer接口,最后覆盖其addlntereptors方法进行注册拦截器
        // 注册拦截器到Spring MVC机制,然后它会返回一个拦截器注册
        InterceptorRegistration ir = registry.addInterceptor(new Interceptor1());
        // 指定拦截匹配模式,限制拦截器拦截请求
        ir.addPathPatterns("/interceptor/*");

第四に、インターセプタ順序

責任のシーケンシャルチェーン方法。登録順になります。

おすすめ

転載: blog.csdn.net/lidongliangzhicai/article/details/92772897