这是一个JSP页面:

  1. <%@ page language="java" import="java.util.*"  %>
  2. <%@ page pageEncoding="UTF-8" isELIgnored="false" %>
  3. <%@ page import="java.util.Date" %>
  4. <html>
  5. <head>
  6. <title>  </title>
  7. </head>
  8. <body>
  9. <h1>现在时间:</h1>
  10. <%=new Date() %>
  11. </body>
  12. </html>

转译后生成的servlet,对应的body中,有以下代码:

  1. out.write("<h1>现在时间:</h1>\n");
  2. out.print( new Date());

思考: 
<%=  %>表达式代表的是什么? 为什么 new Date()后,没有 “;”(分号)? 
servlet中,out.write() 和 out.print() 有何区别?

解答: 
There is a method print(Object). There is no method write(Object) 
write(String) exists however. 
serch the javaAPI you will find 
------------------------------------------ 
(java中)有这个方法:print(Object),没有这个方法:write(Object) 
但是却有这个方法:write(String) 
查找javaAPI,你便会发现。

总结: 
out.print()方法,可以输出一个java对象; 
out.write()方法,只能输入一个字符串。

参考资料: 
jsp中的out对象是JspWriter类型的.而JspWriter继承了java.io.Writer .

out对象的write方法是在在父类Writer中定义的,print方法是在子类JspWriter中定义的. 
重载的print方法可以将各种类型的数据转换成字符串的形式输出. 
而重载的write方法只能输出字符/字符数组/字符串等与字符相关的数据.

而且如果使用这两种方法输出值为null的字符串对象, 
那么print方法输出的结果是"null", 
而write方法则会抛出NullPoiterException异常.

out.print和out.write的更多相关文章

  1. Pramp mock interview (4th practice): Matrix Spiral Print

    March 16, 2016 Problem statement:Given a 2D array (matrix) named M, print all items of M in a spiral ...

  2. 我的第一个python程序--给2.x的print代码加上括号

    最近想学习一门脚本语言,综合考虑,选择了python. 花了几天时间看完了 简明 Python 教程 ,想着应该写点什么东西才好,刚好我使用的是3.x版本,以前好多2.x的代码都直接报错,尤其是pri ...

  3. python的print函数的格式化输出

    使用print函数的时候,可以像C一样格式化输出,同时还支持参数化输出 print('%s' % ("CooMark")) print('整数|%d|' % (123)) prin ...

  4. 遭遇Web print

    一直都知道Web打印还不太成熟,以前IE横行时,普遍都是采用打印相关的ActiveX控件,有些国产厂家做得不错,只是那时还没有付费能力,没有太多关注.而纯粹基于Web标准的打印,浏览器对CSS pri ...

  5. python下print结果到文件中的方法

    目的是将print的结果输出到一个文件中,比如这个文件在D:\lianxi\out.txt下,我用的windows: s = '1234' f = open (r'D:\lianxi\out.txt' ...

  6. ns3 print 丢包内容的两种方法

    1.方法一enable ascii print AsciiTraceHelper ascii; pointToPoint.EnableAsciiAll (ascii.CreateFileStream ...

  7. Python中print函数输出时的左右对齐问题

    为了将print函数输出的内容对齐,笔者在http://www.jb51.net/article/55768.htm中找到了左右对齐的方法.整理如下: 一.数值类型(int.float) #  %d. ...

  8. python print及格式化

    print(value,sep=' ',end='\n',file=sys.stdout, flush=False) sep=' '默认空格 print('hello','world') #hello ...

  9. 51. 顺时针打印矩阵[print matrix in clockwise direction]

    [本文链接] http://www.cnblogs.com/hellogiser/p/print-matrix-in-clockwise-direction.html [题目] 输入一个矩阵,按照从外 ...

  10. window.print() 打印页面部分内容的方法

    用 JavaScript 实现页面数据的打印 : 主要是用到了一个 print() 函数 , 该函数将会打印整个 web 页面 body 内的所有 html 数据 ! 使用方法为 window.pri ...

随机推荐

  1. 用Hexo免费搭建你自己的博客

    Hexo基于node.js,可用于生成静态博客,结合github和Mac,可以专注创作了. 深入学习见文末引用. hexo安装 brew install node npm install hexo-c ...

  2. fgetc, fgets, getc, getchar, gets, ungetc - 输入字符和字符串

    总览 (SYNOPSIS) #include <stdio.h> int fgetc(FILE *stream); char *fgets(char *s, int size, FILE ...

  3. 快学UiAutomator创建第一个实例

    工具准备 一.准备好java环境(JDK)和安卓环境(SDK.ADT)jdk1.6+ \eclipse\SDK \ADT详情百度,安装java环境 二.打开eclipse 三.创建步骤: 右键新建== ...

  4. vc生产垃圾清理

    @echo off echo 清除所有obj pch idb pdb ncb opt plg res sbr ilk suo文件,请稍等...... pause del /f /s /q .\*.ob ...

  5. 线程调度的问题:Lock Convoy(锁封护)与Priority Inversion(优先级反转)

    Lock Convoy(锁封护) [1]Lock Convoy是在多线程并发环境下由于锁的使用而引起的性能退化问题.当多个相同优先级的线程频繁地争抢同一个锁时可能会引起lock convoy问题,一般 ...

  6. 什么是无符号段整数,什么又是有符号数,(c++与java语言里边的不同)

    c++中:整型数分为有符号数和无符号数两种 unsigned int a;无符号整型变量a,意思是这个数最小值为0,最大值为2的32次方-1,因为一个整型数占四个字节,一个字节8位,共32位 int ...

  7. java数字金额转化为中文金额

    public static String digitUppercase(double n){String fraction[] = {"角", "分"};Str ...

  8. 基于Passthru的NDIS开发的个人理解

    这几天对NDIS的学习,基本思路是:首先熟悉理论知识→然后下载一个例子进行研究→最后例子自己模仿扩展→最最后尝试自己写一个新的. Passthru是微软NDIS自己写的一个框架驱动,NDIS开发者可以 ...

  9. 用vue 简单写的日历

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. 关于HTML设置访问密码。

    如果你要设置访问密码恐怕要使用sublime_text了 废话不多,开始!!! 先把这些东西加上: <html> <script> 然后开始写代码: 先辨别密码登录正确的情况: ...