6.1 简介
HttpServletResponse对象是服务器的响应对象,这个对象封装了向客户端发送数据(响应体),发送响应头,发送响应状态码(响应行)的方法
6.2 设置响应头
//设置响应头,按key-value键值对的方式,如果存在相同的key,会把value值覆盖
//1. setHeader("Content-Type","text/html"),可以设置响应数据的格式,浏览器会按该格式,对html页面进行渲染,只有html格式,才会识别标签
//2. text/plain表示纯文本,如果以纯文本现实网页,那么网页中的标签,全部会以字符串显式
void setHeader(String var1, String var2);
//不会覆盖值
void addHeader(String var1, String var2);
//设置响应数据的格式,等同于setHeader("Content-Type",var1)
void setContentType(String var1);
6.3 设置响应状态码(响应行)
//设置响应状态码
void sendError(int var1, String var2) throws IOException;
6.4 设置响应数据(响应体)
//返回响应数据的输出流
PrintWriter getWriter() throws IOException;
6.5 应用
- 向客户端浏览器响应图片
InputStream is = new FileInputStream(new File("C:\\Users\\ThinkPad\\Desktop\\截图\\1.png"));
byte[] buff = new byte[is.available()];
is.read(buff);
//应该在响应之前设置响应类型,如果不设置,使用默认的,设置错了,会乱码显示
//setContentType中的参数可以为任意MIME类型
response.setContentType("image/jpeg");
//把读进来的图片相应给客户端
//字节输出流。
OutputStream os = response.getOutputStream();
os.write(buff);
os.flush();
is.close();
os.close();
- 文件下载
//当浏览器没法处理你设置的文件类型时,浏览器会弹窗询问是要下载还是使用某个应用程序打开该文件
//设置为bin格式,表示即使浏览器能打开这种文件,也不让它打开,只进行下载
response.setContentType("bin");
//告诉浏览器内容配置为附件,下载时显式的名字为aa.jgp
//因为文件名存放在响应头中,我们无法通过其他方法修改tomcat对它的编码方式
String name = new String("吴思含".getBytes("utf-8"),"iso-8859-1");
//设置Content-disposition,指定下载方式与文件名
response.addHeader("Content-disposition","attachment;filename="+name+".jsp");
- 5s后跳转
//一般用js实现这种功能
response.setHeader("refresh","5;https://www.baidu.com");