首页 > 其他分享 >Response

Response

时间:2023-04-21 16:11:13浏览次数:35  
标签:编码 浏览器 String response 响应 服务器 Response

1. HttpServletResponse概述:
在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响应response。service方法中的response的类型是ServletResponse,而doGet/doPost方法的response的类型是HttpServletResponse,HttpServletResponse是ServletResponse的子接口,功能和方法更加强大。

4. http响应头信息详解
类似于请求消息中的请求头,其格式和请求头信息格式一样,即响应头:响应头值。

1). Server :该响应头是服务器告诉浏览器,当前响应的服务类型和版本。

2). Content-Type响应头:服务器告诉浏览器响应内容是什么类型,以及采用的是什么字符编码。该响应头的值现在为:text/html;charset=utf-8。说明响应信息的类型是文本类型中的html,使用的字符编码是utf-8。

3). Content-Length响应头:服务器告诉浏览器,Content-Length响应头表明了响应实体的大小,该响应内容的长度现在是312个字节。

4). Date响应头:表示是服务器是在什么时候响应回浏览器,注意这里的时间是按照美国时间来计算。

5). Accept-Ranges: bytes - 该响应头表明服务器支持Range请求,以及服务器所支持的单位是字节(这也是唯一可用的单位).我们还能知道:服务器支持断点续传,以及支持同时下载文件的多个部分,也就是说下载工具可以利用范围请求加速下载该文件.Accept-Ranges: none 响应头表示服务器不支持范围请求.

6). Last-Modified:服务器上文件的最后修改时间

5 . 设置response内容
response 代表响应, 可以通过该对象分别设置Http响应: 响应行 响应头 响应体

1) 通过response设置响应行:
设置响应的状态码: setStatus(int sc)
2) 通过response设置响应头
(其中,add表示添加,而set表示设置)

        addHeader(String name, String value) 
        addIntHeader(String name, int value) 
        addDateHeader(String name, long date) 
        setHeader(String name, String value) 
        setDateHeader(String name, long date) 
        setIntHeader(String name, int value)

3) 通过response设置响应体

 

响应体设置文本

PrintWriter getWriter()

获得字符流,通过字符流的write(String s)方法可以将字符串设置到response 缓冲区中,随后Tomcat会将response缓冲区中的 内容组装成Http响应返回给浏览 器端。

关于设置中文的乱码问题

原因:response缓冲区的默认编码是iso8859-1,此码表中没有中文,可以通过 response的setCharacterEncoding(String charset) 设置response的编码

但我发现客户端还是不能正常显示文字

原因:我们将response缓冲区的编码设置成UTF-8,但浏览器的默认编码是本地系 统的编码,因为我们都是中文系统,所以客户端浏览器的默认编码是GBK,我们可以 手动修改浏览器的编码是UTF-8。

还可以在代码中指定浏览器解析页面的编码方式,

通过response的setContentType(String type)方法指定页面解析时的编码是UTF-8

response.setContentType("text/html;charset=UTF-8");

上面的代码不仅可以指定浏览器解析页面时的编码,同时也内含 setCharacterEncoding的功能,所以在实际开发中只要编写 response.setContentType("text/html;charset=UTF-8");就可以解决页面输出中文乱码问题。

响应头设置字节

ServletOutputStream getOutputStream()

获得字节流,通过该字节流的write(byte[] bytes)可以向response缓冲区中写入字 节,在由Tomcat服务器将字节内容组成Http响应返回给浏览器。

 

标签:编码,浏览器,String,response,响应,服务器,Response
From: https://www.cnblogs.com/yzx-sir/p/17340787.html

相关文章

  • 关于nginx如何对外部隐藏nginx版本号-以及Response Headers中的Server字段的nginx版本
    对于nginx作为web/http服务器发布了一个网站时,外部用户就可以通过浏览器进行访问到默认情况下,如果外部用户,访问了一个不存在的资源时,就会返回404错误,如下图所示这里我们可以发现在返回404错误时,下面居然也输出了web服务器(nginx)及其版本号1.22.1当然从 ResponseHeaders中......
  • SpringBoot利用Filter获取请求数据request和修改返回response中的数据
    WrapperedRequestimportjavax.servlet.ReadListener;importjavax.servlet.ServletInputStream;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletRequestWrapper;importjava.io.*;publicclassWrapperedRequestextendsHttpSe......
  • 一篇博客上手request和response
    概念request:获取请求数据response:设置响应数据Requestrequest继承体系ServletRequest——Java提供的请求对象根接口HttpServletRequest——Java提供的对http协议封装的请求对象接口RequestFacade——tomcat实现定义类request获取数据packagecom.itheijma.web;importj......
  • requests模块Response类
    1、介绍requests.request函数执行的返回对象即requests.Response类的对象。当然,其他请求函数执行返回也是如此。2、类和初始化classResponse:__attrs__=["_content","status_code","headers","url","history&qu......
  • Response对象详述
    Response对象前面讲解完Request对象,接下来我们回到刚开始的那张图:Request:使用request对象来获取请求数据Response:使用response对象来设置响应数据Reponse的继承体系和Request的继承体系也非常相似:介绍完Response的相关体系结构后,接下来对于Response我们需要学习如下......
  • 一统天下 flutter - widget 按钮类: Ink/InkWell/InkResponse - 让任意组件支持点击事
    一统天下flutterhttps://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-widget按钮类:Ink/InkWell/InkResponse-让任意组件支持点击事件和点击效果示例如下:lib\widget\button\ink.dart/**Ink/InkWell/InkResponse-让任意组件支持点击事件和......
  • org.apache.coyote.tomcat5.CoyoteResponseFacade.sendRedirec
    org.apache.coyote.tomcat5.CoyoteResponseFacade.sendRedirect(CoyoteResponseFacade.java:352)org.apache.jsp.test_jsp._jspService(test_jsp.java:62)org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)javax.servlet.http.HttpServlet.service(HttpSer......
  • getOutputStream() has already been called for this response
    java.lang.IllegalStateException:getOutputStream()hasalreadybeencalledforthisresponse getOutputStream()hasalreadybeencalledforthisresponse问题的解决在jsp向页面输出图片的时候,使用response.getOutputStream()会有这样的提示:java.lang.IllegalStateExcep......
  • 前端_发起axios请求,前端无法获取response的全部header
    问题描述使用vueaxios向python+flask搭建的服务端发起请求,请求成功后,前端无法拿到服务端添加到header中的token。问题原因前后端分离,默认reponseheader只能取到以下信息Content-LanguageContent-TypeExpiresLast-ModifiedPragma解决方法要获取其他的headers信息......
  • 由ASP.NET Core读取Response.Body引发的思考
    由ASP.NETCore读取Response.Body引发的思考 前言#    前几天有群友在群里问如何在我之前的文章《ASP.NETCoreWebApi返回结果统一包装实践》的时候有点疑问,主要的疑问点就是关于Respouse的读取的问题。在之前的文章《深入探究ASP.NETCore读取Request.Body的正确方式......