【问题标题】:Execute GenericFilterBean only on response with Spring boot 2.0.0仅在使用 Spring boot 2.0.0 响应时执行 GenericFilterBean
【发布时间】:2018-08-26 04:56:02
【问题描述】:

我已经看到,如果我注册一个 Spring GenericFilterBean 类,它会在每次请求时调用。是否可以仅在服务返回响应时调用另一个过滤器(可能是另一个GeneircFilterBean)?基本上,我想实现与JerseyContainerResponseFilter 相同的行为。

提前致谢

【问题讨论】:

    标签: java spring-boot servlet-filters


    【解决方案1】:

    您可以在 chain.doFilter(request, response) 方法之后传递代码。 这是一个例子。

    public class SimpleLoggingFilter extends GenericFilterBean {
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    
            chain.doFilter(request, response);
    //This code will work after response
            if ((response instanceof HttpServletResponse) && (request instanceof HttpServletRequest))  {           
                HttpServletResponse httpServletResponse = (HttpServletResponse) response;
                System.out.println("Response status is " + httpServletResponse.getStatus() +" " +
                        "Response  content-length is " + httpServletResponse.getHeader("content-length"));
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-11-10
      • 2021-03-28
      • 2019-06-28
      • 2020-06-26
      • 1970-01-01
      • 2018-08-13
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      相关资源
      最近更新 更多