gpt4 book ai didi

java - 在 chain.doFilter 之后添加响应头

转载 作者:太空宇宙 更新时间:2023-11-04 13:09:46 26 4
gpt4 key购买 nike

我已经搜索并看到了关于这个问题的几个答案,但仍然不知道这是怎么可能的......

我被要求实现一个过滤器,该过滤器在响应 header 中返回 HTTP 请求的响应时间,例如。响应 header :XX以便被网络分析客户端库收集。

这是我的代码:

public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
HttpServletResponse httpResp = (HttpServletResponse)response;
long startTime = System.nanoTime();
chain.doFilter(request, response);
long endTime = System.nanoTime();
httpResp.addHeader("response-time",endTime-startTime);
}

我也尝试使用 HttpServletResponseWrapper

我设法使用 OutputStream 修改响应,但没有成功设置响应 header 。

谢谢杰伊

最佳答案

扩展包装实用程序类,如 HttpServletResponseWrapper(使用自定义输出流)并将其传递给链 doFilter() 方法。如果您不这样做,则在链 doFilter() 返回后,原始(未包装的)响应将消失,您将没有机会修改它。

在这里您可以找到一个示例:Looking for an example for inserting content into the response using a servlet filter

关于java - 在 chain.doFilter 之后添加响应头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34085468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com