私のアプリケーションではフィルターを適用したいのですが、すべてのリクエストがそのフィルターに送られる必要はありません。
すでに他のフィルターがいくつかあるため、これはパフォーマンスの問題になります。
フィルタを HTTP POST リクエストにのみ適用したい。何か方法はありますか?
私のアプリケーションではフィルターを適用したいのですが、すべてのリクエストがそのフィルターに送られる必要はありません。
すでに他のフィルターがいくつかあるため、これはパフォーマンスの問題になります。
フィルタを HTTP POST リクエストにのみ適用したい。何か方法はありますか?
これには、すぐに利用できる機能はありません。AFilter
をすべての HTTP メソッドに適用してもオーバーヘッドはありません。ただし、Filter
コード内にオーバーヘッドのあるロジックがある場合は、そのロジックを不要な HTTP メソッドに適用しないでください。
サンプルコードは次のとおりです。
public class HttpMethodFilter implements Filter
{
public void init(FilterConfig filterConfig) throws ServletException
{
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException
{
HttpServletRequest httpRequest = (HttpServletRequest) request;
if(httpRequest.getMethod().equalsIgnoreCase("POST")){
}
filterChain.doFilter(request, response);
}
public void destroy()
{
}
}