SpringBootでデータをフィルタリングする方法は何ですか?
Spring Bootでは、データをフィルタリングするためにフィルター(Filter)またはインターセプター(Interceptor)を使用することができます。
フィルターを使用する:
- javax.servlet.Filterをネイティブに日本語で言い換えると、javax.servlet.Filterという言葉になります。
- @Componentデータ
- doFilterを実行してください。
- フィルターチェーンを実行する
- @オーダー
サンプルコード:
@Component
@Order(1)
public class MyFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// 进行过滤操作
// ...
// 将请求传递给下一个过滤器或目标资源
chain.doFilter(request, response);
}
}
インターセプターを使用する。
- ハンドラインターセプター (Handora Intāseputā)
- コンポーネント
- 事前処理
- 本当
- 間違い
- 注文
Example code:
サンプルコード:
@Component
@Order(1)
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 进行过滤操作
// ...
// 返回true表示继续执行后续的拦截器或处理器,返回false表示中断后续的执行
return true;
}
}
注意すべき点は、フィルターはServlet仕様に基づいており、すべてのリクエストに対してフィルタリング操作を行うことができる一方、インターセプターはSpring MVCフレームワークによって提供され、Controllerのリクエストのみにフィルタリング操作を行うことができるということです。