如何读取 HttpServletReponses 输出流?

2023-12-12

我想制作一个 Servlet 过滤器,它将在处理和完成后读取响应的内容,并以 XML 或 PDF 或其他形式返回该信息。但我不确定如何从 HttpServletResponse 对象中获取任何信息。我怎样才能得到这些信息?


将其添加到过滤器 java 文件中。

static class MyHttpServletResponseWrapper 
  extends HttpServletResponseWrapper {

  private StringWriter sw = new StringWriter(BUFFER_SIZE);

  public MyHttpServletResponseWrapper(HttpServletResponse response) {
    super(response);
  }

  public PrintWriter getWriter() throws IOException {
    return new PrintWriter(sw);
  }

  public ServletOutputStream getOutputStream() throws IOException {
    throw new UnsupportedOperationException();
  }

  public String toString() {
    return sw.toString();
  }
}

使用以下代码:

HttpServletResponse httpResponse = (HttpServletResponse) response;
MyHttpServletResponseWrapper wrapper = 
  new MyHttpServletResponseWrapper(httpResponse);

chain.doFilter(request, wrapper);

String content = wrapper.toString();

内容变量现在具有输出流。您也可以对二进制内容执行此操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何读取 HttpServletReponses 输出流? 的相关文章

随机推荐