前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Response笔记

Response笔记

作者头像
用户9184480
发布于 2024-12-19 00:32:53
发布于 2024-12-19 00:32:53
9400
代码可运行
举报
文章被收录于专栏:云计算linux云计算linux
运行总次数:0
代码可运行

HTTP协议:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  * 数据格式:
    1. 请求行
    2. 请求头
    3. 请求空行
    4. 请求体
  * 数据格式:
    1. 响应行
      1. 组成:协议/版本 响应状态码 状态码描述
      2. 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。
        1. 状态码都是3位数字 
        2. 分类:
          1. 1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码
          2. 2xx:成功。代表:200
          3. 3xx:重定向。代表:302(重定向),304(访问缓存)
          4. 4xx:客户端错误。
            * 代表:
              * 404(请求路径没有对应的资源) 
              * 405:请求方式没有对应的doXxx方法
          5. 5xx:服务器端错误。代表:500(服务器内部出现异常)


    2. 响应头:
      1. 格式:头名称: 值
      2. 常见的响应头:
        1. Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式
        2. Content-disposition:服务器告诉客户端以什么格式打开响应体数据
          * 值:
            * in-line:默认值,在当前页面内打开
            * attachment;filename=xxx:以附件形式打开响应体。文件下载
    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>

Response对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* 功能:设置响应消息
  1. 设置响应行
    1. 格式:HTTP/1.1 200 ok
    2. 设置状态码:setStatus(int sc) 
  2. 设置响应头:setHeader(String name, String value) 

  3. 设置响应体:
    * 使用步骤:
      1. 获取输出流
        * 字符输出流:PrintWriter getWriter()

        * 字节输出流:ServletOutputStream getOutputStream()

      2. 使用输出流,将数据输出到客户端浏览器


* 案例:
  1. 完成重定向
    * 重定向:资源跳转的方式
    * 代码实现:
      //1. 设置状态码为302
          response.setStatus(302);
          //2.设置响应头location
          response.setHeader("location","/day15/responseDemo2");


          //简单的重定向方法
          response.sendRedirect("/day15/responseDemo2");

    * 重定向的特点:redirect
      1. 地址栏发生变化
      2. 重定向可以访问其他站点(服务器)的资源
      3. 重定向是两次请求。不能使用request对象来共享数据
    * 转发的特点:forward
      1. 转发地址栏路径不变
      2. 转发只能访问当前服务器下的资源
      3. 转发是一次请求,可以使用request对象来共享数据

    * forward 和  redirect 区别

    * 路径写法:
      1. 路径分类
        1. 相对路径:通过相对路径不可以确定唯一资源
          * 如:./index.html
          * 不以/开头,以.开头路径

          * 规则:找到当前资源和目标资源之间的相对位置关系
            * ./:当前目录
            * ../:后退一级目录
        2. 绝对路径:通过绝对路径可以确定唯一资源
          * 如:http://localhost/day15/responseDemo2    /day15/responseDemo2
          */开头的路径

          * 规则:判断定义的路径是给谁用的?判断请求将来从哪儿发出
            * 给客户端浏览器使用:需要加虚拟目录(项目的访问路径)
              * 建议虚拟目录动态获取:request.getContextPath()
              * <a> , <form> 重定向...
            * 给服务器使用:不需要加虚拟目录
              * 转发路径




  2. 服务器输出字符数据到浏览器
    * 步骤:
      1. 获取字符输出流
      2. 输出数据

    * 注意:
      * 乱码问题:
        1. PrintWriter pw = response.getWriter();获取的流的默认编码是ISO-8859-1
        2. 设置该流的默认编码
        3. 告诉浏览器响应体使用的编码

        //简单的形式,设置编码,是在获取流之前设置
          response.setContentType("text/html;charset=utf-8");
  3. 服务器输出字节数据到浏览器
    * 步骤:
      1. 获取字节输出流
      2. 输出数据

  4. 验证码
    1. 本质:图片
    2. 目的:防止恶意表单注册

ServletContext对象:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1. 通过request对象获取
    request.getServletContext();
  2. 通过HttpServlet获取
    this.getServletContext();
  1. 获取MIME类型:
    * MIME类型:在互联网通信过程中定义的一种文件数据类型
      * 格式: 大类型/小类型   text/html   image/jpeg

    * 获取:String getMimeType(String file)  
  2. 域对象:共享数据
    1. setAttribute(String name,Object value)
    2. getAttribute(String name)
    3. removeAttribute(String name)

    * ServletContext对象范围:所有用户所有请求的数据
  3. 获取文件的真实(服务器)路径
    1. 方法:String getRealPath(String path)  
       String b = context.getRealPath("/b.txt");//web目录下资源访问
           System.out.println(b);

          String c = context.getRealPath("/WEB-INF/c.txt");//WEB-INF目录下的资源访问
          System.out.println(c);

          String a = context.getRealPath("/WEB-INF/classes/a.txt");//src目录下的资源访问
          System.out.println(a);

