Java 理解servlet中的out.println

Java 理解servlet中的out.println,java,servlets,console,println,Java,Servlets,Console,Println,在servlet中,out.println如何将html文本写入容器的响应对象,而通常在System.out.println中,它将文本写入控制台 这在概念上给我带来了一个问题。它使用来自Javadoc的 提供用于向客户端发送二进制数据的输出流。ServletOutputStream对象通常通过方法检索 如果你看一下,你会发现它是一个不同的实现。它使用来自Javadoc的 提供用于向客户端发送二进制数据的输出流。ServletOutputStream对象通常通过方法检索 如果你看一下,你会发现它

在servlet中,out.println如何将html文本写入容器的响应对象,而通常在System.out.println中,它将文本写入控制台

这在概念上给我带来了一个问题。

它使用来自Javadoc的

提供用于向客户端发送二进制数据的输出流。ServletOutputStream对象通常通过方法检索

如果你看一下,你会发现它是一个不同的实现。

它使用来自Javadoc的

提供用于向客户端发送二进制数据的输出流。ServletOutputStream对象通常通过方法检索


如果你看一下,你会发现它是一个不同的实现。

如果servlet中的某个地方调用了out.println。。。写入响应对象,则out必须是对响应对象的OutputStream的引用,或者是一个包装器流和它。如果System.out像往常一样将输出发送到其他地方,则它是对不同输出流的引用


servlet方法或任何其他方法的名为out的局部变量与System.out完全无关,除非您将其中一个初始化为对另一个的引用。

如果servlet中的某个地方调用了out.println。。。写入响应对象,则out必须是对响应对象的OutputStream的引用,或者是一个包装器流和它。如果System.out像往常一样将输出发送到其他地方,则它是对不同输出流的引用

servlet方法或任何其他方法的名为out的局部变量与System.out完全无关,除非您将其中一个初始化为对另一个的引用。

控制台中未指定PrintStream或PrintWriter

PrintStream为另一个输出流添加了功能,即能够方便地打印各种数据值的表示

将对象的格式化表示形式打印到文本输出流

它们都是关于格式化数据和将格式化数据传递到输出流的。任何输出流。默认情况下,在某些环境中,System.out和System.err中的每一个最初引用的PrintStream对象都会将其数据发送到某种控制台,但这只是这些特定实例

甚至这些都可以改变。例如,在某些类型的测试中,将System.out替换为将其数据发送到ByteArrayOutputStream的PrintStream非常有用。

控制台中既没有指定PrintStream也没有指定PrintWriter

PrintStream为另一个输出流添加了功能,即能够方便地打印各种数据值的表示

将对象的格式化表示形式打印到文本输出流

它们都是关于格式化数据和将格式化数据传递到输出流的。任何输出流。默认情况下,在某些环境中,System.out和System.err中的每一个最初引用的PrintStream对象都会将其数据发送到某种控制台,但这只是这些特定实例


甚至这些都可以改变。例如,在某些类型的测试中,将System.out替换为将其数据发送到ByteArrayOutputStream的PrintStream可能很有用。

out-in-servlets引用了PrintWriter类,PrintWriter或PrintStream的println通常写入控制台,对吗?servlets中没有通用out。如果unqualified out在某个servlet的某个方法中是有意义的,那么它可能是局部变量,尽管它也可能是特定servlet实现类的实例或类变量。这样一个变量引用它最后一次被设置为引用的任何对象(如果有的话)。在我的servlet中,它可能被初始化为引用当前ServletResponse对象的输出流。out-In-servlets引用了PrintWriter类,PrintWriter或PrintStream的println通常写入控制台,对不对?servlets中没有通用out-In。如果unqualified out在某个servlet的某个方法中是有意义的,那么它可能是局部变量,尽管它也可能是特定servlet实现类的实例或类变量。这样一个变量引用它最后一次被设置为引用的任何对象(如果有的话)。在我的一个servlet中,它可能会被初始化为引用当前ServletResponse对象的输出流。servlets中的out不是对PrintWriter类的引用吗?我们通过servlets代码中的PrintWriter out=response.getwriter声明获得它?@awhitesong它完全取决于PrintWriter打印到的底层OutputStream。对于Servlet,它打印到我在回答中链接到的OutputStream。另外,System.out不是PrintWriter。在servlet中,System.out不是对PrintWriter类的引用,我们通过PrintWriter out=response.getwriter de获得它
servlets代码中的声明?@awhitesong它完全取决于PrintWriter打印到的底层输出流。对于Servlet,它打印到我在回答中链接到的OutputStream。此外,System.out不是PrintWriter。因此,如果System.out要像servlets中的ServletOutputStream一样打印到控制台,printstream会将格式化数据转发到哪个outputstream类?@awhitesong每个printstream都会作为构造函数参数被告知其输出流。请参阅我上面引用的文档。因此,在system.out的情况下,printstream将格式化数据转发到哪个outputstream类,以便像在servlets中打印ServletOutputStream一样打印到控制台?@awhitesong每个printstream都会作为构造函数参数被告知其输出流。请参阅我上面提到的文档。