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
     <html>
       <head>
         <title>$Title$</title>
       </head>
       <body>
       hello , response
       </body>
     </html>
    

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

  1. 响应行
    HTTP/1.1 200 OK
    在这里插入图片描述
    03_HTTP_响应消息_响应头
    在这里插入图片描述
    04_Response_功能介绍
    在这里插入图片描述
    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_重定向_代码实现
在这里插入图片描述
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_输出字节数据
在这里插入图片描述
服务器输出字节数据到浏览器
* 步骤:
1. 获取字节输出流
2. 输出数据

10_ServletContext_概述
在这里插入图片描述

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

11_ServletContext_获取

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

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

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

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要带HttpServletResponse response参数,需要在方法的参数列表中添加一个类型为javax.servlet.http.HttpServletResponse的参数。例如,在doGet方法中,可以这样定义参数:public void doGet(HttpServletRequest request, HttpServletResponse response)。 这样,当客户端发出请求时,服务器会创建一个response对象,并将其传递给doGet方法。你可以在方法内部使用response对象来完成对客户端的响应工作,如发送HTTP响应、设置响应头、写入响应内容等操作。 值得注意的是,HttpServletResponse是javax.servlet.http.HttpServletResponse接口的一个实现类,它是ServletResponse接口的子接口。这意味着HttpServletResponse对象具有ServletResponse对象的所有功能,并且还提供了专门用于处理HTTP协议的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [HttpServletResponse response详解](https://blog.csdn.net/m0_37834446/article/details/81385843)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Jsp中response对象的所有属性详细介绍](https://download.csdn.net/download/weixin_38698590/14046947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值