「Spring MVC」インターセプ(Interceptor)タクラスの作成サンプル

書式
1.preHandleメソッド
コントローラメソッドの実行前タイミングで実行されます。
2.postHandleメソッド
コントローラメソッドの実行後タイミングで実行されます。
3.afterCompletionメソッド
リクエスト処理が完了した後タイミングで実行されます。

使用例
1.インターセプタクラスを作成します

package com.arkgame.interceptor

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

// HandlerInterceptorAdapterを継承
public class CommonInterceptor extends HandlerInterceptorAdapter {

    // コントローラメソッドの実行前に呼ばれる(preHandleメソッド)
    @Override
    public boolean preHandle(
                    HttpServletRequest request,
                    HttpServletResponse response,
                    Object handler) throws Exception {
        System.out.println("preHandle method is called");
            //処理コード
        return true;
    }

    // コントローラメソッドの実行後に呼ばれる(postHandleメソッド)
    @Override
    public void postHandle(
                        HttpServletRequest request,
                        HttpServletResponse response,
                        Object handler,
                        ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle method is called");
            //処理コード
    }

    // リクエスト処理の完了後に呼ばれる(afterCompletionメソッド)
    @Override
    public void afterCompletion(
                        HttpServletRequest request,
                        HttpServletResponse response,
                        Object handler, Exception ex) throws Exception {
        System.out.println("afterCompletion method is called");
            //処理コード
    }
}

説明
postHandleの引数ModelAndViewはビューや画面情報をまとめて保持します。
afterCompletionの引数Exceptionは、例外が処理されなかった場合に、その例外クラスが引き渡されます。

2.applicationContext.xmlにインターセプタを登録します

<!-- インターセプタの定義 -->
 <mvc:interceptors>
     <mvc:interceptor>
         <mvc:mapping path="/**" />
         <bean class="com.arkgame.interceptor.CommonInterceptor" />
     </mvc:interceptor>
 </mvc:interceptors>

 

SpringMVC

Posted by arkgame