Skip to content

Instantly share code, notes, and snippets.

@aliencode
Last active January 4, 2016 13:39
Show Gist options
  • Select an option

  • Save aliencode/8629083 to your computer and use it in GitHub Desktop.

Select an option

Save aliencode/8629083 to your computer and use it in GitHub Desktop.
HttpServletResponse 增加输出

##HttpServletResponse 流只能读取一次,通过以下方法增加输出

public class ResponseLoggingFilter extends GenericFilterBean {

   @Override
   public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
      HttpServletResponse responseWrapper = loggingResponseWrapper((HttpServletResponse) response);     
      filterChain.doFilter(request, responseWrapper);
   }

   private HttpServletResponse loggingResponseWrapper(HttpServletResponse response) {
      return new HttpServletResponseWrapper(response) {
         @Override
         public ServletOutputStream getOutputStream() throws IOException {
            return new DelegatingServletOutputStream(
               new TeeOutputStream(super.getOutputStream(), loggingOutputStream())
            );
         }
      };
   }

   private OutputStream loggingOutputStream() {
      return System.out;
   }
}

##来源:

http://stackoverflow.com/questions/2158647/logging-response-body-html-from-httpservletresponse-using-spring-mvc-handlerin

##Java里流数据只能读取一次的原因:

http://www.cnblogs.com/fzll/p/3400558.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment