当前位置: 首页 > news >正文

web实操5——http数据详解,request对象功能

http请求数据

现在我们浏览器f12的那些是浏览器给http格式数据整理之后便于我们阅读的。

原始的http格式信息:
就是按照一定格式和符号的字符串:

请求行:格式如下图
请求头:一个个key,value数据,用,分割多个,是客户端想给服务端说的一些话,服务器可以来解析这些信息。key是固定的,值是不一样的。
请求空行:就是一个空行,用来分隔请求头和请求体的作用。
请求体:get方式没有请求体,换成post方式有,就是请求的一些参数数据。
在这里插入图片描述

请求行

在这里插入图片描述

请求头

请求头还有很多,后面学更多才能知道
先解释一下下图的几个常见的请求头:
在这里插入图片描述
在这里插入图片描述
host:请求的主机是localhost
User-Agent:服务器根据浏览器不同做不同的处理
Accept:我这个浏览器可以接收你给我什么样的响应的信息格式,*/*是什么格式都可以
language:我浏览器可以支持的语言环境
encoding:我可以接收的压缩格式
connection:我的连接还活着,活着表示连接可以被复用,http1.1是可以被复用的,1.0的这里应该是断开的值。
**referer:**比较重要,告诉服务器我这个请求从哪来。在早期很有用,那时候版权意识不强,现在用的不多了。
防盗链,统计:
在这里插入图片描述

请求体

get请求没有请求体
在这里插入图片描述

request和response的原理

在这里插入图片描述
在这里插入图片描述

request的继承体系

实现类RequestFacade是由tomcat创建的。
在这里插入图片描述

request的功能

http格式的数据由四部分构成:
请求行
请求头
请求体
request的功能:
在这里插入图片描述

获取请求消息数据

获取请求行数据

在这里插入图片描述
代码演示:

获取请求头数据

在这里插入图片描述
代码演示:
在这里插入图片描述
refer演示:
在这里插入图片描述
response的意思先不解释,先这么写:
在这里插入图片描述

获取请求体数据

字符数据:username=“张三”
字节数据:上传文件,图片,视频
所以获取流对象有两种流,一种是字节流,一种是字符流。
在这里插入图片描述
代码演示字符输入流:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其他功能:

获取请求参数通用方式

上面方法常用的就这三个:其余的都不是很常用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
基于上面那些,又有一些方法更方便使用request对象,这些都很常用:
在这里插入图片描述
代码举例:

中文乱码问题:

举例:
在这里插入图片描述
在这里插入图片描述
乱码了:
在这里插入图片描述
但是使用get方式,就不会乱码了。

说明:
如果是tomcat8及其以上版本,get方式不会乱码了,tomcat内部帮解决完了。
原因:
get方式参数是在url里面的,post方式参数通过request.getParameter(“username”)获取,内部通过是是流来获取的参数的值,所以需要在get获取之前设置一下流的编码:
在这里插入图片描述
页面上是什么编码,这边就改成什么编码:
在这里插入图片描述
总结:不管get,post直接都在第一行写上就行
在这里插入图片描述

请求转发

一种在服务器内部的资源跳转方式.

情景:
aservlet里面的功能在bservlet里面实现,所以相当于aservlet里做了一部分后,跳转到bservlet。
就可以使用请求转发完成。
在这里插入图片描述
举例:
在这里插入图片描述
在这里插入图片描述

共享数据

情景:
aservlet期望发送一些数据给bservelt,数据怎么通信。

域:范围的意思
request域:
代表一次请求的这个范围。基本就在转发的时候用,a调用b,就在一次请求的这个范围内。
a在里面用request存储了一些数据(转发之前存储),由于request对象的范围包括b,所以b可以获得这个数据。
在这里插入图片描述

举例:在这里插入图片描述
在这里插入图片描述

获取ServletContext

今天先看怎么获取,不说获取后的功能怎么用。
在这里插入图片描述
举例:
在这里插入图片描述

登录案例

相关文章:

web实操5——http数据详解,request对象功能

http请求数据 现在我们浏览器f12的那些是浏览器给http格式数据整理之后便于我们阅读的。 原始的http格式信息: 就是按照一定格式和符号的字符串: 请求行:格式如下图 请求头:一个个key,value数据,用,分割…...

C# 如何动态加载程序集

程序集的加载,默认是从当前目录下查找,如果当前目录查找不到,然后再去系统目录中查找,依然查找不到就会从环境变量中查找,如果依然找不到,则会抛出一个异常 FileNotFoundException。 托管代码中&#xff0…...

前端基础的讲解-JS(10)

作用域链 通过上节作用域我们知道,当我们声明一个函数时,程序会生成一个独立的作用域,如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域;根据 内部函数可以访问外部函数变量 的这种机制,用链…...

JNI整理总结

JNI JNI基础 JNI基础 JNI,java native interface,即java本地接口,是java调用本地化方法的接口,是为java编写本地方法,为jvm嵌入本地应用程序的标准化接口。首要目标是在给定的平台上采用java通过JNI调用本地化方法&am…...

aws中AcmClient.describeCertificate返回值中没有ResourceRecord

我有一个需求,就是让用户自己把自己的域名绑定我们的提供的AWS服务器。 AWS需要验证证书 上一篇文章中我用php的AcmClient中的requestCertificate方法申请到了证书。 $acmClient new AcmClient([region > us-east-1,version > 2015-12-08,credentials>[/…...

Spring Task详细讲解

✨Spring Task简介 Spring Task 是 Spring 提供的轻量级定时任务工具,也就意味着不需要再添加第三方依赖了,相比其他第三方类库更加方便易用。可以按照约定的时间自动执行某个代码逻辑。 使用场景: 信用卡每月还款提醒银行贷款每月还款提醒…...

C++初阶 --- 类和对象(1)

类和对象(1) 一、类的相关内容1.访问限定符2.class关键字与struct关键字的区别3.类域 二、this指针三、成员函数存放在哪里?1. 函数的存放位置2. 练习题 一、类的相关内容 1.访问限定符 (1)C⼀种实现封装的⽅式&…...

《TCP/IP网络编程》学习笔记 | Chapter 7:优雅地断开套接字连接

《TCP/IP网络编程》学习笔记 | Chapter 7:优雅地断开套接字连接 《TCP/IP网络编程》学习笔记 | Chapter 7:优雅地断开套接字连接基于 TCP 的半关闭单方面断开连接带来的问题套接字和流针对优雅断开的 shutdown 函数为何需要半关闭?基于半关闭…...

Anaconda 和 conda 是什么关系?就像 pip 和 python 一样吗

Anaconda 和 conda是 Anaconda Distribution 还是 Miniconda Anaconda 和 conda Anaconda 和 conda 之间的关系有点类似于 pip 和 Python,但又有所不同。 Anaconda 是一个数据科学和机器学习的发行版,它包含了 Python、conda 以及许多预装的库和工具&am…...

「数据治理」核心专业术语解释!

​数据治理就是指在一定的组织范围内,依托制度法规、标准规范、应用实践和支撑技术对数据进行全生命周期的数据确权、质量管理、安全控制、隐私保护、开放共享、交易流通和分析处理。数据治理的目标是为了提高数据的可用性、安全性、流通性,激活数据资源…...

Mac Nginx 前端打包部署

安装homebrew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 安装Nginx brew install nginx nginx相关命令 nginx启动命令:nginx nginx -s reload #重新加载配置 nginx -s reopen #重启 nginx -s stop #…...

乳腺癌诊断分析——基于聚类分析实现

一、研究背景 乳腺癌属于恶性肿瘤,在早期发现后需要及早将病变组织切除,而且术后还要化疗和放射等辅助治疗,能够抑制癌细胞的扩散和增长。 二、研究目的 研究乳腺癌病人的患病特征通过聚类分析方法对特征进行分类通过上述聚类结果对乳腺诊…...

Ubuntu 22.04 安装配置opencv

​ OpenCV下载:https://opencv.org/releases/ ​编译与安装 安装cmake OpenCV需要使用cmake进行编译 sudo apt-get install cmake安装依赖 sudo apt-get install build-essential pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev lib…...

【软考】系统架构设计师-计算机系统基础(3):嵌入式系统

嵌入式系统:嵌入式处理器、相关支撑硬件、嵌入式OS、支撑软件以及应用软件 嵌入式系统特征:专用性强、技术融合、软硬一体软件为主、通用计算机资源少,... 分层(5层):硬件层 → 抽象层 → 操作系统层 → 中间件层 →…...

实测运行容器化Tomcat服务器

文章目录 前言一、拉取Tomcat 9.0镜像二、运行容器化Tomcat服务器三、访问Tomcat官网首页测试 总结 前言 运行容器化Tomcat服务器,首先确保正确安装docker,并且已启动运行,具体安装docker方法见笔者前面的博文《OpenEuler 下 Docker 安装、配…...

致敬苹果的国产手机,只会失去更多市场,iPhone一骑绝尘!

近期诸多国产手机品牌纷纷发布旗舰手机,随着这些旗舰手机的发布,可以看出他们在进一步致敬苹果--实质就是模仿苹果的设计,如此做的结果恐怕是得不偿失,将导致国产手机损失更多市场。 致敬苹果最为直接的当属手机外壳了&#xff0c…...

《MYSQL45讲》kill不掉的线程

kill query 线程id :终止这个线程正在执行的语句 kill connection 线程id :关闭这个线程的连接,也会先停止这个线程正在执行的语句。这个connection可以缺省。 本文讨论的情况是:使用了kill命令,却没有断开连接,show processli…...

单体架构 IM 系统之 Server 节点状态化分析

基于 http 短轮询模式的单体架构的 IM 系统见下图,即客户端通过 http 周期性地轮询访问 server 实现消息的即时通讯,也就是我们前面提到的 “信箱模型”。“信箱模型” 虽然实现非常容易,但是消息的实时性不高。 我们在上一篇文章&#xff08…...

java xml 文本解析

示例文本 <Message><MessageName>time_request</MessageName><Timestamp>20220217165432906359</Timestamp><Body><EQPID>CMMAB01-DTP01</EQPID></Body> </Message>示例代码 import org.w3c.dom.Document; impo…...

Docker占用空间太大磁盘空间不足清理妙招

docker占用空间太大了&#xff0c;磁盘空间不足&#xff0c;清理3妙招 清除所有已停止的容器&#xff08;container&#xff09;、未被任何容器所使用的卷&#xff08;volume&#xff09;、未被任何容器所关联的网络&#xff08;network&#xff09;、所有悬空镜像&#xff08…...

2026年高压电磁阀销售厂家哪家强?口碑好才是真的香

在工业阀门领域&#xff0c;高压电磁阀是许多高难度、复杂工况下的关键设备。随着技术的不断进步和市场需求的增加&#xff0c;选择一家优质的高压电磁阀销售厂家显得尤为重要。本文将从多个维度对比分析几家主要的高压电磁阀生产厂家&#xff0c;并给出实操建议&#xff0c;帮…...

PaddleX印章识别实战:5分钟搞定Seal-Recognition模型部署(附避坑指南)

PaddleX印章识别实战&#xff1a;从零部署到高效应用的完整指南 印章识别在合同审核、公文归档等场景中需求旺盛&#xff0c;但传统方案往往面临部署复杂、适配困难等问题。PaddleX推出的Seal-Recognition模型通过预训练产线低代码API的方式&#xff0c;让中小团队也能快速获得…...

Labelme标注实战:5分钟搞定语义分割数据集制作(附避坑指南)

Labelme标注实战&#xff1a;5分钟搞定语义分割数据集制作&#xff08;附避坑指南&#xff09; 当你第一次接触计算机视觉项目时&#xff0c;可能会被海量的标注需求吓到。别担心&#xff0c;今天我要分享的是如何用Labelme这个轻量级工具&#xff0c;快速完成语义分割数据标注…...

RWKV7-1.5B-g1a参数调优教程:temperature=0.1稳输出 vs 0.8活生成,效果差异实测

RWKV7-1.5B-g1a参数调优教程&#xff1a;temperature0.1稳输出 vs 0.8活生成&#xff0c;效果差异实测 1. 模型简介 rwkv7-1.5B-g1a是基于RWKV-7架构的多语言文本生成模型&#xff0c;特别适合以下场景&#xff1a; 基础问答文案续写简短总结轻量中文对话 这个1.5B参数的版…...

【科研必备】Elsevier Tracker:5分钟搞定学术投稿监控的终极解决方案

【科研必备】Elsevier Tracker&#xff1a;5分钟搞定学术投稿监控的终极解决方案 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 你是否也曾为了追踪Elsevier期刊的审稿状态而反复刷新页面&#xff1f;每天登录系统…...

it-tools:Docker一键部署,中文界面即开即用

1. 为什么选择Docker部署it-tools&#xff1f; 最近在帮团队搭建开发环境时&#xff0c;发现很多同事都在反复安装各种零散的小工具——JSON格式化、时间戳转换、密码生成器...既占用本地资源又难以统一管理。直到发现了it-tools这个神器&#xff0c;它把200实用工具打包成Web应…...

PXE装机避坑大全:从TFTP根目录设置到Kickstart无人值守的13个常见错误修复

PXE装机避坑大全&#xff1a;从TFTP根目录设置到Kickstart无人值守的13个常见错误修复 在企业级IT运维中&#xff0c;PXE&#xff08;预启动执行环境&#xff09;网络装机技术因其高效、自动化的特点&#xff0c;已成为服务器批量部署的标配方案。但看似简单的PXE部署流程背后&…...

从HuggingFace下载到本地部署:手把手教你定制自己的BertTokenizer工作流

从HuggingFace下载到本地部署&#xff1a;手把手教你定制自己的BertTokenizer工作流 在自然语言处理项目中&#xff0c;一个高效且灵活的分词器往往是整个流程的基石。BertTokenizer作为HuggingFace生态中的核心组件&#xff0c;其预训练版本能够处理绝大多数英文和中文文本处理…...

HiOmics平台:零代码实现ChIP-Seq数据可视化与深度解析

1. 为什么科研人员需要零代码ChIP-Seq分析工具 做表观遗传学研究的朋友们应该都深有体会&#xff0c;ChIP-Seq数据分析就像一场马拉松——从原始数据清洗、序列比对、peak calling到功能注释&#xff0c;每个环节都需要不同的工具和脚本。我刚开始接触这个领域时&#xff0c;光…...

OpenClaw人人养虾:配置Anthropic (Claude)

Anthropic 是 Claude 系列模型的开发者。Claude 以出色的指令遵循能力、深度推理和长文本处理著称。OpenClaw 支持通过 API Key 或 Claude Code CLI OAuth 接入。 认证方式 方式一&#xff1a;API Key&#xff08;推荐&#xff09; 前往 Anthropic Console 创建 API Key在 O…...