私のアプリケーションではフィルターを適用したいのですが、すべてのリクエストがそのフィルターに行く必要があるわけではありません。
すでに他のフィルターがいくつかあるので、これはパフォーマンスの問題になります。
フィルターをHTTP POSTリクエストのみに適用します。方法はありますか?
このためのすぐに利用できる機能はありません。 Filter
は、すべての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()
{
}
}