1はじめに
春のWeb MVCフレームワークが構築された元のWebサーブレットAPIに基づいています。
2インターセプター
2.1定義
インターセプト機構springmvcフレームワーク
2.2
二段階2.2.1
- HandlerInterceptorインタフェースを実装します
- 登録(XMLまたは注釈)
2.2.2 HandlerInterceptorインタフェース
- HandlerInterceptorインタフェースを実装します
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class InterceptorTest implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle");
return true; // 只有返回true才会继续向下执行,返回false取消当前请求
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("postHandle");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("afterCompletion");
}
}
- 登録
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
/**
* 注册拦截器(扫描到拦截器)
*/
@Configuration
public class MyWebAppConfigurer extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new InterceptorTest()).addPathPatterns("/**");
super.addInterceptors(registry);
}
}
- 利用シナリオ
インターセプタは、ドアのポストに似要求、前と後のデータを傍受することができ、ドアのポストは、一般的に迎撃のために、アイデンティティ機能をチェックする必要があり、インターセプタは要求を確認することができるかどうか、パーミッションのチェック機能を持っている、あなたは内部のチェックや他のトークンができます。
パフォーマンステスト。時間の計算は、インタフェース要求のパフォーマンスの前と後に検出することができます。
ジャーナリング。インターセプト要求データ記録リクエストパラメータ。