Response.getWriter().write() 与 JSP 中 out.print() 有什么区别?


1. 问题

  • Response.getWriter().write() 与 JSP 中 out.print() 有什么区别?

2. 解答

1. write() 和 print() 方法的区别

  • write():仅支持输出字符类型数据,如:字符、字符数组、字符串等。
  • print()/println():可以将各种类型(包括 Object)的数据通过默认编码转换成 bytes 字节形式,这些字节都通过 write(int c) 方法被输出。

2. Response.getWriter() 和 JSP 中 out 的区别

  • Response.getWriter 和 JSP 中 out 的类不一样:
    • Response.getWriter 是 java.io.PrintWriter,PrintWriter 是一个继承了 Writer 的普通类;
    • out 是 JspWriter,JspWriter 是一个抽象类。
  • 执行原理不同:JspWriter 相当于一个带缓存功能的 PrintWriter,它不是直接将数据输出到页面,而是将数据刷新到 Response 的缓冲区后再输出。也就是说,out 对象实际上是对 PrintWriter 有依赖的,他需要先将要输出的内容存到 Response 的缓冲区里面, 然后等待 JSP 页面中的 out 满足一定条件之后,才会调用输出的方法把内容直接输出到页面上。换句话说,getWriter() 方法的执行结果,总是优先于 out 对象。
    • Response.getWriter.print 直接输出数据
    • out.print 只能在其后输出
  • out 为 JSP 的内置对象,刷新 JSP 页面,自动初始化获得 out 对象,所以使用 out 对象是需要刷新页面的;而 Response.getWriter() 响应信息通过 out 对象输出到网页上,当响应结束时它自动被关闭,与 JSP 页面无关,无需刷新页面。
  • out 的 print() 方法和 println() 方法在缓冲区溢出并且没有自动刷新时候会产生 IOException;而 Response.getWrite() 方法的 print 和 println 中都是抑制 IOException 异常的,因此不会有 IOException。

3. Response.getWriter().write() 与 JSP 中 out.print() 的其他区别

  • out.println(); 方法也不能直接页面布局换行,只能用 HTML 代码换行,例如:out.println("</br>");

原文链接:https://qwert.blog.csdn.net/article/details/105608123

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值