(Serlet进阶 HttpServletResponse和HttpServletRequest)2020.11.23

本文详细探讨了Servlet中的HttpServletResponse接口,包括响应行、响应头和响应体的设置,如状态码、响应头的Content-disposition、Content-Type等。同时,介绍了HttpServletRequest接口,讲解了请求行、请求头和请求体的处理,如获取请求方法、请求参数及文件上传等。通过实例展示了HTTP协议的工作原理和TCP三次握手的过程。
摘要由CSDN通过智能技术生成

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();
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值