Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Spring boot 2.0.0仅在响应时执行GenericFilterBean_Java_Spring Boot_Servlet Filters - Fatal编程技术网

Java 使用Spring boot 2.0.0仅在响应时执行GenericFilterBean

Java 使用Spring boot 2.0.0仅在响应时执行GenericFilterBean,java,spring-boot,servlet-filters,Java,Spring Boot,Servlet Filters,我已经看到,如果我注册一个SpringGenericFilterBean类,它会在每次请求时调用。只有当服务返回响应时,才可以调用另一个筛选器(可能是另一个GeneircFilterBean)吗?基本上,我希望实现与JerseyContainerResponseFilter相同的行为 提前感谢您可以在chain.doFilter(请求、响应)方法之后传递代码。 下面是一个例子 public class SimpleLoggingFilter extends GenericFilterBean {

我已经看到,如果我注册一个Spring
GenericFilterBean
类,它会在每次请求时调用。只有当服务返回响应时,才可以调用另一个筛选器(可能是另一个
GeneircFilterBean
)吗?基本上,我希望实现与Jersey
ContainerResponseFilter
相同的行为


提前感谢

您可以在chain.doFilter(请求、响应)方法之后传递代码。 下面是一个例子

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"));
        }
    }
}

您可以在chain.doFilter(请求、响应)方法之后传递代码。 下面是一个例子

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"));
        }
    }
}