HttpServletResponse如何获取Header来检查大小

时间:2013-11-10 01:15:37

标签: tomcat servlets http-headers http-post

我有一个关于获取整个响应大小的问题。

我试图使用getHeader函数来查找标题的大小(字节),但是

我无法找到标题的整个大小

  

http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletResponse.html#getHeader%28java.lang.String

我正在使用doPost函数,它会传递请求和响应。

我能够找到Request标头的内容但是,我不知道如何获取Response的内容(或大小)

有谁知道如何获取响应的字节大小或标题的内容?

感谢

1 个答案:

答案 0 :(得分:0)

您可以使用过滤器以两种方式包装您的servlet:

  • 将响应对象转换为org.apache.catalina.connector.Response,然后调用 getBytesWritten(false)。这就是访问日志阀的作用(参见实现here)。请注意,这只是响应正文的大小。
  • 在过滤器中,使用缓存响应包装响应,这将缓存响应正文和标题。然后,在请求获得大小之后。同样,这只是响应主体的大小。您必须自己构建标题大小,以期产生一些差异。