jsp中out对象的使用实例源码介绍



jsp中out对象的使用实例源码介绍。什么是jsp的out对象呢?out对象的常用方法有哪些呢?out对象 是指在jsp页面的上下文输出流。该对象的类或接口的名称是  jsp.JspWriter,该对象可写为:Javax.servlet.jsp.JspWriter。

输出对象out的方法:

说明:out对象被封装为javax.servlet.jsp.jspWriter接口,通过调用pageContext.getOut()方法可以获取out对象。

public abstract void clear()
清除缓冲区中的内容,不将数据发送至客户端。

public abstract void clearBuffer()
将数据发送至客户端后,清除缓冲区中的内容。

public abstarct void close()
关闭输出流。

public abstract void flush()
输出缓冲区中的数据。

public int getBufferSize()
获取缓冲区的大小。缓冲区的大小可用<%@ page buffer=”size” %>设置。

public abstract int getRemainning()
获取缓冲区剩余空间的大小

public boolean isAutoFlush()
获取用<%@ page is AutoFlush=”true/false”%>设置的AutoFlush值。


public abstract void newLine()
输出一个换行字符,换一行。

public abstract void print()
显示各种数据类型的内容。

public abstract void println()
分行显示各种数据类型的内容。 
jsp out对象方法使用举例说明:

out.close()方法的使用
close()方法:用于关闭输出流,一旦输出流被关闭了,就不能再使用out对象进行任何操作。

一般来说,不要在JSP页面中,直接调用out对象的close()方法,将会抛出异常。

测试代码: TestOut01.jsp
<%@ page contentType=”text/html; charset=gb2312″%> <html>  <body>   <%
out.println(“长沙民政学院<br>”);    out.println(“软件学院<br>”);
out.close();  //关闭输出流       %>  </body> </html>

测试结果:
访问该JSP页面,抛出IOException,见该JSP页面转换后的Java文件,可以看到在调用close()方法后,继续使用了out对象,所以会抛出异常。

对缓冲区的操作 
测试代码:     TestOut02.jsp
一般来说,服务器把发送给客户端的数据先放到一个缓冲区里,缓存起来,缓冲区的默认设置大小为8KB,默认为当缓冲区存满后,将自动发送,即autoFlush属性默认为true。
clear()方法和clearBuffer()方法的区别:
<%@ page contentType=”text/html;charset=GBK”%> <html>  <body>   <%
for (int i = 0; i < 5; i++) {
out.println(“<h2>Hello World!</h2>”);         }
out.println(“<p>缓冲区的大小:” + out.getBufferSize()); //获得缓冲区的大小,缓冲区的大小可以用<%@page buffer=”size”%\>设置
out.println(“<p>缓冲区剩余空间的大小:” + out.getRemaining()); //获得缓冲区里没有使用的空间大小
//out.flush();
out.clear(); //清除缓冲区里的内容
//out.clearBuffer();   %>  </body>
</html>

如果缓冲区里的内容已经被输出,即已经调用了flush()方法,再去调用clear()方法,来清除缓冲区里的内容,则会抛出IOException。

如果缓冲区里的内容已经被输出,即已经调用了flush()方法,再去调用clearBuffer()方法,来清除缓冲区里的内容,则不会抛出IOException。