Java 使用Spring boot 2.0.0仅在响应时执行GenericFilterBean
我已经看到,如果我注册一个SpringJava 使用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 {
GenericFilterBean
类,它会在每次请求时调用。只有当服务返回响应时,才可以调用另一个筛选器(可能是另一个GeneircFilterBean
)吗?基本上,我希望实现与JerseyContainerResponseFilter
相同的行为
提前感谢您可以在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"));
}
}
}