美文网首页
2021-05-10

2021-05-10

作者: 老林_ | 来源:发表于2021-05-10 16:11 被阅读0次

关于返回的html中文 乱码的问题,在response设置编码即可

resp.setContentType("text/html;charset=utf-8");

不加的话会出现下面的问题


image.png

关于使用GET或POST方式获取传参的问题

如图


image.png

对于使用x-www-form-urlencoded和row,下面方法能获取参数

System.out.println(req.getParameter("a"));

而对于form-data,只能通过文件流来获取
如图,获取出来的格式长这样,会有一个分隔符


image.png

就算用文件流获取到了,也是不能直接JSON解析的
关于form-data的解释

HTML表单enctype属性是设置表单传输的MIME编码,共有三个值可选:
①application/x-www-form-urlencoded (默认值,不能用于文件上传)
②multipart/form-data (指定传输数据为二进制类型,比如图片、mp3、文件)
③text/plain (纯文本传输,发送邮件,接收时不会出现乱码)
————————————————
版权声明:本文为CSDN博主「lzxomg」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lzxomg/article/details/64450813

具体点的解释:

根据http/1.1 rfc 2616的协议规定,我们的请求方式只有OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE等,那为为何我们还会有multipart/form-data请求之说呢?这就要从头来说了。
http协议规定以ASCII码传输,建立在tcp,ip协议智商的引用规范,规范内容把http请求分成3个部分,状态行,请求头,请求体。所有的方法,实现都是围绕如何使用和组织这三部分来完成了,万变不离其宗,http的知识大家可以问度娘。
既然上面请求方式里面没有multipart/form-data那这个请求又是怎么回事呢,其实是一回事,multipart/form-data也是在post基础上演变而来的,具体如下:
1.multipart/form-data的基础方式是post,也就是说通过post组合方式来实现的。
2.multipart/form-data于post方法的不同之处在于请求头和请求体。
3.multipart/form-data的请求头必须包含一个特殊的头信息:Content-Type,其值也必须为multipart/form-data,同时还需要规定一个内容分割用于分割请求提中多个post的内容,如文件内容和文本内容是需要分隔开来的,不然接收方就无法解析和还原这个文件了,具体的头信息如下:
Content-Type: multipart/form-data; boundary={bound} 其中{bound} 是一个占位符,代表我们规定的分割符,可以自己任意规定,但为了避免和正常文本重复了,尽量要使用复杂一点的内容。如:--------------------56423498738365
4.multipart/form-data的请求体也是一个字符串,不过和post的请求提不同的是它的构造方式,post是简单的name=value键值连接,而multipart/form-data是添加了分隔符等内容的构造体,具体如下:

--${bound}
Content-Disposition: form-data; name="Filename"

HTTP.pdf
--${bound}
Content-Disposition: form-data; name="file000"; filename="HTTP协议详解.pdf"
Content-Type: application/octet-stream

%PDF-1.5
file content
%%EOF

--${bound}
Content-Disposition: form-data; name="Upload"

Submit Query
--${bound}--

其中${bound}是之前头信息中的分隔符,如果头信息中规定是123,那这里也要是123;可以很容易看到,这个请求提是多个相同部分组成的:每一部分都是以--加分隔符开始的,然后是该部分内容的描述信息,然后一个回车,然后是描述信息的具体内容;如果传送的内容是一个文件的话,那么还会包含文件名信息以及文件内容类型。上面第二部分是一个文件体的结构,最后以--分隔符--结尾,表示请求体结束。
可以知道要发送一个multipart/form-data的请求,其实任何支持post请求的工具或语言都可以支持,只是自己要稍微包装一下便可。引用自https://www.cnblogs.com/tylerdonet/p/5722858.html

相关文章

  • 2021-05-10

    2021-05-10 2021-05-10 2021-05-10 【燃梦行动.阅读】 我是徐新超 ...

  • 872. 叶子相似的树

    2021-05-10 LeetCode每日一题 链接:https://leetcode-cn.com/proble...

  • bitshares比特股数据20210510

    2021-05-10比特股BTS大额转账的记录 时间转出转入BTS数量17:02:33zbbts001zbsend...

  • 2021-05-10 开始录视频课程

    2021-05-10 1、开始确定要录制的视频内容,PS的基础操作 2、找到录制软件EV录屏 2021-06-04...

  • 2022-04-19

    网易 订阅频道 0 王红顺:学校管理的十大思辨 时代教育管理 2021-05-10 08:54 0 人跟帖 王红顺...

  • 形象美学|母女同框--打卡二

    2021-05-10 【美图鉴赏官】宋小羊 我的职业:室内设计师 图一: ️适合场合:日常 刚过完母亲节,看到这样...

  • 一瞬间的控制

    我怎么如此幸运-99将帅挑战赛65-重生247-戴红霞(2021-05-10) 我怎么如此幸运-一瞬间的控制 1....

  • 用半年180天的时间学会英语,剩下179天

    2021-05-10定一个小目标, 1,用半年180天的时间学会英语 目标是不仅学会了英语,也输出了学习英语的心得...

  • 成为宝藏

    2021-05-10 不是说好不在乎数据的吗。为什么我的文章没人看,会这么难过。 觉得自己比不过别人,觉得自己是个...

  • 2021-05-10

    2021-05-10 温湿度系统需求说明书 1.需求概述 1.1项目背景 蒸汽机的发明掀起了人类历史迈向工业的新篇...

网友评论

      本文标题:2021-05-10

      本文链接:https://www.haomeiwen.com/subject/hwtidltx.html