JSP内置对象——response对象

reponse对象
reponse对象用于响应客户请求,向客户端输出信息。它封装了JSP产生的响应,并发送到客户端以响应客户端的请求。请求的数据可以是各种数据类型,甚至是文件。response对象在JSP页面内有效。

1、重定向
sendRedirect()可以将网页重定向到另一个网页。重定向操作支持将地址重定向到不同的主机上。在客户端浏览器上将会得到跳转的地址,并重新发送请求链接。进行重定向操作后,request中的属性全部失效,并且开始一个新的request对象。
reponse.sendRedirect(String path);
例子:
response.sendRedirect("login.jsp");
response.sendRedirect("www.mrbccd.com");
注意:
在JSP页面中使用该方法时,不要再用JSP脚本代码(包括return语句),因为重定向之后的代码没有意义,并且还可能产生错误。

2、处理HTTP文件头
通过response对象可以设置HTTP响应报头,其中最常用的是禁用缓存、设置页面自动刷新和定时跳转网页。
2.1 禁用缓存
在默认的情况下,浏览器会对显示的网页缓存,这样当用户再次访问相关网页时,浏览器会检查网页是否变化,如果没有变化就直接显示缓存中的内容,这样可以提高网页的显示速度。当然,在一些安全要求较高的网站,会禁用缓存。
response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);

2.2 设置页面自动刷新
设置网页每隔10秒自动刷新一次,示例代码:
response.setHeader("refresh","10");

2.3 定时跳转网页
设置网页5秒后自动跳转到指定的网页
resonse.setHeader("refresh","5;URL=login.jsp");


3、设置输出缓存
通常情况下,服务器要输出到客户端的内容是不会直接写到客户端的,而是先写到一个输出缓冲区。
对于缓冲区,我看到了一个非常形象的比喻。缓冲区相当于一个粮仓。运粮车将粮食运到后,传送带的速度跟不上,于是为了避免运粮车的浪费,就设置了粮仓,运粮车直接将粮食运到粮仓,传送带再从粮仓慢慢取粮食传送。
当满足下面三种情况之一,就会把缓冲区的内容写到客户端。
a、JSP页面的输出信息已经全部写入到缓冲区
b、缓冲区已满
c、在JSP页面中,调用了response.flushBuffer()方法或者out对象的flush()方法
response中对缓存区配置的方法如下:
flushBuffer()
getBufferSize()
setBufferSize()
reset()
isCommited()

原文地址:https://www.cnblogs.com/cuglkb/p/6649688.html