admin 管理员组

文章数量: 1086019


2024年3月13日发(作者:二郎腿跷多了怎么矫正)

JSP out输出对象及其他对象

除了上面介绍的这些对象之外,还存在另外以下对象,如输出对象out、页面

对象page和异常对象Exception对象。本节将对这些对象做一个简单介绍。

1.out输出对象

服务器是怎么把信息在用户浏览器显示的呢?这由out对象来完成。虽然可以

用表达式来完成输出,但是表达式最终也得转换成out对象输出。因为JSP页面中

的表达式,经求值以后的结果将转换成String对象,随后该String对象被发送到out

对象输出。

out对象的基类是JspWriter。out对象主要的方法是:print()方法和println()方法。

两者区别在于print()方法输出完毕后,并不结束当前行,而println()方法在输出完毕

后,会结束当前行。上述两种方法在JSP页面开发中经常用到,它们可以输出各种

格式的数据类型,如字符型、整型、浮点型、布尔型甚至可以是一个对象,还可以

是字符串与变量的混合型以及表达式。

out对象在前的介绍案例中已经多次用到,大家对它应该有一定的印象。它有

一些常用的方法,如表3-8所示。

表3-8 out对象的常用方法

方法

newLine()

flush()

close()

clearBuffer()

clear()

getBufferSize()

isAutoFlush()

getRemaining()

说明

输出一个换行符号

输出缓冲的数据

关闭输出流,从而可以强制终止当前页面的剩余部分向浏览器输出

清除缓冲区里的数据,并把数据写到客户端

清除缓冲区里的数据,而不把数据写到客户端

获得缓冲区的大小,缓冲区的大小可用<%@ page buffer=”Size”%>设置

返回布尔值,若是auto flush则返回true,否则返回false

获得缓冲区没有使用的空间的大小

在JSP中out对象主要用来管理响应缓冲和向客户端输出内容。下面对它们进

一步简要介绍。

(1)管理响应缓冲

在JSP页面中使用()方法清除缓冲区的数据时,类似于重置响应操作将

会从新开始。如果响应已经提交,这会有产生IOException异常;相反,另外一种

方法clearBuffer清除缓冲区的数据,即使内容已经提交,也可以使用该方法。此外,

用户在使用过程中还可以用getRemaining方法获得缓冲区的当前状态。例如,下面

是两行简单的代码:

("

欢迎访问:

");

("

IT在中国

");

上述两行代码的效果是在客户端的浏览器上输出两行文本。但是,程序实际在

处理时是先将两行文本存放在缓冲区中,并非直接输出。这样就不用每次执行out.

print()语句向客户端进行响应,所以加快了处理的速度。而实际的输出操作是等到J

SP容器解析完整个程序后才把缓冲区的数据输出到客户端浏览器上。下面,我们在

上述程序的后面添加一行程序,如下所示:

uffer();

上述新增的uffer()语句是用来清空缓冲区中的数据。所以输出到客户

端浏览器上的将是空白。下面,将上述这个程序进行修改,具体如下所示:

uffer();

("

欢迎访问:

");

("

IT在中国

");

执行上述程序,uffer()将会清除执行至该行程序之前缓冲区中的数据,

而接下来的()语句将两行文本送到缓冲区中,最后显示在浏览器上。

response对象的flush()方法与clearBuffer()方法一样会清除缓冲区中的数据。不

同的是,flush()方法会在清除之前先将缓冲区中的数据输出至客户端。

(2)向客户端输出内容

在使用Out对象时,会自动转换为riter对象,我们实际上使用的

是PrintWriter对象,它是属于ter类实例。

为了区分response对象,JspWriter对象提供了几个将内容写入响应缓冲区的方

法。由于JspWriter从派生而来,提供了一系列的写方法。

因此,JspWriter本身也提供了一系列的print方法。对于每一个print方法,都有一

个等效的println方法,在请求的数据显示到响应操作之后,该方法还会插入一个分

行符。

2.exception异常对象

JSP页面在运行的时候,不可避免会发送运行时错误,如求取两个数相除的结

果,第二个数不小心的输入为零,这样的例子很多。当JSP页面在执行过程中发生

意外或错误时,会自动产生exception对象。exception对象是JSP的内置对象,可

以直接使用该对象来查找页面出错信息。exception对象是ion类的

一个实例。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则

无法编译。

exception对象常用方法如表3-9所示:

表3-9 exception对象常用方法

方法

String getMessage()

String toString()

void printStackTrace()

说明

返回描述异常的消息

返回关于异常的简短描述消息

显示异常及其栈轨迹

Throwable FillInStackTrace() 重写异常的执行栈轨迹

3.page页面对象和config配置对象

page和config是与Servlet有关的内置对象,page表示Servlet本身,而config

对象则是存放Servlet的初始参数值。page对象代表JSP页面本身被编译生成的Ser

vlet,所以它可以调用被Servlet类所定义的方法。它的类型是,拥

有page范围。page对象很少在JSP页面中使用。

page对象常用方法如表3-10所示:

表3-10 page常用方法

方法

class getClass

int hashCode()

boolean equals(Object obj)

void copy(Object obj)

Object clone()

String toString()

void notify()

void notifyAll()

void wait(int timeout)

void wait()

说明

返回此Object的类

返回此Object的hash码

判断此Object是否与指定的Object对象相等

把此Object拷贝到指定的Object对象中

克隆此Object对象

把此Object对象转换成String类的对象

唤醒一个等待的线程

唤醒所有等待的线程

使一个线程处于等待直到timeout结束或被唤醒

使一个线程处于等待直到被唤醒

config对象是用来在一个Servlet初始化时,JSP引擎向它传递信息,此信息包

括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关

信息(通过传递一个ServletContext对象)。config对象被用于实现

vletConfig接口,拥有page范围。

config对象常用方法如表3-11所示:

表3-11 config常用方法

方法

ServletContext getServletContext()

String getInitParameter(String name)

Enumeration getInitParameterNames()

说明

返回含有服务器相关信息的ServletContext对象

返回初始化参数的值

返回Servlet初始化所需所有参数的枚举


本文标签: 对象 输出 缓冲区 页面 方法