jsp中out对象的使用实例源码介绍。什么是jsp的out对象呢?out对象的常用方法有哪些呢?out对象
输出对象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。