Day3
response
什么是reponse?
HTTP响应消息分为状态行、响应消息头、消息体三部分
reponse对象
HttpServletResponse对象,通过它的方法可以设置HTTP响应消息的内容
在Servlet API中,定义了一个HttpServletResponse接口,它继承自ServletResponse接口,专门用来封装HTTP响应消息。由于,因此,在HttpServletResponse接口中定义了向客户端发送响应状态码、响应消息头、响应消息体的方法
response-设置响应行
常见状态码的含义
设置响应码
设置状态码:200 302 304 404 500
setStatus(int status) // 200 302 304
sendError(int sc) // 404 500
response-设置响应头
- 响应头是什么?
响应头是一组键值对 - 设置响应头有什么用?
1)设置自己的键值对
2)修改系统已经存在的键值对 - 设置方法
void setHeader(String name, String value)
//设置响应头的名字:Content-Type的值
void setHeader("Content-Type", String value)
void setContentType(String type)
//设置响应头,5秒钟之后,页面自动跳转到/day14login/index.html
response.setHeader("Refresh", "5;url=/day14login/index.html");
setHeader("Content-Disposition", String value)
response-重定向
- 什么叫重定向?
两次请求,两次响应 - 重定向的核心
响应码302
响应头Location
response-设置响应体
设置响应体的方法:
- getWriter()方法:字符流
只能向浏览器响应文本内容: 字符串,标签
为什么会产生中文乱码?Tomcat IOS 8859-1 - getOutputStream()方法:字节流
可以向浏览器响应任何类型的数据: 图片,视频,音频
响应体-图片的复制
将图片响应给浏览器
- 获取liutao.jpg文件的输入流
- 将文件中的数据读取到字节数组
- 将字节数组中的数据写入:response的输出流
- 关流
响应体-超链接访问文件
浏览器本身支持,本质也是先读文件,再将文件写到浏览器