10-19 HttpServletResponse

相应的对象  web开发模型:基于请求与相应的模型 一问一答的模型

Response对象:响应对象,封装服务器给客户端的相关的信息

顶级接口: ServletResponse
父接口:HttpServletResponse

response对象的功能分为以下四种:·(都是服务器干的事注意)

设置响应头信息;
发送状态码

设置响应正文;

重定向;

响应正文

响应数据,给客户端的数据
数据:可以是普通文本,也可以是文件

借助输出流把内容写给客户端的浏览器上

服务器怎么把文本和文件给到客户端?

借助响应输出流,把内容写给客户端 这个IO流是一个输出流 他有两个方法得到两种流

第一个是getOutputStream()  第二个是PrintWriter

  • ServletOutputStream getOutputStream()得到字节输出流,万能流(文本,文件都可以)
  • PrintWriter getWriter()得到打印字符输出流,打印流: write() print() printIn() 只能写文本

tips:外面是双引号 里面就必须是单引号

-1表示读到文件末尾,读一点写一点->读一个字节写一个字节(那么效率有点低,所以用buffer数组)

由于是一个字节一个字节大的读取所以读取比较慢,此时完成了服务器的资源展示到客户端浏览器上

设置ContentType

但是得到的是:

改正渲染类型:

设置响应头:

 设置响应状态

生成验证码:画布 -> 画笔写字 ->  通过ImageIO写出去

浏览器发现验证码的src的值一样 就会把缓存的内容重新给与src 而不会重新发送新请求

重定向(repsonse)->important

repsponse.sendRedirect

(面试高频)重定向(客户端的跳转)与请求转发(服务器的跳转)的共性与异性

共性:都是实现资源的跳转

异性:请求转发是服务器端的资源跳转客户端无感,

请求转发请求一次,重定向发起两次请求  Request域中的数据只能在转发中有效 转发时是无效的

转发客户端地址栏不会发生变化,重定向客户端地址栏会发生变化

转发可以访问服务器内部资源但是重定向既可以访问服务器内部资源又可以访问服务器外的资源

重定向的第二次请求是get请求 即服务器输入url地址回车进行一个请求到客户端

1

重定向(不是在服务器内部进行的跳转,而是在客户端,你看客户端是不是发起了两次的请求)

Request域中的数据只能在转发中有效 转发时是无效的  不然下面会报错

编码处理

1.请求编码

2.响应编码

请求编码

get

tomcat8以及之上的版本,Tomcat默认处理GET请求的编码:UTF-8

如果tomcat7以及之下,需要手动处理,万能编码处理方式:

编码处理:

1.把得到的字符串打散成字节

2.使用正确的编码 把字节数组组装成字符串

手动处理:

原因:

怎么变成三个汉字了?我传的是两个汉字->张三呀 

在UTF-8中一个汉字占三个字节  但是GBK是占两个字节为一个汉字  3个字节

因为你之前传过来的是UTF-8编码的汉字 总共占3*2个字节 现在要按照GBK  那么就是3个汉字了

乱码就是编码不一致所造成的

接口测试:使用postman  不再单独写一个html页面  在针对所谓的post请求页面时

表单中数据提交需要用到input这类标签单中的name属性,用于前端数据的一个传递

为什么我不设置  发送Post请求也没什么问题?

方法:

调用request对象void setCharacterErfcoding(String var1)的方法,这个方法只能设置请求体的编码(所以只适用于post请求编码)

响应编码  ->不分提交方式

但是报错:

IO流输出管道编码已经设置好,但是他没有告诉客户端这边的数据展示数据的编码方式

所以再次导致了乱码问题,相当于:我给你东西,编码是正常的,但是你不知道把我给你的东西不会设置编码

总结就是:客户端浏览器的编码没有设置

响应编码问题总结

在响应编码中,需要解决输出流管道的编码问题以及客户端浏览器的编码设置

tips:只要写一个:写下面这个就行了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/199547.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于WhatsApp群发营销价值、类型、优劣势……这里一次性讲清楚

01 社交销售互动:全球营销新趋势 当下,全球品牌的营销销售互动都步入了社交销售新时代,相比原来任何一种形式的互动沟通来说,其沟通效率、体验、效果都是无与伦比的。 企业与销售的互动,与通讯信息技术发展息息相关。…

手撕单链表(C语言)

目录 1.单链表的物理结构 2.头文件的实现 3.SList.c文件的实现 3.1尾插、创建节点 3.2打印 3.3头插 3.4尾删 3.5头删 3.6查找 3.7指定位置之前插入数据 3.8指定位置之后插入数据 3.9删除指定位置节点 3.10删除pos之后的节点 3.11销毁链表 4 所有的代码 1.单链表的物理结构 众所…

百分点科技|怎样做数据运营,才能让数据中台真正用起来?

