JSP out.print()和out.write()区别详解

JSP中out.print()和out.write()方法都属于抽象类Writer的抽象子类JspWriter的方法;其中out.print()方法属于抽象子类JspWriter中的方法,而out.write()是父类Writer的方法.

定义

out.print(): 调用的是JspWriter类中的方法

out.writer(): 调用的是其父类Writer类中的方法

区别

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

2. 重载的print方法可将各种类型的数据转换成字符串的形式输出,而重载的write方法只能输出字符、字符数组和字符串等与字符相关的数据;

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

例子

1. 输出数字例子

<% out.print(97); %>
<hr/>
<% out.write(97); %>

输出结果:

out.print()和out.write()输出数字

out.print(97):打印出的效果是为97;而对于out.write(97):打印出来的是a。2者输出的结果不同,区别在于out.print(97)中直接将97转化为了字符串”97”,所以显示出来时97;而对于out.write(97)中是将97转换为了对应的ASCII表中的字符a。

2. 输出代码字符串

<% out.print("<font color='red'>你好,world2!</font>"); %>
<% out.write("<font color='green'>你好,world3!</font>"); %>

执行结果:

out.print()和out.write()输出字符串

总结

1. out.write()方法只能输出字符/字符数组/字符串等等字符相关类型的数据;而对于out.print()方法是属于子类JspWriter中的自己的抽象方法,它将所有数据都转换为了字符串的形式输出. 

2. 对于当两种方法输入的都为字符串时,如果值为null,对于out.print()来说会打印出null,而对于out.write()来说会直接报出空指针异常(NullPointerException异常).

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。