《JSP应用开发详解》学习:out.write()和out.print()

本文详细介绍了JSP中out.write()和out.print()的区别。write()方法属于Writer类,主要处理字符相关数据,若传入null会抛出异常;而print()是JSP内置对象out的方法,可以处理多种类型数据,遇到null会输出"null"字符串。通过三个实验证明了两者在处理不同类型数据时的行为差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

out.write()和out.print()都可以用于向浏览器输出内容。
out对象的类型是JspWriter。JspWriter继承了java.io.Writer类。

两个方法的区别是:
1)write()方法是Write类的方法,而print()是JSP内置类out的方法。
2)重载的print方法可将各种类型的数据转换成字符串的形式输出,而重载的write方法只能输出字符、字符数组和字符串等与字符相关的数据。
3)JspWriter类型的out对象使用print方法和write方法都可以输出字符串,但是,如果字符串对象的值为null时,print方法将输出内容为“null”的字符串,而write方法则是抛出NullPointerException异常。

验证1):
在tomcat服务器中,创建test.jsp文件,部署到tomcat安装目录的webapps\jsplearn下,代码如下:

<%@ page language="java" contentType="text/html;charset=utf-8"%>
<html>
  <body>
    <%
      out.print();
      out.write();
    %>
  </body>
</html>

启动tomcat,访问该文件,出现报错:
在这里插入图片描述
验证结果是:write()方法是Write类的方法,而print()是JSP内置类out的方法

验证2):
修改test.jsp文件如下:

<%@ page language="java" contentType="text/html;charset=utf-8"%>
<%@ page import="java.lang.*" %>
<html>
  <body>
    <%
      Integer i = new Integer(11);
      String s = "abc";
      out.print(i);
      out.println("<br>");
      out.write(i);
      out.println("<br>");
      out.print(s);
      out.println("<br>");
      out.write(s);
    %>
  </body>
</html>

访问显示:
在这里插入图片描述
显示表明,write()方法对于非字符数据不能正确显示。
验证结果是:重载的print方法可将各种类型的数据转换成字符串的形式输出,而重载的write方法只能输出字符、字符数组和字符串等与字符相关的数据。

验证3):
修改test.jsp为:

<%@ page language="java" contentType="text/html;charset=utf-8"%>
<%@ page import="java.lang.*" %>
<html>
  <body>
    <%
      String s = null;
      out.print(s);
    %>
  </body>
</html>

访问显示为:
在这里插入图片描述
修改test.jsp为:

<%@ page language="java" contentType="text/html;charset=utf-8"%>
<%@ page import="java.lang.*" %>
<html>
  <body>
    <%
      String s = null;
      out.write(s);
    %>
  </body>
</html>

出现异常:
在这里插入图片描述
验证结果是:JspWriter类型的out对象使用print方法和write方法都可以输出字符串,但是,如果字符串对象的值为null时,print方法将输出内容为“null”的字符串,而write方法则是抛出NullPointerException异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值