JSP中 何时用out.write() 何时用out.print()以及他们的区别

JSP中 何时用out.write() 何时用out.print()以及他们的区别

PrintWriter out = response.getWriter();

JSP的out.print()等价于 servlet的resp.getWriter().print();

JSP的out.write()等价于 servlet的resp.getWriter().write();

 

out.write()是字节输出流的方法 out.print()是字符输出流的方法

 

//out.print(obj)其源码如下:
   
public void print(Object obj) {
   write(String.valueOf(obj));
}
?
public void print(String s) {
   if (s == null) {
       s = "null";
  }
   write(s);
}
?
// out.write(String)源码如下:
public void write(int c){
  ...
   writeBuffer[0] = (char) c;
  ...
}
//注: 1. 当整型数据转换为字符时, 其中1-32是一些特殊符号, 不会显示出来. 2. 如果传入null值, 会报错
?

可见:print做了空处理,而write打印空字符串系统将会抛出空指针异常,所以尽量使用print方式。

 

  1. print方法是Writer子类中的方法,write是Writer类中定义的方法;

  2. 重载的print方法可将各种类型的数据转换成字符串的形式输出,而重载的write方法只能输出字符、字符数组和字符串等与字符相关的数据; 因此如果参数是数字 print会正常打印字符串,而write会打印字符对应ascii码

  3. Writer类型的out对象使用print方法和write方法都可以输出字符串,但是,如果字符串对象的值为null时,print方法将输出内容为“null”的字符串,而write方法则是抛出NullPointerException异常。

JSP中 何时用out.write() 何时用out.print()以及他们的区别

上一篇:php自定义分页


下一篇:实现前端调度器nginx收到请求,调度到后端Apache、实现动静分离