从 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