【发布时间】:2010-11-16 02:34:06
【问题描述】:
提前感谢大家-
所以我继续执行以下代码: How can I read an HttpServletReponses output stream?
这给了我响应的主体(html 等),但我根本没有得到任何标题 - 这可能与 HttpServletResponseWrapper 有关吗?我需要捕获整个请求以进行标头修改等。
谢谢,
山姆
【问题讨论】:
提前感谢大家-
所以我继续执行以下代码: How can I read an HttpServletReponses output stream?
这给了我响应的主体(html 等),但我根本没有得到任何标题 - 这可能与 HttpServletResponseWrapper 有关吗?我需要捕获整个请求以进行标头修改等。
谢谢,
山姆
【问题讨论】:
如果要捕获标头,最好的方法是覆盖 HttpServletResponseWrapper 中的所有 addHeader() / setHeader()(日期、int 和字符串),并将它们存储在 HashMap 或 Properties 实例中(或 MultiMap,如果你是使用 Google 收藏)。
然后,您可以在处理响应后在过滤器中对它们做任何您想做的事情。您还需要在包装器中以某种方式公开它们(例如编写 getHeaders() 方法),因为常规 HttpServletResponse 不会。
【讨论】:
一个简单的解决方案是使用 Tomcat 的Request Dumper Valve。这会转储所有元信息,包括每个传入 HttpServletRequest 和传出 HttpServletReply 的标头字段。
【讨论】: