在JAVA语言中System.out.println("abc")就可以输出abc.在JSP中<%out.print("abc");%>也可以输出abc,但为什么<%out.println("abc");%>输出的效果是一样的也,也不换行什么的,更郁闷的是<%System.out.println("abc");%>不会报错,也没有输出,把Sydyem改成system就要出错了,困惑呀,JSP中的OUT对象和JAVA语言中的out难道是不一样的,各位大虾请为我解惑,谢谢!!!

解决方案 »

  1.   

    在JAVA语言中System.out.println("abc")就可以输出abc.在JSP中<%out.print("abc");%>也可以输出abc,但为什么<%out.println("abc");%>输出的效果是一样的也,也不换行什么的,更郁闷的是<%System.out.println("abc");%>不会报错,也没有输出,把Sydyem改成system就要出错了,困惑呀,JSP中的OUT对象和JAVA语言中的out难道是不一样的,各位大虾请为我解惑,谢谢!!!System.out 是输出到控制台,如果你用控制台方式启动 Tomcat (或其它服务器)的话,你就可以按到输出。但这不是输出的网页上的。JSP上的 out 是输出到网页的,所以你能在网页上看到结果。而且,用 println() 输出是换了行的——只不过,你看不到效果。因为网页(HTML)里,是用 <br> 来换行,而 println() 输出的换行符,仅仅是在网页的源代码中换行,是不会体现在页面显示效果上的(其实也有体现,通常是表示为一个空格)。你查看源代码的时候就可以看出来了。如果不明显,你可以试试这样几个语句(查看源码哦):
    <%
    out.print("AAAAAAAAAAA");
    out.print("BBBBBBBBBBB");
    out.println("CCCCCCCCCCC");
    out.println("DDDDDDDDDDD");
    %>源码中应该显示为
    AAAAAAABBBBBBBBCCCCCCCC     这里有一换行
    DDDDDDD                     这里有一换行
    .....在显示效果中显示的应该是 AAAAAAAAABBBBBBBBBBCCCCCCCCCCCC DDDDDDDDDDD
      

  2.   

    <%System.out.println("abc");%>这个是输出到日志文件中去了,
      

  3.   

    System.out jsp中的out 都是PrintWriter 但输出位置不一样。
    System.out输出的是jvm的控制台,
    jsp中的out输出的是内存中的一个流对象,再由jsp容器发送到远程请求的程序中(IE)。jsp中的out输出是有换行的。但浏览器会根据HTML规范进行显示。HTML规范是忽略换行和空格的。 不过你在查看源文件时会发现源文件是换行的。