reponse对象
1 重定向网页
使用response对象提供的sendRedirect()方法可以将网页重定向到另一个页面。重定向操作支持将地址重定向到不同的主机上,这一点与转发不同。在客户端浏览器上将会得到跳转的地址,并重新发送请求链接。用户可以从浏览器的地址栏中看到跳转后的地址。进行重定向操作后,request中的属性全部失效,并且开始一个新的request对象。sendRedirect()方法的语法格式如下:
response.sendRedirect(String path);
参数说明:
- path:用于指定目标路径,可以是相对路径,也可以是不同主机的其他URL地址。
示例:使用response对象提供的sendRedirect()方法重定向到登录页面。
<% response.sendRedirect("login.jsp"); //重定向到登录页面 %>
2 处理HTTP文件头
通过response对象可以设置HTTP响应报头,其中,最常用的是禁用缓存、设置页面自动刷新和定时跳转网页。下面分别进行介绍。
设置HTTP响应报头方法的语法格式如下:
response.setHeader(String name, String value);
2.1 禁用缓存
在默认情况下,浏览器将会对显示的网页内容进行缓存,这样可以提高网页的显示速度。对于一些安全性要求比较高的网站,通常需要禁用缓存。
示例:通过设置HTTP头的方式实现禁用缓存。
<% response.setHeader("Cache-Control", "no-store"); response.setDateHeader("Expires", 0); %>
2.2 设置页面自动刷新
通过设置HTTP头还可以实现页面的自动刷新。
示例:使页面每隔10秒自动刷新一次。
<% response.setHeader("refresh", "10"); %>
.2.3 定时跳转网页
通过设置HTTP头还可以实现定时跳转页面功能。
示例:使页面5秒后自动跳转到指定的网页。
<% response.setHeader("refresh", "5;URL=login.jsp"); %>
3 设置输出缓冲
通常情况下,服务器要输出到客户端的内容不会直接写到客户端,而是先写到一个输出缓冲区,在计算机术语中,缓冲区被定义为暂时放置输入或输出资料的内存。实际上,缓冲区也可以这样理解:在一个粮库中,由于装缷车队的速度要快于传送带的传输速度,为了不造成装缷车队的浪费,粮库设计了一个站台,装缷车队可以先将运送的粮食缷到这个平台上,然后让传送机慢慢传送。粮库的这个站台就起到了缓冲的作用。
response对象提供的对缓冲区进行配置的方法:
方法 | 说明 |
---|---|
flushBuffer() | 强制将缓冲区的内容输出到客户端。 |
getBufferSize() | 获取响应所使用的缓冲区的实际大小,如果没有使用缓冲区,则返回0。 |
setBufferSize(int size) | 设置缓冲区大小。 |
reset() | 清除缓冲区的内容,同时清除状态码和报头。 |
isCommitted() | 检查服务器端是否已经把数据写入到可客户端。 |
说明:如果将缓冲区的大小设置为0KB,则表示不缓冲。