response用于响应客户请求,向客户端输出信息
重定向网页
使用response对象提供的sendRedirect()方法可以将网页重定向到另一个网页。进行重定向操作后,response中的属性全部失效,并且开始一个新的request对象
语法如下:
response.sendRedirect(String path);
- pah:用于指定目标路径,可以是相对路径,也可以是不同主机的其他URL地址
注:在JSP页面中使用该方法时,不要再用JSP脚本代码,因为重定向之后的代码已经没有任何意义了,而且还可能产生错误
处理HTTP文件头
通过response对象可以设置HTTP响应报头,其中包括:禁用缓存,设置页面自动刷新和定时跳转网页
1. 禁用网页
默认情况下,浏览器会对显示的网页内容进行缓存。但对于一些安全性要求较高的网站,通常需要禁用缓存
代码如下:
response.setHeader("Cache-Control", "no-store");
response.setDateHeader("Expires", 0);
2. 设置页面自动刷新
设置HTTP头还可以实现页面的自动刷新
response.setHeader("refresh", 10); // 网页每10秒自动刷新一次
3. 定时跳转网页
设置HTTP头还可以实现定时跳转网页的功能
response.setHeader("refresh", "5; URL=login.jsp");
设置输出缓冲
通常情况下,服务器要输出到客户端的内容不会直接写到客户端,而是先写到一个输出缓冲区
当满足以下3种情况之一,就会把缓冲区的内容写到客户端
- JSP页面的输出信息已经全部写入了缓冲区
- 缓冲区已满
- 在JSP页面中,调用了response对象的flushBuffer()方法或out对象的flush()方法
方法 | 说明 |
flushBuffer() | 强制将缓冲区的内容输出到客户端 |
getBufferSize() | 获取响应所使用的缓冲区的实际大小,如果没有使用缓冲区,则返回 0 |
setBufferSize(int size) | 设置缓冲区大小(KB为单位,如果设置为0KB,表示不缓冲) |
reset() | 清除缓冲区的内容,同时清除状态码和报头 |
isCommitted() | 检测服务器端是否已经把数据写入到了客户端 |