JAVA中printwriter和out_response.getWriter().write()与out.print()的区别

1、首先介绍write()和print()方法的区别:

(1)、write():仅支持输出字符类型数据,字符、字符数组、字符串等

(2)、print():可以将各种类型(包括Object)的数据通过默认编码转换成bytes字节形式,这些字节都通过write(int c)方法被输出

2、介绍response.getWriter()和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()响应信息通过out对象输出到网页上,当响应结束时它自动被关闭,与jsp页面无关,无需刷新页面

形象的比喻:当我们调用response.getWriter()这个对象同时获得了网页的画笔,这时你就可以通过这个画笔在网页上画任何你想要显示的东西。

(4)、out的print()方法和println()方法在缓冲区溢出并且没有自动刷新时候会产生ioexception,

而response.getWrite()方法的print和println中都是抑制ioexception异常的,不会有ioexception

out.println(""); 方法并不能在页面布局换行,只能领html代码换行,要实现页面布局换行可以:out.println("");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 JSP ,没有 `response.setResponseBody()` 方法,可能是因为 JSP 的本质是一个 Servlet,而 Servlet 规范并没有 `setResponseBody()` 方法。不过,你可以使用 `javax.servlet.ServletOutputStream` 或 `java.io.PrintWriter` 等类向 HTTP 响应写入内容。 例如,你可以使用 `javax.servlet.ServletOutputStream` 类的 `write()` 方法将字节写入 HTTP 响应,如下所示: ```jsp <% response.setContentType("text/plain"); // 设置响应内容类型为纯文本 ServletOutputStream out = response.getOutputStream(); out.write("Hello, world!".getBytes()); // 向响应写入内容 out.flush(); out.close(); %> ``` 在这个例子,我们首先使用 `response.setContentType("text/plain")` 方法设置响应内容类型为纯文本。然后,我们通过 `response.getOutputStream()` 方法获取 ServletOutputStream 对象,使用 `write()` 方法将字符串 "Hello, world!" 写入 HTTP 响应,最后使用 `flush()` 和 `close()` 方法关闭输出流。 你也可以使用 `java.io.PrintWriter` 类的 `print()` 或 `println()` 方法向 HTTP 响应写入文本,如下所示: ```jsp <% response.setContentType("text/html"); // 设置响应内容类型为 HTML PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title>Hello, world!</title></head>"); out.println("<body>"); out.println("<h1>Hello, world!</h1>"); out.println("</body>"); out.println("</html>"); out.flush(); out.close(); %> ``` 在这个例子,我们首先使用 `response.setContentType("text/html")` 方法设置响应内容类型为 HTML。然后,我们通过 `response.getWriter()` 方法获取 PrintWriter 对象,使用 `println()` 方法向 HTTP 响应写入 HTML 代码,最后使用 `flush()` 和 `close()` 方法关闭输出流。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值