ServletOuptputStream Vs PrintWriter
ServletOutputStream: ServletResponse.getOutputStream() returns a ServletOutputStream
suitable for writing binary data in the response. The servlet
container does not encode the binary data, it sends the raw data
as it is.
PrintWriter: ServletResponse.getWriter() returns PrintWriter object which sends
character text to the client. The PrintWriter uses the character
encoding returned by getCharacterEncoding(). If the response's
character encoding has not been specified then it does default
character encoding.