java - 仅在 Spring boot 2.0.0 响应时执行 GenericFilterBean

标签 java spring-boot servlet-filters

我发现,如果我注册一个 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/

相关文章:

java - 使用 SecureRandom 生成 AES key 和 IV 的替代方案

java - Tomcat spring boot 应用程序 LifecycleException

java - Spring Boot 2.5.1 服务不会在 System.exit(0) 上停止

java - 如何多次读取 request.getInputStream()

java - Spring Boot Autowiring 实体管理器特定于配置

java - NoClassDefFoundError 从 Java(Android、LibGDX)调用 Clojure

java - 可以在具有相同sharedUserId的应用程序之间共享strings.xml吗?

spring-boot - Spring Boot 中的监听器,用于监听(异步)Google Pubsub 消息

java - 如何在 jersey 1.11 过滤器中添加自定义响应和中止请求

java - 如何将错误消息添加到响应正文?