Response响应对象详解

Response响应
(尊重劳动成果,转载请注明出处:https://blog.csdn.net/qq_39778516/article/details/83018062 consistencely的博客)

01_HTTP_响应消息_概述

  1. 请求消息:客户端发送给服务器端的数据
    数据格式:
    1. 请求行
    2. 请求头
    3. 请求空行
    4. 请求体

  2. 响应消息:服务器端发送给客户端的数据

    • 数据格式:
      1. 响应行
      2. 响应头
      3. 响应空行
      4. 响应体:传输的数据

    响应字符串格式

     HTTP/1.1 200 OK
     Content-Type: text/html;charset=UTF-8
     Content-Length: 101
     Date: Wed, 06 Jun 2018 07:08:42 GMT
     
       
         $Title$
       
       
       hello , response
       
     
    

02_HTTP_响应消息_响应行_状态码

  1. 响应行
    HTTP/1.1 200 OK
    Response响应对象详解_第1张图片
    03_HTTP_响应消息_响应头
    Response响应对象详解_第2张图片
    04_Response_功能介绍
    Response响应对象详解_第3张图片
    setStatus(302);
    setHeader(“Content-Type”,”text/html;charset=utf-8”);
    setContentType(”text/html;charset=utf-8”);
    getWriter().write(String):响应字符串
    getOutputStream().write(byte[]):响应二进制,(文件下载)

05_Response_案例1_重定向_代码实现
Response响应对象详解_第4张图片
06_Response_案例1_重定向_特点
forward 与 redirect 区别?
区别:
1.原理
2.地址栏变化
3.路径写法
4.跳转外网
转发和重定向如何选择?

  1. 如果要使用request共享数据,使用转发
    (reques.getRequestDispatcher(“/demo.jsp”).forward(request,response))
    2.如果要跳转到其他服务器,必须使用重定向 (response.sendRedirect(“http://www.baidu.com”))
    3.其他情况,2个都可以

07_Response_案例1_路径_相对路径
总结路径问题:
1.相对路径: 所在文件与请求资源之间的关系. 不以 斜杠 / 开头, 例如:  ServletDemo1, ./ServletDemo1, …/ServletDemo1
2.建议使用绝对路径
3.绝对路径:以 斜杠 开头 , 以虚拟路径开头 ,例如: /web02/ServletDemo1
建议使用绝对路径,以/ 开始
response.sendRedirect(“/web02/ServletDemo2”);//给客户端用的
request.getRequestDispatcher(“/ServletDemo2”).forward(); //给服务器用的,不加虚拟路径

08_Response_案例2_输出字符数据
在这里插入图片描述
09_Response_案例3_输出字节数据
Response响应对象详解_第5张图片
服务器输出字节数据到浏览器
* 步骤:
1. 获取字节输出流
2. 输出数据

10_ServletContext_概述
Response响应对象详解_第6张图片

  1. 获取MimeType (文件下载时使用)
  2. 域对象,共享数据(范围多大?)
  3. 获取项目中文件的物理路径和代表文件的输入流

11_ServletContext_获取

	1. 通过request对象获取
		request.getServletContext();
	2. 通过HttpServlet获取
		this.getServletContext();

12_ServletContext_功能_获取MIME类型
Response响应对象详解_第7张图片
13_ServletContext_功能_域对象
Response响应对象详解_第8张图片
14_ServletContext_功能_获取文件服务器路径
Response响应对象详解_第9张图片
15_案例_文件下载_分析
文件下载需求:
1. 页面显示超链接
2. 点击超链接后弹出下载提示框
3. 完成图片文件下载
* 分析:
1. 超链接指向的资源如果能够被浏览器解析,则在浏览器中展示,如果不能解析,则弹出下载提示框。不满足需求
2. 任何资源都必须弹出下载提示框
3. 使用响应头设置资源的打开方式:
* content-disposition:attachment;filename=xxx

16_案例_文件下载_代码实现
设置2个头和一个流
Content-Type
Content-Disposition
InputStream
response.getOutputStream();
Response响应对象详解_第10张图片
17_案例_文件下载_中文文件名问题
在这里插入图片描述
Response响应对象详解_第11张图片
在这里插入图片描述

你可能感兴趣的:(web)