SpringMVCインターセプターの実装方法

Spring MVCインターセプターは、HandlerInterceptorインターフェースを実装することで実現できます。具体的には、以下の手順で行います。

  1. java クラスを作成して HandlerInterceptor インタフェースを実装し、preHandle、postHandle、afterCompletion の 3 つのメソッドをオーバーライドする必要があります。
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 在请求处理之前进行拦截操作
return true; // 返回true表示继续执行请求,返回false表示拦截请求
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
// 在请求处理之后进行拦截操作
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
// 请求完成之后进行拦截操作
}
}
  1. Springの設定ファイルにインターセプターを記述する。
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/> <!-- 拦截所有请求 -->
<bean class="com.example.MyInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
  1. コントローラにリクエストが届く前にインターセプターが横取りした後に配置がされます。preHandleメソッド内で、権限の検証、ログなどのインターセプトロジックを実行することができます。

インターセプターはSpring MVCのリクエストのみインターセプトでき、css、js、画像などの静的リソースファイルはインターセプトできない点に注意。静的リソースファイルをインターセプトする必要がある場合は、WebMvcConfigurerを設定することで実現できます。

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
}
}

上記の手順に従えば、Spring MVCインターセプターの設定と使用が実現できます。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds