インターセプターのリリース
リリースの意味は、次のインターセプターがある場合は次のインターセプターが実行され、インターセプターがインターセプターチェーンの最後のインターセプターである場合はコントローラーのメソッドが実行されるということです。
インターセプターのメソッド
preHandle
呼び出しはインターセプターの順序で行われ、設定されている限り呼び出されます。
インターセプターが要求をインターセプトし、他のインターセプターまたはビジネスプロセッサを呼び出して処理するとプログラマが判断した場合、trueを返します。
リクエストを処理するために他のコンポーネントを呼び出す必要がないとプログラマが判断した場合は、falseを返します。
デフォルトの ブールpreHandle(HttpServletRequest要求、HttpServletResponse応答、オブジェクトハンドラ)は例外をスローします{ return true ; }
postHandle
インターセプターの定義に従って逆の順序で呼び出され、インターセプターチェーン内のすべてのインターセプターが正常に戻った後に呼び出されます。
サービスプロセッサが要求を処理した後、クライアントに応答を返す前にDispatcherServletが呼び出されます。
このメソッドでは、ユーザー要求が処理されます。
default void postHandle(HttpServletRequest request、HttpServletResponse response、Object handler、@Nullable ModelAndView modelAndView)throws Exception { }
完了後
インターセプターの定義に従って逆の順序で呼び出され、preHandlerがtrueを返した場合にのみ呼び出されます。
DispatcherServletがリクエストを完全に処理した後に呼び出されます。
この方法では、一部のリソースクリーニング操作を実行できます。
default void afterCompletion(HttpServletRequest request、HttpServletResponse response、Object handler、@Nullable Exception ex)throws Exception { }
アクションのインターセプターパス
アクションパスは、構成ファイルで構成できます。
<mvc:interceptors> <mvc:interceptor>
<!-使用指定されたカットされたurl-> <mvc:mapping path = "/ **" />
<!-使用指定されたurl>
<mvc: exclude-mapping path = "" /> <bean id = "handlerInterceptorDemo1" class = "com.itcast.web.interceptor.HandlerInterceptorDemo1"> </ bean>
</ mvc:interceptor> </ mvc:interceptors>