如何将 Servlet 过滤器仅应用于使用 HTTP POST 方法的请求

2022-09-01 17:25:47

在我的应用程序中,我想应用筛选器,但我不希望所有请求都必须转到该筛选器。

这将是一个性能问题,因为我们已经有一些其他过滤器。

我希望我的筛选器仅应用于 HTTP POST 请求。有什么办法吗?


答案 1

没有现成的功能。A 在应用于所有 HTTP 方法时没有开销。但是,如果代码中有一些具有开销的逻辑,则不应将该逻辑应用于不需要的HTTP方法。FilterFilter

下面是示例代码:

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()
   {

   }
}

答案 2

推荐