Handler Interceptorとは?
この文章の目的は?
Handler Interceptorについて
HandlerInterceptor
Handlerの実行前と実行後に、完了時に他の操作を実行する場合は、それを使用します.複数のプロセッサで繰り返し使用されるコードを減らす場合に使用できます.(ログ記録、検証チェック、Localeの変更など)
複数のHandler Interceptorを使用する場合は、次の順序で適用されます.(PreHandleを除き、残りのPostHandleとAfterCompletionは逆順で行います)
Handlerの実行前と実行後に、完了時に他の操作を実行する場合は、それを使用します.複数のプロセッサで繰り返し使用されるコードを減らす場合に使用できます.(ログ記録、検証チェック、Localeの変更など)
複数のHandler Interceptorを使用する場合は、次の順序で適用されます.(PreHandleを除き、残りのPostHandleとAfterCompletionは逆順で行います)
PreHandle
boolean preHandle(request, response, handler)
Handlerが実行される前に呼び出されます.Handlerに関する情報を使用することができるので、論理はシーケンスボードフィルタよりも詳細に実現できる.戻り値として、要求、応答を次のインタフェースまたはHandler(false)に転送します.PostHandle
void postHandle(request, response, modelAndView)
Handlerの実行が完了し、ビューがレンダリングされる前に呼び出されます.非同期リクエストは呼び出されません.AfterCompletion
void afterCompletion(request, response, handler, ex)
リクエスト処理とビューレンダリングが完了したら呼び出されます.PreHandlerがtrueを返す場合にのみ、PostHandleと同じ非同期要求は呼び出されません.使用方法
使い方が簡単です.HandleInteptorインタフェースを実装し、WebConfiguratorインタフェースを使用して実装されたクラスを登録します.
public class GreetingInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("Greeting PreHandle");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("Greeting PostHandle");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("Greeting AfterCompletion");
}
}
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// Order 옵션을 주지 않으면 Add한 순서대로 적용
registry.addInterceptor(new GreetingInterceptor()).order(0);
registry.addInterceptor(new AnotherInterceptor())
.addPathPatterns("/hi/")
.order(-1);
}
}
タブレットフィルターとの違いは?
Handler Interceptorの違いは、Sublitフィルタよりも具体的な処理が可能であることである.平板フィルターは、主に一般的な用途を実現する機能に使われているそうです.例えば,XSSのような攻撃はLucy−xssのようなオープンソースWebをもたらす.xmlに登録し、スライスフィルタで実現すべきだそうです.
本文の参考
Reference
この問題について(Handler Interceptorとは?), 我々は、より多くの情報をここで見つけました https://velog.io/@maketheworldwise/HandlerInterceptor란テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol