我发现,如果我注册一个 Spring GenericFilterBean
类,它每次都会根据请求调用。仅当服务返回响应时,是否可以调用另一个过滤器(可能是另一个 GeneircFilterBean
)?基本上,我想实现与 Jersey
ContainerResponseFilter
相同的行为。
提前致谢
最佳答案
您可以在 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"));
}
}
}
关于java - 仅在 Spring boot 2.0.0 响应时执行 GenericFilterBean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49332344/