首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在chain.doFilter后添加响应头

在chain.doFilter后添加响应头
EN

Stack Overflow用户
提问于 2015-12-04 17:55:29
回答 1查看 1.9K关注 0票数 1

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

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

下面是我的代码:

代码语言:javascript
复制
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修改了响应,但没有成功设置响应头。

谢谢,杰伊

EN

回答 1

Stack Overflow用户

发布于 2015-12-04 18:01:38

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34085468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档