当前位置:网站首页>GET 与 POST请求
GET 与 POST请求
2022-04-21 11:22:00 【碳水碳水だいすき】
GET 与 POST请求
常见情况
GET
- form 标签 method=get
- a 标签
- link 标签引入 css
- Script 标签引入 js 文件
- img 标签引入图片
- iframe 引入 html 页面
- 在浏览器地址栏中输入地址后敲回车
POST
- form 标签 method=pos
区别
| 比较项 | Get | post |
|---|---|---|
| 参数出现在URL中 | 是 | 否 |
| 长度限制 | 有 | 无 |
| 安全性 | 低 | 高 |
| URL可传播 | 是 | 否 |
| 文件上传 | 不支持 | 支持 |
乱码问题
Tips
- tomcat中默认使用的字符编码方式:iso-8859-1,不支持中文
- 常见的支持中文的编码方式
| 编码方式 | 收录的字符 |
|---|---|
| gb2312 | 常用简体汉字 |
| gbk | 简体和繁体汉字 |
| utf-8 | 所有国家需要的字符 |
问题分析
参考文章:
Tomcat的URIEncoding、useBodyEncodingForURI和CharacterEncodingFilter
由StringHttpMessageConverter引出的客户端服务器端之间的乱码过程分析
URL汉字编码问题以及乱码解决
URIEncoding和UseBodyEncodingForURI的解释
Post,Get请求乱码的原因和解决方案


- 当我们在表单中输入参数跳转后,地址栏会显示
http://localhost:8080/test?userName=张三&userPwd=1&rePwd=1&bd=手机号,如果复制地址后粘贴,则内容为http://localhost:8080/day0321/login/doLogin.jsp?userName=%E5%BC%A0%E4%B8%89&userPwd=1&rePwd=1&bd=%E6%89%8B%E6%9C%BA%E5%8F%B7,这是编码后的地址,采用的何种编码方式称为URL编码
(chrome浏览器始终以UTF-8的编码形式将中国转换成字节数组) - 当浏览器发送请求时,服务器是以请求的content-type来解析请求数据的,当浏览器请求没有指定content-type时,Tomcat服务器默认采用ISO-8859-1
- 由于两种编码方式不一样,因此出现乱码
解决方法
- 设置请求和响应的编码方式(适用于post)
//要在获取请求参数之前调用才有效
request.setCharacterEncoding("utf-8");//设置请求的编码
response.setCharacterEncoding("utf-8");//一般page已经设置过utf-8了,这一句可以不加
<%@ page language="java" contentType="text/html; charset=utf-8"%>
-
get请求出现乱码
① 治标:new String( s.getBytes("iso-8859-1"), "utf-8" );
② 治本:配置 tomcat\conf\server.xml 文件
URIEncoding="UTF-8":统一设置用于解码URL的字符编码(包括地址和参数),默认值为ISO-8859-1
useBodyEncodingForURI="true":表示是否用request.setCharacterEncoding设置的编码对请求参数(不包括地址)进行解码,默认false,主要用于Tomcat4.1.x中。

为什么post 与 get 两种提交方式的解决方案不同
POST
① 其编码是由页面来决定的,即ContentType(“text/html; charset=utf-8”)
② 当提交表单时,浏览器首先会根据ContentType的编码格式对参数进行编码,然后提交给服务器。
③ 在服务器端同样也是用ContentType的编码来进行解码
GET
① GET提交方式会将参数附加到地址中,因此参数的编码是由URL编码来决定的
② page中的ContentType 与request.setCharacterEncoding方法未对HTTP文头的内容进行解码
③ 因此GET方法依旧使用默认ISO-8859-1进行解码
④ 想要正确解码必须设置 URIEncoding 或者 设置完request.setCharacterEncoding再设置useBodyEncodingForURI
版权声明
本文为[碳水碳水だいすき]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_66395289/article/details/124311754
边栏推荐
- MySQL modifies the maximum number of connections
- Review suffix array & automata
- org. apache. flink. client. deployment. ClusterDeploymentException: Could not deploy Yarn job cluster.
- 万元礼品奖池 玩转「Lighthouse」有奖征文来袭
- package.json
- MATLAB GUI---学科选择(动画演示)
- ES6新特性(6)之箭头函数/Class类
- Unix哲学与高并发
- Redis数据库
- Matlab --- multi picture display of coordinate axis
猜你喜欢

pgpool-II 4.3 中文手册 - 入门教程

Tami dog knowledge | what are the legal procedures for equity transfer?

Reading material: Information Technology Yearbook

华为、海尔智家、小米都在做的全屋智能,全在哪?

Kubernetes 中數據包的生命周期 -- 第 1 部分

Dapr 远程调试之 Nocalhost
![[interview ordinary people vs Expert Series] understanding of B tree and B + tree](/img/17/a81da0a2e6b0c7cb218879f1a79861.jpg)
[interview ordinary people vs Expert Series] understanding of B tree and B + tree
![[二叉数]对称二叉树](/img/15/a1285ae7f31dd2e9f7b00350b1fdc6.png)
[二叉数]对称二叉树

Tamigou information | SASAC speech: support listed companies to expand their main business by means of enterprise M & A financing

粉笔科技推行OMO一体化模式 双核驱动营收快速增长
随机推荐
Digital IT operation from the perspective of thinking transformation
站长如何防止网站被黑
[nonlinear control theory] 1_ Lyapunov direct method
犀牛软件插件-rhino插件-visual studio-创建你的第一个插件
1. Precision marketing practice Alibaba cloud odpscmd precision marketing data processing
以用户体验五要素的思路,如何编写产品需求文档(PRD)
AD中如何在3D下生成PCB实时快照
Decorator modifier / binary array of ES6 new feature (8)
后缀数组应用
From station B and little red book, how to do a good job of community products?
Is there any application that can really be called meta universe?
MATLAB GUI应用---摇奖(动画演示)
万元礼品奖池 玩转「Lighthouse」有奖征文来袭
你的思维会改变你的行为,你的行为会改变你的境遇
MATLAB---选择省份城市应用
暴力破解美团最新JVM面试题
华为、海尔智家、小米都在做的全屋智能,全在哪?
Suffix array special training
打开应用出现 “需要使用新应用一打开此ms-gamingoverlay链接”
package. json