(1) out和response.getWriter属于的类不同,前者是JspWriter,后者是java.io.PrintWriter。而JspWriter是一个抽象类, PrintWriter是一个继承了Writer的普通类。
(2) out对象实际上对PrintWriter是有依赖的, 他需要先将需要输出的内容存到response的缓冲区里面, 然后等待jsp页面中的out满足一定条件之后, 才会调用输出的方法把内容直接输出到页面上。也就是说,JspWriter相当于一个带缓存功能的printWriter,它不是直接将数据输出到页面,而是将数据刷新到response的缓冲区后再输出。, 也就是说,getWriter()方法的执行结果, 总是优先于out对象。
(3)out.print(null);会抛出异常,PrintWriter.print(null)不会抛出异常。