response.getWriter().write()与 response.getWriter().print()、以及PritWriter对象和out对象的区别

原创
2020/02/21 13:18
阅读数 968

一、response.getWriter().write()和 response.getWriter().print()的区别

response.getWriter()返回的是PrintWriter,这是一个打印输出流。

response.getWriter().write()和 response.getWriter().print()是响应给客户端的东西,如果不用ajax接收将数据放在合适的位置,就会在浏览器上生成一个新的页面来显示内容。

print
response.getWriter().print(),不仅可以打印输出文本格式的(包括html标签),还可以将一个对象以默认的编码方式转换为二进制字节输出

write
response.getWriter().write() ,只能打印输出文本格式的(包括html标签),不可以打印对象。

二、response.getWriter()获得的PrintWriter对象和out对象的区别

(1) out和response.getWriter的类不一样,一个是JspWriter,另一个是java.io.PrintWriter。

(2) 执行原理不同:

JspWriter相当于一个带缓存功能的printWriter,它不是直接将数据输出到页面,而是将数据刷新到response的缓冲区后再输出response.getWriter直接输出数据(response.print()),所以(out.print)只能在其后输出。

(3) out为jsp的内置对象,刷新jsp页面,自动初始化获得out对象,所以使用out对象是需要刷新页面的,而response.getWriter()响应信息直接输出到网页上,当响应结束时它自动被关闭,与jsp页面无关,无需刷新页面
形象的比喻:当我们调用response.getWriter()这个对象同时获得了网页的画笔,这时你就可以通过这个画笔在网页上画任何你想要显示的东西。

 (4) out的print()方法和println()方法在缓冲区溢出并且没有自动刷新时候会产生ioexception, 而response.getWrite()方法的print和println中都是抑制ioexception异常的,不会有ioexception ,out.println(""); 方法并不能也页面布局换行,只能领html代码换行,要实现页面布局换行可以:out.println("</br>");
 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部