【问题标题】:How to apply a servlet filter only to requests with HTTP POST method如何仅将 servlet 过滤器应用于具有 HTTP POST 方法的请求
【发布时间】:2012-06-20 02:10:55
【问题描述】:

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

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

我希望我的过滤器仅适用于 HTTP POST 请求。有什么办法吗?

【问题讨论】:

    标签: java servlets servlet-filters


    【解决方案1】:

    没有现成的可用功能。 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()
       {
    
       }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      • 2018-12-30
      • 2011-06-29
      • 1970-01-01
      • 2013-04-12
      相关资源
      最近更新 更多