1) what if i do not write response.setContentType() ? 2) what if i write response.setContentType() at the end of the doGet() method ?? As I understand , the servlet starts flushing its buffer so say i have 20k of data is servlet, 1k will be flushed when available and next and next now after browser gets 20k data i am sending content type. so how will the browser show it ?
According to the API you must always call setContentType() (if you do call it, that is) before getting a PrintWriter with getWriter(). When I did not do it, I got my HTML rendered as plain text by my browser. Calling setContentType( "text/html" ) enabled the correct rendering.
It is browser-specific what content type the browser will assume if you do not specify it. So as Barry pointerd out, it's best to be sure and set it so you get correct behavior on the client side. hth, bear