目录
HttpServletResponse接口
HttpServletResponse是ServletResponse直接子接口
HttpServletResponse是在javax.servlet.http包下 ServletResponse是在javax.servlet包下
HttpServletResponse:tomcat创建servlet对象调用service方法之前自动给我们创建的对象,主要作用是响应数据给浏览器 响应数据包括以下几种类型 文本内容、图片、视频 …
response 组成:响应行、响应头、响应体
响应行
响应行:协议/版本 状态码 状态码描述
最常用的状态码
200:成功
302:重定向
401:未授权
404:资源未找到
405:没有处理当前请求方式的能力
500:服务器代码错误
HTTP协议
概述:http超文本传输协议、是一种基于请求和响应的无状态的应用层tcp协议。
基于请求和响应:请求和响应是成对出现、先有请求后有响应
无状态:浏览器与服务器进行数据交互的时候、浏览器不会记录上次的交互信息
http://localhost/login/login
https://www.baidu.com/
HTTPS 的全称是Hyper Text Transfer Protocol over Secure Socket Layer ,是以安全为目标的HTTP通道,简单的讲是HTTP的安全版本,即HTTP下加入SSL层,简称HTTPS。
版本
0.9: 服务器与浏览器只能交互文本内容
1.0: 服务器与浏览器之间允许发送超文本、但是一次只能从服务器获取一个资源
1.1: 服务器与浏览器之间允许发送超文本
Https:主要作用:
1、网站安全的标识
2、可以保证浏览器与服务器数据交互的数据安全
TCP三次握手,因为HTTP是基于TCP协议的,所有也可以认为是HTTP的三次握手:
第一次握手:浏览器给服务器发送一条信息
第二次握手:服务器收到了浏览器发送的信息、此时浏览器并不知道数据已经被服务器接收、服务器会给浏览器响应一条数据通知浏览器已经收到了
第三次握手:浏览器收到了服务器返回的数据、开始数据交互
三次握手根本目的:保证数据的安全性
响应头
概述:服务器通知浏览器的一些信息
响应头信息大全:
https://www.cnblogs.com/wangshuazi/p/9809756.html 更多的头信息
重要的响应头信息:
Content-disposition 通知浏览器以下载方法打开 attachment; fileName=文件名
Content-Type 返回的内容类型 image/jpg vedio/mp4 text/html
location 立马重定向
refresh 定时重定向 5;url=http://www.baidu.com
如何设置响应头
setHeader(key,value) 设置响应头
addHeader(key,value) 添加响应头
区别:
setHeader()一个key 对应一个值如果出现多个key相同、最终最后一个生效
addHeader()一个Key 允许对应多个值
设置模板
响应图片案例
/*
* 响应图片案例
*/
public class Response_Demo04 extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//通知浏览器返回的内容类型
resp.setHeader("content-type", "image/jpg");
//获取资源在服务器中的真实路径
String path = req.getServletContext().getRealPath("/img/娃娃.jpg");
//创建文件字节输入流对象
FileInputStream fis = new FileInputStream(path);
//一次性读取的字节个数
byte arr[] = new byte[1028*8];
int len;//读取到的有效字节个数
//获取响应流
ServletOutputStream fos = resp.getOutputStream();
while((len=fis.read(arr))!=-1) {
//响应回浏览器
fos.write(arr, 0, len);
}
//关闭资源
fos.close();