导读:大多数企业用户已完成数据平台初步建设工作,但数据在业务运营和管理中没有发挥应有价值。数据开发工作繁重,数据质量问题严重,IT、数据和业务协作不畅,诸多问题依然困扰着企业用户的IT部门和数据部门。数据运营成…

Spring注解开发

注解开发 注解开发定义bean 使用Component定义bean 核心配置文件中通过组件扫描加载bean Spring提供Component注解的三个衍生注解 Controller:用于表现层bean定义Service:用于业务层bean定义Repository:用于数据层bean定义 纯注解开发 Spr…

在VSCode创建vue项目,出现“因为在此系统上禁止运行脚本”问题

问题:vue : 无法加载文件 C:\Users\***\***\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 ht tps:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1 解决&#xff…

Ubuntu——卸载、安装CUDA

【注】WSL的Ubuntu是不用安装CUDA的,因为它使用的是Windows的显卡驱动,所以如果WSL的CUDA出了问题,重新安装WSL即可! 如果nvidia-smi有显示,只是需要使用nvcc,那么就需要安装。安装的时候不要选Driver即可…

Android Termux安装MySQL,内网穿透实现公网远程访问

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身…

会议剪影 | 思腾合力受邀出席第四届长三角文博会并作主题演讲

以“担当新使命:长三角文化产业的力量”为主题的「第四届长三角国际文化产业博览会」于2023年11月16日-19日在国家会展中心(上海)成功举办。思腾合力作为行业领先的人工智能基础架构解决方案商出席本次盛会。 此次展会的面积首次超过10万平米&#xff0c…

Python如何将项目直接打包为一键整合包

目录 一、准备项目 二、创建打包文件 三、创建安装脚本 四、执行安装 五、测试安装 六、常见问题与解决方案 总结 Python项目打包成一键整合包是一个比较复杂的任务,需要考虑到项目的各个方面,包括依赖项、配置文件、静态文件、数据库等等。下面是…

[C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数

📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉📢现…

基于安卓android微信小程序的好物分享系统

运行环境 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包&a…

提升工作效率,使用AnyTXT Searcher实现远程办公速查公司电脑文件——“cpolar内网穿透”

文章目录 前言1. AnyTXT Searcher1.1 下载安装AnyTXT Searcher 2. 下载安装注册cpolar3. AnyTXT Searcher设置和操作3.1 AnyTXT结合cpolar—公网访问搜索神器3.2 公网访问测试 4. 固定连接公网地址 前言 你是否遇到过这种情况,异地办公或者不在公司,想找…

短视频账号矩阵系统源码

短视频账号矩阵系统源码搭建步骤包括以下几个方面: 1. 确定账号类型和目标受众:确定要运营的短视频账号类型,如搞笑、美食、美妆等,并明确目标受众和定位。 2. 准备账号资料:准备相关资质和资料,如营业执照…

关于爬虫中的hook(defineProperty,hook cookies, hook载荷数据,hookXHR)

关于爬虫中的hook: defineProperty var people {age: 19, }; var count20; console.log(people.age) // 参数:对象 属性名字 函数 Object.defineProperty(people, age, {get: function () {console.log(获取值!);return count;},// set: …

前端本地存储数据库IndexedDB

前端本地存储数据库IndexedDB 1、前言2、什么是 indexedDB?3、什么是 localForage?4、localForage 的使用5、VUE 推荐使用 Pinia 管理 localForage 1、前言 前端本地化存储算是一个老生常谈的话题了,我们对于 cookies、Web Storage&#xff…

酷开科技丨这么好用的酷开系统,不用真的会后悔!

掀开一幕幕精彩剧情,手机已经成为了我们身边必不可少的追剧神器。在这个信息爆炸的时代,我们渴望能够随时随地享受到精彩的影视作品,尤其是在家的休息的时候,希望电视也能同手机一样,想看啥就搜啥。酷开科技大内容战略…

django理解02 前后端分离中的问题

前后端分离相对于传统方式的问题 前后端数据交换的问题跨域问题 页面js往自身程序(django服务)发送请求,这是浏览器默认接受响应 而请求其它地方是浏览器认为存在潜在危险。自动隔离请求!!! 跨域问题的解决…

根据nginx日志统计页面访问次数

静态页面部署在nginx上,页面只有查看下载功能。 需求是统计每条访问次数和下载次数,根据日志分析写了一个shell脚本,触发脚本后生成一个html可以远程查看统计的数量。 #!/bin/bash # nginx日志文件路径 LOG_FILE"/usr/local/nginx/l…

读像火箭科学家一样思考笔记04_第一性原理(下)

1. 来自无形规则的阻力 1.1. 无形规则 1.1.1. 僵化成规则的不必要习惯和行为 1.1.2. 不像有形的书面规则 1.1.2.1. 书面规则出现在标准操作流程中,可以修改或删除 1.1.3. 成文的规则可能会抗拒变革,但无形规则却更加顽固 1.1.4. 我们为强加在自己身…