Saturday, March 12, 2011

JSP servlet output stream





package com.ack.web.servlet;

import java.io.IOException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

/**
 * In the ServletOutputStream all methods converge on the write(int)
 * output method.  So it is this method that we override to customise
 * what is sent back to an HTTP client that uses the JSPServletOutputStream.
 *
 * In this case we simply replace '<' with '[' and '>' with ']', each
 * with ascii values 60, 91, 62, 93 respectively.
 *
 */
public class JSPServletOutputStream extends ServletOutputStream {
  private HttpServletResponse delegate;

  public JSPServletOutputStream( HttpServletResponse hss ) {
    delegate = hss;
  }

  public void write( int c ) throws IOException {
    if( c == 60 ) {
      delegate.getOutputStream().write( 91 );
    }
    else if( c == 62 ) {
      delegate.getOutputStream().write( 93 );
    }
    else {
      delegate.getOutputStream().write( c );
    }
  }
}

No comments:

Post a Comment