ホームページ  >  記事  >  Java  >  springMVCインターセプタの使い方

springMVCインターセプタの使い方

小老鼠
小老鼠オリジナル
2024-01-10 15:42:35526ブラウズ

使用手順: 1. インターセプター クラスの作成: HandlerInterceptor インターフェイスを実装するクラスを作成します。このインターフェースには、preHandle、postHandle、afterCompletion という 3 つのメソッドが含まれています; 2. インターセプターの登録: Spring MVC 構成にインターセプターを登録します (Java 構成または XML 構成を通じて行うことができます); 3. インターセプターの使用: インターセプター構成 完了したら、指定されたパス上のリクエストをインターセプトし、対応するタスクを実行します。

springMVCインターセプタの使い方

このチュートリアルのオペレーティング システム: Windows 10 システム、Dell G3 コンピューター。

Spring MVC では、インターセプター (Interceptor) は、リクエスト処理の前後にいくつかのタスクを実行するために使用されるメカニズムです。インターセプターを使用すると、ロギング、権限の検証、国際化などのさまざまなタスクを処理できます。 Spring MVC でインターセプターを使用する方法の一般的な手順は次のとおりです:

1. インターセプター クラスを作成します:最初に, HandlerInterceptor インターフェイスを実装するクラスを作成する必要があります。このインターフェイスには、preHandle、postHandle、afterCompletion という 3 つのメソッドが含まれています。必要に応じて、これらのメソッドを実装して、リクエスト前、リクエスト後、およびビュー後のレンダリング タスクを実行できます。

#

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
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 {
        // 在视图渲染之后执行
    }
}

2. インターセプターを登録します。 Spring MVC 構成にインターセプターを登録します。これは、Java 構成または XML 構成を介して実行できます。

Java 設定方法:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyInterceptor()).addPathPatterns("/secure/**");
    }
}

XML 設定方法:

<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/secure/**"/>
        <bean class="com.example.MyInterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>

ここの addPathPatterns は、インターセプターによってインターセプトされるパスを指定します。これは、必要に応じて構成できます。

#3. インターセプターを使用する: インターセプターを構成すると、指定されたパス上のリクエストをインターセプトし、対応するタスクを実行します。上記の例では、インターセプターはパス「/secure/**」のリクエストで実行されます。

#インターセプターを使用すると、権限制御、ログ記録など、さまざまなシナリオのニーズに柔軟に対応できます。インターセプターでは、リクエスト処理チェーンの実行を継続するかどうかを制御するために true または false を返すことに注意してください。

以上がspringMVCインターセプタの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。