JSP九大内置对象之out对象

out对象用于输出数据到页面,它是javax.servlet.jsp.JspWriter的一个实例。out对象的范围是page(即当前页面)。从java.io.Writer拓展而来的公共抽象类JspWriter效仿了java.io.BufferedWriter和java.Io.PrintWriter中的某些功能。但是,不同之处在于它会在打印方法中抛出(throw)java.Io.IOException异常,而PrintWriter不这样做。

out对象用于输出数据到页面,它是javax.servlet.jsp.JspWriter的一个实例。out对象的范围是page(即当前页面)。

从java.io.Writer拓展而来的公共抽象类JspWriter效仿了java.io.BufferedWriter和java.Io.PrintWriter中的某些功能。但是,不同之处在于它会在打印方法中抛出(throw)java.Io.IOException异常,而PrintWriter不这样做。

JSP中的out对象就是这种类型的。如果page指令选择了autoflush="true",那么当出现由于当前的操作不清空缓存而造成缓冲区溢出的情况时,这个类的所有I/O操作会自动清空缓冲区的内容。如果autoflush="false",那么当操作造成了缓冲区溢出时,这个类的所有的I/O操作将抛出一个IOException。

out对象的主要方法如下

// 清除输出缓冲区的内容,但是不输出到客户端
void clear()

// 清除输出缓冲区的内容,并输出到客户端
void clearBuffer()

// 关闭输出流,清除所有内容
void close()

// 输出缓冲区里面的数据
void flush()

// 获取以kb为单位的目前缓冲区大小
int getBufferSize()

// 获取以kb为单位的缓冲区中未被占用的空间大小
int getRemaining()

// 是否自动刷新缓冲区
boolean isAutoFlush()

// 输出一个换行字符
void newLine()

// 将指定类型的数据输出到Http流,不换行
void print(boolean b)
void print(char c)
void print(char[] s)
void print(double d)
void print(float f)
void print(int i)
void print(long l)
void print(Object obj)
void print(String s)

// 将指定类型的数据输出到Http流,并输出一个换行符
void println(boolean b)
void println(char c)
void println(char[] s)
void println(double d)
void println(float f)
void println(int i)
void println(long l)
void println(Object obj)
void println(String s)

// 将一个字符或者实现了CharSequence接口的对象添加到输出流的后面
Appendable append(char c)
Appendable append(CharSequence cxq, int start, int end)
Appendable append(CharSequence cxq)

out对象的成员变量

// 缺省缓冲区大小
int DEFAULT_BUFFER = 0;

// writer是否处于缓冲输出状态
int NO_BUFFER = -1;

// 是否限制缓冲区大小
int UNBOUNDED_BUFFER = -2;

【例子】输出out对象中的缓冲区大小等信息

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<html>
  <head>
    <title>My JSP 'OutDemo.jsp' starting page</title>
  </head>
  <body>
   <%
     int all=out.getBufferSize(); // 获得缓冲区大小
     int remain=out.getRemaining(); // 获得剩余缓冲区大小
     int use=all-remain; // 使用的缓冲区大小
     out.println("使用的缓冲区大小" + use);
   %>
  </body>
</html>

输出结果:

使用的缓冲区大小128

学习从来无捷径,循序渐进登高峰。 —— 高永祚
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号