学科分类
目录
Java Web

out对象

在JSP页面中,经常需要向客户端发送文本内容,这时,可以使用out对象来实现。out对象是javax.servlet.jsp.JspWriter类的实例对象,它的作用与ServletResponse.getWriter()方法返回的PrintWriter对象非常相似,都是用来向客户端发送文本形式的实体内容。不同的是,out对象的类型为JspWriter,它相当于一种带缓存功能的PrintWriter。接下来,通过一张图来描述JSP页面的out对象与Servlet引擎提供的缓冲区之间的工作关系,具体如图1所示。

图1 out对象与Servlet引擎的关系

从图1可以看出,在JSP页面中,通过out隐式对象写入数据相当于将数据插入到JspWriter对象的缓冲区中,只有调用了ServletResponse.getWriter()方法,缓冲区中的数据才能真正写入到Servlet引擎所提供的缓冲区中。

为了验证上述说法是否正确,接下来,通过一个具体的案例来演示,如例1所示。

例1 out.jsp

 1    <%@ page language="java" contentType="text/html; charset=UTF-8"%>
 2    <html>
 3    <head>
 4    <title>Insert title here</title>
 5    </head>
 6    <body>
 7    <%
 8       out.println("first line<br>");
 9       response.getWriter().println("second line<br>");
 10    %>    
 11    </body>
 12    </html>

启动tomcat服务器,在浏览器中访问http://localhost:8080/chapter07/out.jsp,浏览器的显示界面如图2所示。

img

图2 运行结果

从图2中可以看出,尽管out.println语句位于response.getWriter().println语句之前,但它的输出内容却在后面。由此可以说明,out对象通过print语句写入数据后,直到整个JSP页面结束,out对象中输入缓冲区的数据(即:first line)才真正写入到Serlvet引擎提供的缓冲区中,而response.getWriter().println语句则是直接把内容(即:second line)写入Servlet引擎提供的缓冲区中,Servlet引擎按照缓冲区中的数据存放顺序输出内容。

点击此处
隐藏目录