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

Day09JavaWeb第九次笔记---Request和Response学习

目录

一、Request  99

 1.1Request继承体系 99​编辑

1.2Request获取请求数据 100

1.2.1请求行 

1.2.2请求头 

1.2.3请求体 

 二、Request通用方式获取请求参数 101

2.1请求参数获取方式 101

 代码展示:

 2.2解决中文提交数据,控制台乱码问题 103

2.3Requset请求参数中文乱码处理 104

代码:

三、请求转发 105 

四、Response内容  106

4.1Response设置响应数据功能介绍 106

4.1.1相应行 

4.1.2响应头

4.1.3响应体

 4.1.4重定向 

 4.1.5重定向特点

​编辑

 二、路径问题 107

 三、Response响应数据 108

 四、案例 109

4.1用户登陆 109

​编辑  4.2用户注册 110

 4.3代码优化 111


介绍:

实际上就是service中request和response的两对象内容。

一、Request  99

 1.1Request继承体系 99

 注:这些是由Tomcat创建的

1.2Request获取请求数据 100

1.2.1请求行 

 请求行中的GET方式

 注:

URL:获取的是长一点的路径

URI:获取的是短一点的路径

1.2.2请求头 

请求头的使用: 

结果:

1.2.3请求体 

 

 二、Request通用方式获取请求参数 101

2.1请求参数获取方式 101

 Requset有自己的一个参数获取的方式:使用一条代码能够同时获取GRT方式获取参数和POST方式获取参数。如下所示:

 并且Requset通用方式还能够利用Map集合进行保存参数信息

1、将参数的信息进行拆解

2、将参数信息用键值对的形式进行保存

3、如果获取的键值对信息存在,例如本文中hobby键信息已经存在,但是需要还有另外的一个hobby键的信息,后面的值的信息用数组的新式进行保存。

值可能有一个,也有可能有多个。

 Requset提供的方法:

 代码展示:

方法一:

 结果:

 方法二:

 结果:

 方法三:

 结果:

 2.2解决中文提交数据,控制台乱码问题 103

POST的解决方法: 

 GET方式解决中文的控制台乱码问题

2.3Requset请求参数中文乱码处理 104

 

 

 

解释:相当于是有6个字节,6x8=48个二进制位。

 注:UTF-8格式下的内容,一个中文占据三个字节每个字节有八个二进制位

这个过程是浏览器给处理完成的。

代码:

 解决方案一:

 解决方案二:

三、请求转发 105 

  

解释:

在资源A中填写setAttribute代码,一些数据信息。

在资源B中填写getAttribute代码,获取资源A中使用setAttribute填写的数据信息。 

 解释:

实际上就是可以在资源A中跳转到资源B中,并进行资源B的数据进行执行。

四、Response内容  106

4.1Response设置响应数据功能介绍 106

4.1.1相应行 

 注:主要是设置响应行的状态码。

4.1.2响应头

4.1.3响应体

注:实际上也是流的输出。

 4.1.4重定向 

 简化重定向:

 4.1.5重定向特点

转发的特点区别开。

 解释:

1、地址栏会发生变化:

由于两次的请求都是从浏览器发出的,所以是存在地址栏路径的变化。

2、可以重定向任何资源,无论是内部的还是外部的。因为都是从浏览器发出的请求。

 二、路径问题 107

 

 三、Response响应数据 108

 

 四、案例 109

4.1用户登陆 109

  4.2用户注册 110

 

 4.3代码优化 111

 

 

  

相关文章:

  • 第三章 Flink基础理论之内存优化及常见内存报错解决方案
  • 分数阶粒子群算法-附代码
  • springboot(三)
  • Kubernetes 常见面试题(六)
  • Linux安装禅道最新版
  • 【Bluetooth|蓝牙开发】十一、一文秒懂 | 超详细的Bluez交叉编译
  • TC8:SOMEIPSRV_FORMAT_01-10
  • 软考:信息安全工程师3
  • 接口(续)和Object类
  • 构造接口,免费查询快递物流
  • 被裁后一个offer都没有,测试人的问题在哪里?
  • 图像运算和图像增强一
  • 【C++】unordered map/set
  • 定时任务框架
  • C型9.4MM针脚距电磁阀插头
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Babel配置的不完全指南
  • echarts花样作死的坑
  • Java 最常见的 200+ 面试题:面试必备
  • js 实现textarea输入字数提示
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 前端性能优化——回流与重绘
  • Hibernate主键生成策略及选择
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​configparser --- 配置文件解析器​
  • (4.10~4.16)
  • (九十四)函数和二维数组
  • (六)Hibernate的二级缓存
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转)四层和七层负载均衡的区别
  • (转载)虚函数剖析
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET开发者必备的11款免费工具
  • .Net面试题4
  • /dev下添加设备节点的方法步骤(通过device_create)
  • ::before和::after 常见的用法
  • @Autowired 与@Resource的区别
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [BUUCTF 2018]Online Tool(特详解)
  • [C]整形提升(转载)
  • [CareerCup] 17.8 Contiguous Sequence with Largest Sum 连续子序列之和最大
  • [Dxperience.8.*]报表预览控件PrintControl设置
  • [Foreman]解决Unable to find internal system admin account
  • [leetcode]Flatten Binary Tree to Linked List
  • [MySQL--进阶篇]存储引擎的体系结构、简介、特点、选择
  • [node] Node.js的全局对象Global
  • [NOSQL] Redis介绍