我有一个关于获取整个 Response 大小的问题。
我试图使用 getHeader 函数来查找标题的 while 大小(字节)但是
我无法找到标题的整个大小
我正在使用 doPost 函数,它传递请求和响应。
我能够找到请求 header 的内容,但是我不确定如何获取响应的内容(或大小)
有谁知道如何获取响应的字节大小或 header 的内容?
谢谢
最佳答案
您可以通过两种方式使用过滤器包装您的 servlet:
- 将响应对象转换为
org.apache.catalina.connector.Response
,并调用getBytesWritten(false)
。这就是访问日志阀所做的(参见实现 here )。请注意,这只是响应主体的大小。 - 在过滤器中,用缓存响应包装响应,这将缓存响应主体和 header 。然后,在请求获得大小之后。同样,这只是响应主体的大小。您必须自己构建 header 大小,因此可能会出现一些差异。
关于tomcat - HttpServletResponse 如何获取 header 以检查大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19885165/