案例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* 文件下载需求:
  1. 页面显示超链接
  2. 点击超链接后弹出下载提示框
  3. 完成图片文件下载


* 分析:
  1. 超链接指向的资源如果能够被浏览器解析,则在浏览器中展示,如果不能解析,则弹出下载提示框。不满足需求
  2. 任何资源都必须弹出下载提示框
  3. 使用响应头设置资源的打开方式:
    * content-disposition:attachment;filename=xxx


* 步骤:
  1. 定义页面,编辑超链接href属性,指向Servlet,传递资源名称filename
  2. 定义Servlet
    1. 获取文件名称
    2. 使用字节输入流加载文件进内存
    3. 指定response的响应头: content-disposition:attachment;filename=xxx
    4. 将数据写出到response输出流


* 问题:
  * 中文文件问题
    * 解决思路:
      1. 获取客户端使用的浏览器版本信息
      2. 根据不同的版本信息,设置filename的编码方式不同
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
request;response 对象
response 1. response简介 response的类型为HttpServletResponse,它是Servlet的service()方法的参数。 当客户端发出请求时,tomcat会创建
Java帮帮
2018/03/19
1.8K0
request;response 对象
Java Web学习总结(八)——HttpServletResponse对象(二)
请求重定向指:一个web资源收到客户端请求后,通知客户端去访问另外一个web资源,这称之为请求重定向。
Java团长
2018/08/03
7830
Web-第九天 ServletContext&amp;Response&amp;request学习
Web-第九天 ServletContext&Response&request学习
Java帮帮
2018/07/27
5830
Web-第九天 ServletContext&amp;Response&amp;request学习
Servlet第三篇【request和response简介、response的常见应用】
response、request对象 Tomcat收到客户端的http请求,会针对每一次请求,分别创建一个代表请求的request对象、和代表响应的response对象 既然request对象代表http请求,那么我们获取浏览器提交过来的数据,找request对象即可。response对象代表http响应,那么我们向浏览器输出数据,找response对象即可。 什么是HttpServletResponse对象? http响应由状态行、实体内容、消息头、一个空行组成。HttpServletResponse对象
Java3y
2018/04/02
1.6K0
Servlet第三篇【request和response简介、response的常见应用】
Java Web(七)Request&Response
2.请求头 User-Agent:Mozilla/5.0 Chrome/91.0.4472.106
浅辄
2022/11/23
3130
Java Web(七)Request&Response
Java中的Request和Response详解
Request对象和Response对象的原理 Request和Response对象是由服务器创建的。我们来使用它们 Request对象是来获取请求消息,Response对象是来设置响应消息。
共饮一杯无
2022/11/28
5320
20. Servlet入门 - response介绍以及使用
在前面的篇章中我们已经认识了 resquest 请求的相关作用,那么下面来继续认识一下 response 响应。
Devops海洋的渔夫
2022/01/14
8200
20. Servlet入门 - response介绍以及使用
JavaWeb day8 Request和Response快速入门(下)Response
介绍完Response的相关体系结构后,接下来对于Response我们需要学习如下内容:
小小程序员
2023/02/22
7431
JavaWeb day8 Request和Response快速入门(下)Response
JavaWeb——HTTP响应协议及Response对象使用方法一点通及案例实战(重定向、输出字符/字节数据到浏览器、验证码实现)
HTTP协议,请求消息是客户端发送给服务器的数据,响应消息是服务器端发送给客户端的数据,其数据格式为:
Winter_world
2020/09/25
1.1K0
JavaWeb——HTTP响应协议及Response对象使用方法一点通及案例实战(重定向、输出字符/字节数据到浏览器、验证码实现)
12-Request对象+Response对象
上述重定向操作中不难看出,状态码设为302是固定的,响应头的名称设为location也是固定的,唯一在重定向时会发生变化的就是跳转资源的路径,所以response对象将重定向进行了封装
Ywrby
2022/10/27
5450
12-Request对象+Response对象
【愚公系列】2023年03月 Java教学课程 090-Servlet服务器的Response
Response响应对象是指在Web开发中,服务器端向客户端返回的HTTP响应消息。它包含了HTTP状态码、响应头和响应体等信息。在使用Web框架时,我们可以通过Response对象来设置响应的状态码、响应头和响应体等内容,以便向客户端返回需要的信息。
愚公搬代码
2023/03/17
2920
【愚公系列】2023年03月 Java教学课程 090-Servlet服务器的Response
Javaweb核心响应对象
响应,它表示了服务器端收到请求,同时也已经处理完成,把处理的结果告知用户。简单来说,指的就是服务器把请求的处理结果告知客户端。在B/S架构中,响应就是把结果带回浏览器。
楠羽
2022/11/18
5600
Javaweb核心响应对象
javaWeb核心技术第七篇之HTTP、Tomcat、Servlet、Request和Response
- Web服务器 - 概念: - web资源: "英文直译"网"的意思 资源:一切数据文件 web资源:通过网络可以访问到的资源,通常指的是一切放在服务器上的文件" - web资源的分类: - 静态的web资源: " 内容是一成不变的" - 动态的web资源: " 内容有可能在不同的时间或者不同的人访问的时候会发生改变的" - web技术分类 - 静态的web技术
海仔
2019/08/26
1K0
java学习与应用(4.4)--Tomcat、servlet等
常用的web服务器软件:webLogic(oracle),webSphere(IBM),JBOSS(JBOSS公司)(以上三种支持所有JavaEE规范,企业版共13项规范),Tomcat(Apache基金,支持少量JavaEE规范) Tomcat:下载,解压使用。其中webapps存放网页,work存放运行数据,bin存放执行文件(shutdown.bat可关闭)。没有配置JAVA_HOME可能不能启动startup.bat。logs中存放日志信息记录一些错误等。netstat -ano查看端口使用的PID。conf配置目录的server.xml定义了tomcat的端口使用。 将代码打包为war包,放置到webapps下,会自动解压缩,和自动删除。server.xml的host标签下,定义Context自闭和标签中,定义docBase项目路径和path虚拟目录的属性便于访问。 常用的热部署并防止修改错误server.xml内容:方式为:conf下Catania下localhost下创建任意名称的xml文件,写入Context标签和属性,替换server.xml中的路径部署。 ROOT为项目根目录,WEB_INF为动态项目目录(web.xml为核心配置文件,classes目录存放字节码,lib存放jar包),其他为静态目录文件。 run->configuration ->Tomcat Server ->local->Application server中将tomcat集成到idea中。Java Enerprise -> Web Application,create server.xml勾选。等等配置。 idea直接修改可以使用热部署,不用重启服务器,进行代码调试,文件创建。idea也可以修改虚拟路径,方便使用。
嘘、小点声
2020/02/23
4350
Servlet中Responce对象的基本使用和验证码图片案例
Response对象 功能:设置响应消息 1. 设置响应行 1. 格式:HTTP/1.1 200 ok 2. 设置状态码:setStatus(int sc) 2. 设置响应头:setHeader(String name, String value) 3. 设置响应体: * 使用步骤: 1. 获取输出流 * 字符输出流:PrintWriter getWriter() * 字节输出流:ServletOutputStream getOutputStream() 2. 使用输出流,将数据输出到客
不愿意做鱼的小鲸鱼
2022/09/24
5400
Servlet中Responce对象的基本使用和验证码图片案例
http & request & response的学习
HTTP: 1. 概念: * Hyper Text Transfer Protocol 超文本传输协议 * 传输协议:定义了,客户端和服务器端通信时,发送数据的格式 * 特点: 1.基于TCP/IP的高级协议 2.默认端口号:80 3.基于请求/响应模型的:一次请求对应一次响应 4.无状态的:每次请求之间相互独立,不能交互数据 * 历史版本: * 1.0:每一次请求响应都会建立新的连接 * 1.1:复用连接 2.
Rochester
2020/09/01
7130
Java学习之Response篇
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/119940.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/13
2670
JavaWeb核心篇(2)——Request和Response
上篇文章中提及到了Servlet,在Servlet中我们主要继承了HTTPServlet类,在HTTPServlet类中我们会接触到两个对象
秋落雨微凉
2022/10/25
4680
JavaWeb核心篇(2)——Request和Response
七夕不送礼,送礼就送HttpServletResponse,一看就懂
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。获取网页提交过来的数据,只需要找request对象就行了。要向网页输出数据,只需要找response对象。
好好学java
2018/09/21
4390
七夕不送礼,送礼就送HttpServletResponse,一看就懂
一篇文章弄懂Request和Response
HttpServletRequest 是专用于HTTP协议的ServletRequest 子接口,它用于封装 HTTP 请求消息。
Java编程指南
2020/11/25
1.3K0
一篇文章弄懂Request和Response
相关推荐
request;response 对象
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文