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

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

登录案例

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

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

相关文章

u盘加密软件有哪些?2025年必备的u盘加密神器分享(共6款!提前布局!)

2024年《数据泄露成本报告》最新出炉!再破纪录! 报告显示,全球数据泄露事件的平均成本达488万美元,同比增加10%。 其中,u盘最为数据存储和传输的常用媒介,对其进行加密早已箭在弦上! 在2025年…

实验5:网络设备发现、管理和维护

实验5:网络设备发现、管理和维护 实验目的及要求: 通过实验,掌握Cisco 路由器和交换机的IOS配置管理。自动从NTP服务器获取时间信息。能够利用TFTP服务器实现路由器和交换机配置文件的备份和恢复。同时验证CDP协议和LLDP协议的网络参数。完…

基于java的航空机票预定管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…

排序算法 -快速排序

文章目录 1. 快速排序(Quick Sort)1.1、 简介1.2、 快速排序的步骤 2. Hoare 版本2.1、 基本思路1. 分区(Partition)2. 基准选择(Pivot Selection)3. 递归排序(Recursive Sorting) 2…

UAC2.0 speaker——同时支持 16bit,24bit 和 32bit

文章目录 同时支持 16bit,24bit 和 32bit配置描述符集合描述符结构位数切换16bit 选择24bit 选择32bit 选择枚举效果同时支持 16bit,24bit 和 32bit 在一个 USB speaker 设备中同时支持 16bit, 24bit 和 32bit。 配置描述符集合 09 02 E9 00 02 01 00 80 32 08 0B 00 02

conda创建 、查看、 激活、删除 python 虚拟环境

1、创建 python 虚拟环境 ,假设该环境命名为 “name”。 conda create -n name python3.11 2、查看 python 虚拟环境。 conda info -e 3、激活使用 python 虚拟环境。 conda activate name 4、删除 python 虚拟环境 conda remove -n name --all ​​ 助力快速掌握数据集…

三周精通FastAPI:37 包含 WSGI - Flask,Django,Pyramid 以及其它

官方文档:https://fastapi.tiangolo.com/zh/advanced/wsgi/ 包含 WSGI - Flask,Django,其它 您可以挂载多个 WSGI 应用,正如您在 Sub Applications - Mounts, Behind a Proxy 中所看到的那样。 为此, 您可以使用 WSGIMiddlewar…

微服务即时通讯系统的实现(客户端)----(1)

目录 1. 项目整体介绍1.1 项目概况1.2 界面预览和功能介绍1.3 技术重点和服务器架构 2. 项目环境搭建2.1 安装Qt62.3 安装vcpkg2.3 安装protobuf2.4 构建项目2.5 配置CMake属性 3. 项目核心数据结构的实现3.1 创建data.h存放核心的类3.2 工具函数的实现3.3 创建编译开关 4. 界面…

MyBatis——增删查改(XML 方式)

1. 查询 1.1. 简单查询 使用注解的方式主要是完成一些简单的增删查改功能,如果要实现复杂的 SQL 功能,还是建议使用 XML 来配置映射语句,将 SQL 语句写在 XML 配置文件中 如果要操作数据库,需要做以下的配置,与注解…

A029-基于Spring Boot的物流管理系统的设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…

华为路由策略配置

一、AS_Path过滤 要求: AR1与AR2、AR2与AR3之间建立EBGP连接 AS10的设备和AS30的设备无法相互通信 1.启动设备 2.配置IP地址 3.配置路由器的EBGP对等体连接,引入直连路由 [AR1]bgp 10 [AR1-bgp]router-id 1.1.1.1 [AR1-bgp]peer 200.1.2.2 as-nu…

如何向函数模块 FM 中传递 Range 参数

有时候需要在选择屏幕之后调用一个函数模块,那么如果利用 SE37 在函数模块定义 Range 参数呢。 解决方法很简单,系统有很多预定义的 Range_* 类型: 如上图,这里有很常用的 Range 结构,如订单号、发票号、公司代码等等…

工作和学习遇到的技术问题

写在前面 记录工作和学习遇到的技术问题,以求再次遇到可以快速解决。 1:Ubuntu TSL换源报错:Err:1 http://mirrors.aliyun.com/ubuntu focal InRelease 执行如下操作(已经操作的则忽略),首先在文件/etc/apt/sources…

研究生如何远控实验室电脑?远程办公功能使用教程

如果你是研究生,是不是会遇到需要远程控制实验室电脑进行查看文献、调代码和拉数据的时候?有时候就是这么棘手,不过你可以借助一些工具来帮助你随时随地远控实验室电脑。这样就不用担心导师催促,无法及时完成科研了。常见的工具比…

重卡穿越商都,ROG DAY 2024郑州站高燃来袭

野塘菡萏正新秋,红藕香中过郑州!2024年11月9日~10日,ROG DAY 2024信仰集结的号角正式吹响,首战据点落地郑州局外太格茂。炫酷涂装的战车如同未来战士般震撼登陆,ROG硬核科技闪耀亮相,现场氛围瞬间点燃!活动现场人流不息,年轻学子、数码爱好者、极客玩家、科技博主以及周末悠闲惬…

web安全测试渗透案例知识点总结(上)——小白入狱

目录 一、Web安全渗透测试概念详解1. Web安全与渗透测试2. Web安全的主要攻击面与漏洞类型3. 渗透测试的基本流程 二、知识点详细总结1. 常见Web漏洞分析2. 渗透测试常用工具及其功能 三、具体案例教程案例1:SQL注入漏洞利用教程案例2:跨站脚本&#xff…

浪潮信息“源”Embedding模型登顶MTEB榜单第一名

在自然语言处理(NLP)和机器学习领域,Embedding模型是将文本数据转换为高维向量表示的核心技术,直接影响NLP任务(如文本分类、情感分析等)的效果,对于提升模型性能和深入理解文本语义具有至关重要…

catchadmin-webman 宝塔 部署

1:宝塔的php 中删除禁用函数 putenv 问题: 按照文档部署的时候linux(php) vue (本地) 无法访问后端api/login 的接口 。 解决办法: webman 没有配置nginx 反向代理 配置就能正常访问了

【AutoGen 】简介

学习笔记AutoGen。它可以使用多个代理来开发 LLM 应用程序,这些代理可定制、可相互对话,可在各种模式下运行,且无缝允许人的参与,进一步在更大程度上为开发者提供助力。AutoGen 智能应用开发(一)|AutoGen 基础 学习笔记

【月之暗面kimi-注册/登录安全分析报告】

前言 由于网站注册入口容易被机器执行自动化程序攻击,存在如下风险: 暴力破解密码,造成用户信息泄露,不符合国家等级保护的要求。短信盗刷带来的拒绝服务风险 ,造成用户无法登陆、注册,大量收到垃圾短信的…