从 HTTPServletResponse 获取正文和响应代码

Posted

技术标签:

【中文标题】从 HTTPServletResponse 获取正文和响应代码【英文标题】:Getting the body and response code from an HTTPServletResponse 【发布时间】:2011-11-30 06:48:00 【问题描述】:

我正在尝试为我们的客户端访问 API 时构建一个简单的日志记录系统。我们使用 Spring 连接控制器和处理程序。我正在查看 Spring 的拦截器功能来编写 postHandle() 方法。不幸的是,与我在这里看到的所有代码示例不同,HttpServletResponse 没有例如 getStatus() 方法。我假设我们使用了错误的 Java 版本或其他东西。

我们需要来自 HttpServletResponse 对象的正文和响应代码:我怎样才能得到这些?

编辑:我们使用了过滤器:

public void doFilter(
    ServletRequest request,
    ServletResponse response,
    FilterChain chain) throws IOException, ServletException 

    RichHttpServletResponse richResponse=new RichHttpServletResponse((HttpServletResponse)response);
    chain.doFilter(request, richResponse);

RichHttpServletResponse 将 servlet 响应作为其构造函数中的参数,并覆盖一些方法,例如 sendError(),并将值传递给实际的 servlet 响应。 webmvc-config XML 看起来像这样:

<bean id="filterChainProxy" class="org.springframework.security.web.FilterChainProxy">
  <sec:filter-chain-map path-type="ant">
    <sec:filter-chain pattern="/**"
      filters="requestObjectFilter" />
  </sec:filter-chain-map>
</bean>

下面有一个 bean def。

【问题讨论】:

您的问题有两个方面。这重复了您的第一个问题:***.com/questions/3242236/… 这重复了您的第二个问题:***.com/questions/1302072/… 【参考方案1】:

您也许可以调用 getOutputStream() 并阅读它,但我担心它会搞砸流。有一些重置方法,但我自己不熟悉它们的作用。

【讨论】:

以上是关于从 HTTPServletResponse 获取正文和响应代码的主要内容,如果未能解决你的问题,请参考以下文章

从 HTTPServletResponse 获取正文和响应代码

HttpServletResponse实战之下载文件与动态验证码Javaweb

Java HttpServletResponse

如何获取HttpServletResponse里面的内容

HttpServletRequest和HttpServletResponse

HttpServletResponse对象之常见应用